转自:http://blog.sina.com.cn/s/blog_61c9c41e0100mw4d.html
vim有三种工作模式, 用户可以自由切换
:wq 保存并退出 :wq! 强制保存并退出 :q 退出 :q! 强制退出 :x 如果有改动则保存并退出, 否则直接退出 :w filename 另存为filename :e 重新读入当前文件
i 在光标前插入 I 在本行最后插入 a 在光标后插入 A 在本行开头插入 o 在当前行下方插入 O 在当前行上方插入 cw 改变光标开始的那个单词 C 替换自光标至行尾的文本 s 替换当前位置的字符 S 替换当前行 r 以单个字符替换当前字符 R 自光标开始替换
x 删除当前光标所在字符 4x 删除自当前光标开始的4个字符 dw 删除自当前光标位置开始的单词 dd 删除当前行 10dd 删除当前光标位置开始10行 d$ 删除当前光标位置至行尾的文本 dG 删除当前光标位置至文件尾的文本 :n,m d 删除n行到m行的文本 :.,+5 d 删除当前行开始的5行文本
注意: 上述被删除的文本都存放在临时缓冲区中, 可以通过 p 命令粘贴到当前光标位置
进入命令模式<ESC>,移动光标
h 光标左移一个字符 l 光标右移一个字符 j 光标下移一行 k 光标上移一行 w 光标前移到下一个单词开始 b 光标后移到下一个单词开始 10g 光标到第10行
w 光标前移到下一个单词开始 b 光标后移到下一个单词开始 10g 光标到第10行
xg光标移动到第几行
gg光标移动到第一行 G 光标到最后一行 % 移动光标到匹配的另一半括号
yy 将当前行复制到缓冲区 yw 将光标开始单词复制到缓冲区 yh 将光标左边的字符复制到缓冲区 p 将缓冲区内容粘贴到光标前 P 将缓冲区内容粘贴到光标后
"ayy 将当前行内容复制到a 缓冲区 "a10yy 将当前开始的10行内容复制到a 缓冲区 "ap 将a 缓冲区的内容粘贴在当前光标前 "Add 将当前行删除, 内容附加到A 缓冲区
:set ignorecase 表示搜索时忽略大小写的
用/命令进行搜索
/regexp 向前搜索匹配regexp的字符串 n 继续搜索 N 反向搜索 ?regexp 向后搜索匹配regexp的字符串 :s/regexp/s2 将本行第一个匹配regexp的字符串替换为s2 :s/regexp/s2/g 将本行所有匹配regexp的字符串替换为s2 :1,$ s/regexp/s2/g 将文件中所有匹配regexp的字符串替换为s2
u 取消上次命令
CTRL-R (重做)来反转撤消的动作。换句话说,它是对撤消的撤消。 J 当前两行合并成1行 << 当前行左缩进一个tab 10>> 当前行开始的10行右缩进一个tab :set 查看/修改当前设置 :help 寻求帮助