学习vim的时候,需要掌握很多的命令,但是很难一下子把这么多的命令都记住,并且如果很长一段时间不用,就全忘了,所以这里把一些常用到的命令写下来。
1. i – insert 在当前光标处插入
2. I – insert 在行首插入
3. a – append 在当前光标后插入
4. A – append 在行尾附加
5. v – visual 可视模式
6. y – yank 复制
7. p – paste 粘帖
8. cc – 擦出当前行内容,并且进入编辑模式
9. dd – 擦除当前行
10 . o – 在当前行的下面插入一行,并进入编辑模式。
12. O – 在当前行的前面插入一行,并进入编辑模式。
12. wq – write and quit – 保存并退出。
:wa
|
write all changed files (save all changes), and keep working |
:xa
|
exit all (save all changes and close Vim) |
:qa
|
quit all (close Vim, but not if there are unsaved changes) |
:qa!
|
quit all (close Vim without saving—discard any changes) |
wa 将当前打开的所有的文件保存
xa 将当前打开的所有的文件保存并退出vim
qa 关闭所有的文件,并退出vim,但是如果当前的有没有保存的文件,则会提示你先保存
qa! 强制关闭所有的文件,并退出vim,即使有没保存的文件
13 q – quit 退出。
14 q!- 不保存强制退出
15. yy – 快速复制当前行
16. [n]yy – 快速复制多行,如5yy,快速复制5行
17. edit – 重新载入磁盘文件
18. [n]dd,同时删除多行,n可以为任意数字,比如:10dd,就是同时删除10行。
19. 搜索 – /[word]或?[word],前者为向前搜索,后者为向后搜索。如 ?class,就是向后搜索class
20. 替换 -[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
这里的flags:
c: 每次都确认
g:替换所有的出现在一行的字符串
i:忽略大小写
举例:
a. 替换整个文件中old-text用new-text
%s/old-text/new-text/g
b. 替换一行中文字:
s/old-text/new-text/ig
c. 替换1到10行中文字:
1,10s/old-text/new-text/g
d. 如果有特殊符号使用
:%s/<foo>/bar/gc
21. u – undo, 撤销
22. ctrl +r – redo, 重新做
23. :args , 查看当前打开的文件
24. < 为向左缩进一个tab,
> 表示向右缩进一个tab。 可以同时选中多行进行缩进
25. gU, 选中的部分变成大写,
gu, 选中的部分变成小写。 执行这2个命令可以先在可视模式下,选中想要变大小写的文字。
26. 在非编辑模式复制文字。可以直接使用 y 复制。如 y$ 表示从当前光标处复制到行尾。
27. 在vim中查看vim的命令,在命令行模式输入: help [命令名],例如要查看yy的是做什么的,有什么用法,则可以: help yy
28. dt [], 删除从当前光标开始到某个特定字符结束的的内容。例如: dt " 表示删除光标后的内容直到遇到 "
29. 全选。 gg 先去到首行,然后 V 切换到行可视模式,记住是大写的V,然后在使用G就可以实现全选了。
30. vim 执行shell命令,使用 !, 例如使用ls命令那么: ! ls
31. 删除光标后一个单词 dw, 删除光标前一个单词 db. 如果光标在单词中间就分别用 bdw 和 bved
32. 拷贝光标后一个单词 yw, 拷贝前一个单词 vey. 如果光标在单词中间就分别用 byw 和 bvey
33. 重新载入文件 edit, 后面什么参数或者文件也不用加就是重新载入当前文件
34. 如果打开了一个没有权限写的文件,保存时会出错,可以时使用: w ! sudo tee %
35. set hisearch会让查找的字符串以黄色的显示,有时它会一致显示,很难看,如果你想取消,可以使用 :nohl 或者再次随便搜索不存在的字符,如:
?sdkfhdifa;sdjdaso
36. 在当前文件中搜索,使用?pattern就可以了,但是如果想在多个文件中搜索的话,就需要是用vimgrep,这个命令相当于linux的grep的命令,格式如下:
:vimgrep pattern/gj *.c *.php ./tmp/*.c
然后使用
:cw
就会列出所有搜索到的文件。
使用hjkl或者方向键就可以选择不同的文件,回车就会打开该文件。
37. vim中多种折叠方式,有
indent
manual
marker
syntax
diff
expr
我比较喜欢第一种,是因为简单,足够我用了,其实具体的解释可以在vim中使用
:help foldmethod
来查看
选中一款自己的喜欢的,然后在vim的配置文件中设置
set foldmethod=indent
za: 收起或者打开光标所在的折叠
zm/M:收起所有的折叠
zr/R:打开所有的折叠
zj:移动到下一个折叠
zk:移动到上一个折叠
38. 冒号命令行模式,直接拷贝剪贴板中的内容
ctrl + r
然后再按剪贴板的编号,比如是默认剪贴板就是双引号 “
39. 从当前字符删除到行末
D
或者
d$
40. 显示当前文件名
:file
41. 显示当前文件的全路径
1 + CTRL + g
42. windows vim中在插入模式下,backspace不工作的,可以使用下面的命令,
:set backspace=2
你也可以直接将这个命令放入你的 vimrc中。
43.拷贝行到行
2,5y a
拷贝行2 到5到寄存器 a
:7pu a
拷贝寄存器a的内容到行7.
44. 替换
全文替换
:%s/word/word_replaced/gc
从行到行,例如替换10到20行
:10,20s/word/word_replaced/gc
45. 查找
:/word 向上查找
:?word 向下查找
全匹配查找
:/\<word\>
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.