vim模式
- 编辑模式
- 输入模式
- 末行模式
模式转换
- i: 在当前光标所在字符的前面,转为输入模式
- a: 在当前光标所在字符的后面,转为输入模式
- o: 在当前光标所在行的下方,新建一行,并转为输入模式
- I: 在当前光标所在的行首,转换为输入模式
- A: 在当前光标所在的行尾,转换为输入模式
- O: 在当前光标所在的上方,转换为输入模式
打开文件
- vim +#: 打开文件,定位第#行
- vim +: 打开文件,定位置最后一行
- vim +/patthern: 打开文件,定位至第一次被patthern匹配到的行的行首
关闭文件
- :q : 退出
- :wq : 保存并退出
- :q! : 不保存并退出
- :w : 保存
- :w! : 强行保存
- :wq : ---> :x
移动光标
- 逐字符移动
- h: 左
- l: 右
- j: 下
- k: 上
- 以单词为单位移动
- w: 移至下一个单词的词首
- e: 跳至当前或下一个单词的词尾
- b: 跳至当前或前一个单词的词首
- 行内跳转
- O: 绝对行首
- ^: 行首的第一个非空白字符
- $: 绝对行尾
- 行间跳转
- #G: 跳转至第#行
- G: 最后一行
翻屏
- ctrl+f: 向下翻一屏
- ctrl+b: 向上翻一屏
- ctrl+d: 向下翻半屏
- ctrl+u: 向下翻半屏
删除
- x: 删除光标所在处的单个字符
- #x: 删除光标所在处及向后的工#个字符
- dd: 删除光标所在的行
- #dd: 删除包括当前光标所在行在内的#行
末行模式下
- .: 表示当前行
- $: 最后一行
- +#: 向下的#行
粘贴命令
- P: 如果删除或复制为正行内容,则粘贴至光标所在行的下方,如果删除和复制的内容非正行,则粘贴至光标所在字符的后面
- p: 如果删除或复制为正行内容,则粘贴至光标所在行的上方,如果删除和复制的内容非正行,则粘贴至光标所在字符的前面
复制
- 用法同d删除
替换
- R: 替换模式
撤销编辑操作
- u: 撤销前一次的编辑操作,连续u命令可撤销此前的n次编辑操作
- #u: 直接撤销最近#次编辑操作
- ctrl+r: 撤销最近一次撤销操作
可视化模式
- v: 按字符选取
- V: 按矩形选取
使用vim编辑多个文件
vim file1 file2 file3 ...
- :next : 切换至下一个文件
- :prev : 切换至前一个文件
- :last : 切换至最后一个文件
- :first : 切换至第一个文件
分屏显示一个文件
- ctrl+w, s: 水平拆分窗口
- ctrl+w, v: 垂直拆分窗口
- ctrl+w, arrow: 在窗口间切换光标
分窗口编辑文件
- vim -o: 水平分割显示
- vim -O: 垂直分割显示
两个文件间的替换
- :addr1,addr2w /path/to/somewhere : 将当前文件中部分内容另存为另外一个文件
- :r /path/to/somewhere : 将另一个文件的内容填充在当前文件中