vim学习笔记
1. vim中保存只读文件 :w !sudo tee %
2. vim中删除当前字符 x
3. vim中移动当行首 0
4. vim中移动光标到行尾 $
5. vim中移动光标到行首非空白字符 ^
6. 在当前行首插入字符 I
7. 在当前光标之前插入字符 i
8. 在当前光标之后插入字符 a
9. 在当前行尾插入字符 A
10. 在当前光标下方插入新行 o
11. 在当前光标上方插入新行 O
12. 替换当前光标所在字符 s
13. 替换当前光标所在行 S
14. 替换当前光标所在字符并返回normal模式,r
15. 连续替换当前光标所在字符 R
16. 删除当前行 dd, 删除当前字符dl, 删除当前单词dw
17. 复制光标所在段落 yap, 复制当前行yy, 复制单词yw, 复制当前字符yl
18. 交换两个字符的位置xp, 交换两个单词之间的位置dwwP,交换两行之间的位置 ddp
19. 在当前光标之后黏贴p, 在当前光标之前黏贴P
20. 向左移动一个字符 h
21. 向下移动一个字符 j
22. 向上移动一个字符 k
23. 向右移动一个字符 l
22. 向后翻屏 ctrl +b
23. 向前翻屏 ctrl +f
24. 移动到第一行 1g
25. 移动到尾行 G
26. 向后移动一个单词位置,光标在词首 w
26. 向后移动一个单词位置,光标在词尾 e
27. 向前移动一个单词位置, b
28. 向前移动一个句子位置,(
28. 向后移动一个句子位置, )
29. 向前移动一个段落的位置,{
30. 向后移动一个段落的位置, }
31. 为当前行做标记 m + [a-z,A-Z], 返回到标记为 ‘ + [a-z, A-Z]
32. 跳到上一个位置 ctrl + o
33. 跳到下一个位置 ctrl + i
34. 将光标移动到文本起始位置,按v进入visual模式,移动光标到文本末尾位置,则此段文本被选中,按c即可删除文本并进入插入模式。
35. 在当前光标输入V,进入visual模式,并选中当前行,移动光标则以行为单位选中文本,按c删除所选文本,进入插入模式
36. 在当前光标输入v,进入visual模式,输入ap,选中整个段落,输入aw选中当前单词,光标在(上则输入ab则选中()中的内容,按~可对选中单词进行大小写转换。
37. 临时退出vim,进入shell环境的方法:
(1) 键入:sh 进入shell环境,键入exit 退出shell回到vim
(2) 键入ctrl + z, 进入shell, 键入fg,回到vim
38. 进入搜索模式 /keyword , 按Enter进行搜索, 按n,跳到下一个搜索的位置,N,向后跳到前一个位置
39. 同时打开多个文件,:e filename, 查看文件列表::ls,切换到某一个文件::b number , 关闭某一个文件的buffer,:bd number
40. 同时打开多个视图,:new 新建一个视图, ctr+h , j ,k, l 在各个视图之间进行切换; 按 ctrl + w 两次,在视图之间循环;ctrl +w +r 交换两个视图的位置
41. 水平切分一个视图,:sp, 垂直切分一个视图,:vsp, 最大化当前视图 ctrl+w+_ , 调整窗口大小::resize 20
42. 打开多个tab页::tabnew, 切换到下一个tab:gt, 切换到上一个tab:gT, 关闭tab::q or :tabc, 切换到指定(第一个)tab: tabmove 0
43. 复制文档全部内容, ggyG
44. 删除文档全部内容,dG
45. 在源代码中从一个[ or { 跳转到它的另一个闭合处 使用 %
46. 在源代码中从一个变量处 通过过gd可以跳转到变量定义处
47. 查看buffer列表, :ls
48. 将文件加入buffer, :bad pathTofile
49. 将buffer中的文件加载进window, :b{n} ,其中n为buffer在列表中的编号
50. 删除buffer,bd{n} , n 为buffer在列表中的编号
51. 在文件中全局替换:%s#findString#replaceString#g
52. 创建vim session文件 :mks filename, 重写session :mks! filename, 载入session vim -S sessionFile
53. vim 搜索后消除高亮,:noh, 设置高亮: set hls
54. 一次性重复输入多个相同字符, 20a=^ESC (^为esc按键),此命令在当前字符后插入了20个=
55. 代码折叠:zo, zO, 打开光标下的折叠, zc, zC, 关闭光标下的折叠,za, zA, 打开或关闭折叠, zr,逐步打开折叠,zR一次打开所有折叠,
zm逐步关闭折叠,zM一次性关闭所有折叠,zf创建折叠。
56. :mks sessionFile 为当前vim环境创建session,vim -S sessionFile 打开vim时同时载入session
57. 查看文件编码,:set fileencoding, 转换文件编码,:set fileencoding=utf-8
58. 将一行字符转为小写:guu, 转为大写:gUU. 将当前字符转为小写,vu, 转为大写:vU. 查看当前字符的utf-8编码 g8.
59. >> 右缩进当前行,<<左缩进当前行, == 对齐缩进当前行, =% 缩进整个语句块,gg=G缩进整个文件。
60. 在normal模式键入v,进入visual模式,利用jkhl,进行字符选中。键入V,进入line visual模式,按住jk,按照行选中。键入ctrl + v, 进入block visual模式,按照区块选中。
61. 在normal模式下,键入gh进入select模式,在normal模式下键入Q进入Ex模式(多行命令行)
62. 在normal模式下,m [a-z,A-Z] 添加标记。' [a-z], 跳转到标记所在的行,`[a-z], 跳转到标记处, [A-Z], 可定义跨文件的标记。:marks 列出所有的标记,:delmarks [a-z] 删除指定标记。:delmarks! 删除所有标记。
63. locationList窗口操作命令, :lcl 关闭窗口,:lop 打开窗口, :lne, 下一个错误处,:lpr 上一个错误处。
64. quickfix 窗口操作命令,:ccl 关闭窗口,:cop 打开窗口
65. 在normal模式下,*在当前文件中搜索光标所在单词,g* 搜索光标所在单词在文件中的字符序列。
66. 查找与替换,格式为 :{作用范围}/{目标}/{替换}/{替换标志}, 其中/ 也可用#代替。作用范围包括:当前行:s/foo/bar/g 全文:%s/foo/bar/g 选区:.,+2s/foo/bar/g (在visual模式按:即可补全s之前的内容), 替换标志g 为全局替换, i为大小写不敏感,I为大小写敏感,c表示需要确认。
67. 使用vim的出厂设置: vim -u NONE -N , -u NONE 表示启动时不加载vimrc, -N 防止进入vi兼容模式。
68. 查看vim教程 :h vimtutor
69. ; 重复上次f或F的查找;而 , 则回退f 或F 的查找; . 重复上次的修改。
70. s 删除当前字符并进入编辑模式,等价于cl; S 删除当前行并进入编辑模式,等价于cc; x 删除单个字符。
71. 5<C-a> 对当前光标之上或之后的数字增加5,5<C-x> 对当前光标之上或之后的数字减去5
72. 查看跳转列表 :jumps , ctrl + o 向后跳转, ctrl + i 向前跳转
73. 查看改变列表 :changes , g; 回到上次更改的地方向后遍历,g, 向前遍历, gi 跳转到上次插入的地方,并切换到插入模式。
74. 查看vim版本::version。
75. 在文件中跳转: m[a~z] 可以在一个文件中标记26处,跳转到标记的某一行处,'[a~z] 如果调到具体位置`[a~z]
76. 在文件之间跳转: m[A~Z], 在文件中某处标记后可以,可以在文件之间进行跳转 '[A~Z] 如果跳转到具体位置`[A~Z]
77. %, 在代码中跳转到匹配相应的( [ {, [(, 用于跳转到前一个不匹配的 ( 。
78. g^, 在一个很长的行中跳转到视觉中的行的开头,g$, 在长行中跳转到视觉中的行末尾。