6.vim

vim

1. vim简介

  1. vi:visualinterface,文本编辑器
  2. 文本:ASCII,Unicode
  3. 文本编辑种类:
    行编辑器:sed
    全屏编辑器:nano ,vi
    vim – vi improved
  4. 其他编辑器:
    gedit 一个简单的图像编辑器
    gvim 一个vim编辑器的图形版本

2.打开文件

  1. #vim [option]...file...
    +#:打开文件后,让光标处于第#行的行首,+默认行尾
    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
    -b file 二进制方式打开文件
    -d file1 file2…比较多个文件
  2. ex file或vim -e 直接进入ex模式
  3. 如果该文件存在,文件被打开并显示内容
    如果该文件不存在,当编辑后第一次存盘时创建它

3. vim:一个模式编辑器

  1. 击键行为是依赖于vim的的“模式”
  2. 三种主要模式
    命令(normal)模式:默认模式,移动光标,剪贴/粘贴文本
    插入(insert)或编辑模式:修改文本
    扩展命令(extendedcommand)模式:保存,退出等
  3. Esc键 退出当前模式
  4. ESc键ESc键总是返回到命令模式

4.模式转换

  1. 命令模式–>插入模式
    i:insert,在光标所在处输入
    I:在光标所在行的行首输入
    a:append。在光标所在处的后面输入
    A:在光标所在行的行尾输入
    o:在当前光标所在行的下方打开一个新行
    O: 在当前光标所在行的上方打开一个新行
  2. 插入模式------>命令模式
    ESC
  3. 命令模式------>扩展命令模式
  4. 扩展命令模式------>命令模式
    ESC,enter

5.扩展模式

  1. 按":"进入ex模式
  2. 创建一个命令提示符:处于底部的屏幕左侧
  3. 命令
    w 写(存)磁盘文件
    wq 写入并退出
    x写入并退出
    q退出
    q!不存盘退出,即使更改都将丢失
    r filename 读文件内容到当前文件中
    w filename将当前文件内容写入另一个文件
    !command执行命令
    r!command 读入命令的输出

6.关闭文件

  1. 扩展模式:
    :q 退出
    :q! 强制退出,丢弃做出的修改
    :wq 保存退出
    :x 保存退出
  2. 命令模式:
    ZZ: 保存退出
    ZQ: 不保存退出

7.命令模式光标跳转

  1. 字符间跳转:
    h: 左 l:右 j:下 k:上
  2. 单词间跳转:
    w: 下一个单词的词首
    e: 当前或下一单词的词尾
    #command:由#指定一次跳转的单词数
  3. 当前页跳转:
    H:页首 M:页中间行 L:页底
  4. 行首行尾跳转:
    ^: 跳转至行首的第一个非空白字符
    0: 跳转至行首
    $: 跳转至行尾
  5. 行间移动:
    #G、扩展模式:# :跳转至由#指定行
    G:最后一行
    1G,gg:第一行
  6. 句间移动:
    ) : 下一句 ( : 上一句
  7. 段落间移动:
    } :下一段 { :上一段
Ctrl+v+[[1;31mred Ctrl+v+[ [0m 显示红色字体(vim)
echo -e "\e[1;31mred\e[0m"
echo -e "\033[1;31mred\033[0m"

8.命令模式翻屏操作

  1. Ctrl+f:向文件尾部翻以屏

  2. Ctrl+b:向文件首部翻一瓶

  3. Ctrl+d: 向文件尾部翻半屏

  4. Ctrl+u: 向文件首部翻半屏

9.命令模式操作

  1. 字符编辑:
    x: 删除光标处的字符
    #x: 删除光标处起始的#个字符
    xp:交换光标所在处的字符以及其后面字符的位置
    ~:大小写转换
    J: 删除当前行后的换行符

  2. 替换命令(r,replace)
    r: 替换光标所在处的字符
    R:切换成replace模式

  3. 删除命令

     d: 删除命令,可结合光标跳转字符,实现范围删除
     d$:  删除到行尾
     d^:  删除到非空行首
     d0:  删除到行首
     dw:  
     de:  
     db:  
     #command
    
  4. dd: 删除光标所在的行
    #dd: 多行删除

  5. D:从当前光标位置一直删除到行尾,留空行,等同于d$

  6. 复制命令(y,yank):
    y: 复制,行为类似于d命令
    y$: 复制到行尾
    y^:复制到非空行首
    y0: 复制到行首
    yw:
    ye:
    yb:
    #command

  7. yy:复制行:
    #yy:复制多行

  8. Y: 复制整行

  9. 粘贴命令(p,paste):
    p: 缓冲区的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
    p: 缓冲区的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

  10. 改变命令(c,change)
    c: 修改后切换插入模式

  11. 命令模式—>插入模式
    c$
    c^
    c0
    cb
    ce
    cw
    #command

  12. cc:删除当前行并输入新内容,相当于S
    #cc:

  13. C: 删除当前光标到行尾,并切换成插入模式

  14. 100iwabg[ESC] 粘贴 “wang”一百次

  15. command
    y 复制 、 d删除、gU变大写、gu变小写
    例如0y$命令意味着:
    0–>先到行头
    y–>从这里开始拷贝
    $–>拷贝到本行最后一个字符
    ye从当前位置拷贝到本单词的最后一个字符

10.扩展命令模式:地址定界

  1. 地址定界
    :start_pos,end_pos
    #具体第#行,例如2表示第2行
    #,# 从左侧#表示的起始行,加上右侧#表示结束行
    #,+# 从左侧#表示的起始行,加上右侧#表示的行数
    :2,+3 表示2到5行
    . 当前行
    $ 最后一行
    ., − 1 当 前 行 到 倒 数 第 二 行 -1 当前行到倒数第二行 % 全文,相当于1, 1
  2. /pat1,/pat2
    从第一次被pat1模式匹配的行开始,一直到第一次被pat2匹配到的行结束
    #,/pat/
    /pat/,$
  3. 使用方式:后更一个编辑命令
    d
    y
    w file: 将范围内的行另存至指定文件中
    r file:在指定位置上插入指定文件中的所有内容
:1,5d
: 2.+3d
:2,.d

11.扩展命令模式:查找

  1. 查找
    /pattern: 从当前光标所在处向文件尾部查找
    ?pattern: 从当前光标所在处向文件首部查找
    n : 与命令同方向
    N :与命令反方向
  2. 扩展命令模式:查找并替换
    (1). s: 在扩展模式下完成查找替换查找
    格式: s/要查找的内容/替换为的内容/修饰符
    替换为的内容:不能使用模式。单可以使用\1,\2,…等后向引用;还可以使用“&”引用前面查找时查找到的整个内容
    修饰符:
    i: 忽略大小写
    g:全局替换;默认情况下,每一行只替换第一次出现
    gc:全局替换,每次替换前询问
    (2) .查找替换中的分隔符/可替换为其他字符,例如
    s@/etc/@/var@g
    s#/etc/#/var#g

13.命令模式:撤销更改

  1. u撤销最近的更改

  2. #u撤销之前多次 更改

  3. U撤销光标在这行后所有此行的更改

  4. 按Ctrl-r重做最后的“撤销”更改

  5. .重复前一个操作

  6. n. 重复前一个操作n此

13.vim的寄存器

  1. 有26个命名寄存器和1个无名寄存器,常存放不同的剪贴版内容,可以不同会话键共享
  2. 寄存器名称a,b,…z,格式:“寄存器” 放在数字和命令之间
    如:3"tyy 表示复制3行到t寄存器中
    “tp 表示将t寄存器内容粘贴
  3. 未指定,将使用无命名寄存器
  4. 有10个数字寄存器,用0,1,…9表示,0存放最近复制内容,1存放最近删除内容
    当新的文本变更和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不同会话间共享

14.编辑二进制文件

  1. 以二进制方式打开文件
    vim -b binaryfile
  2. 扩展命令模式下,利用xxd命令转换为可读的十六进制
    :%!xxd
  3. 编辑二进制文件
  4. 扩展命令模式下,利用xxd命令转换为二进制
    :%!xxd-r
  5. 保存退出

15.可视化模式

  1. 允许选择的文本块
    v面向字符
    V面向行
    Ctrl-v面向块
  2. 可视化键可用于与移动键结合使用:
    w ) } 箭头等
  3. 突出显示的文字可被删除,复制,变更,过滤,搜索,替换等

16.多文件模式

vim file1 file2 file3 ...
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall

17.使用多个“窗口”

  1. 多文件分割
    vim -o|O file1 file2 …
    -o: 水平分割
    -O:垂直分割
    在窗口间切换: Ctrl+w,Arrow
  2. 单文件窗口分割:、
    ctrl+w,s:split,水平分割
    Ctrl+w,v:vertical,垂直分割
    ctrl+w,q: 取消相邻窗口
    Ctrl+w,o: 取消全部窗口
    :wqall 退出

18.定制vimde 工作特性

配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc
扩展模式:当前vim进程有效

  1. 行号
    显示:set number,简写为set nu
    取消显示:set nonumber简写为set nonu
  2. 忽略字符的大小写
    启动:set ic
    不忽略:set noic
  3. 自动缩进
    启动:set ai
    不启动:set noai
  4. 智能缩进
    启动:smartindent 简写 set si
    禁用:set nosi
  5. 最高搜索:
    启动:set hlserch
    禁用:set nohlsearch
  6. 语法高亮:
    启动:syntax on
    禁用:syntax off
  7. 显示tab和换行符^I和$显示
    启动:set list
    禁用:set nolist
  8. 文件格式
    启动Windows格式:set fileformat=dos
    启动Unix格式:set fileformat=unix
    简写:set ff=dos |unix
  9. 设置文本宽度
    启动:settextwidth=65(vim only)
    禁用:set wrapmargin=15
  10. 设置光标所在行的标志线
    启动:set cursorline ,简写cul
    禁用:set no cursorline

19.了解更多

  1. set帮助
    :help option-list
    :set or :set all
  2. vi/vim内置帮助
    :help
    :help topic
  3. vimtutor
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值