VIM 快捷操作

拥有回忆 提交于 2020-02-04 01:44:53

1 基础

《Linux就是这个范》里有个脑图很好记。

VIM cheat sheet
https://vim.rtorr.com/lang/zh_cn
https://vimsheet.com/

2 一般模式

2.1 移动光标

移动单个字符

h
j
k
l

移动单词

w下一单词第一个字符
W下一长单词第一个字符
e下一单词最后一个字符
E下一长单词最后一个字符
b前一单词第一个字符
B前一长单词第一个字符

移动行

0到行首
$到行尾
行号G跳到指定行
G跳到最后一行
2j 向下移动2行
3k 向上移动3行

移动句

(到句首
)到句尾

移动段

{到句首
}到句尾

搜索

/表达式 搜索下一个匹配表达式的字符串
n 向前重复搜索
N 向后重复搜索

搜索之后字符串高亮怎么取消:
命令模式下,输入:noh // nohighlight

2.2 编辑控制

通用

J 将下一行接到当前行的行末
. 重复上一命令
u 恢复上一命令

删除

x 删除当前字符
X 向前删除字符
dd 删除当前行
dw 删除当前单词
d) 删除到当前句尾
d} 删除到当前段尾
d3w 删除光标后的3个单词
d2j 删除当前行及下2行

复制

yy 复制一行
y) y} y3w y2j 复制操作方法与删除类似

粘贴

p 粘贴到光标之后
P 粘贴到光标之前

3 插入模式

3.1 插入

i 在光标字符前插入
I 插到当前行到行首
a 在光标字符后插入
A 文本追加到当前行到行末
o 在当前行下面生成一空行并插入
O 在当前行上面生成一空行

3.2 更改

cc 以新行替换当前行

4 命令模式

s/表达式/替换/ 替换当前行的第一个表达式
s/表达式/替换/g 替换当前行的所有匹配表达式
%s/表达式/替换/g 替换文件中的所有匹配表达式
%s/表达式/替换/gc 替换文件中的所有匹配表达式,每次替换前确认

5 对比文件

这里列几个vimdiff 的操作命令:

  1. 打开两个文件:
vim -d file1 file2
或
vimdiff file1 file2
  1. 如果已经打开了文件file1,再打开另一个文件file2进行比较:
    :vert diffsplit file2
    如果没有用vert命令,diffsplit则会分上下两个窗口。

  2. 如果已经用split方式打开了两个文件file1,file2,又想比较两文件的不同。
    分别在两个窗口里面输入命令:
    :diffthis

  3. 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新:
    :diffupdate

  4. 定位到不同点:
    [c     跳到前一个不同点
    ]c     跳到后一个不同点

  5. 在窗口间跳转:
    ctrl+w w    跳到下一个窗口

  6. 合并文档:
    d+p          将差异点的当前文档内容应用到另一文档(diff put)
    d+o          将差异点的另一文档的内容拷贝到当前文档(diff get)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!