Vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。Vim能够大大提高程序员的工作效率,对于Vim高手来说,Vim能以与思考同步的速度编辑文本,但同时,学习和熟练使用又有一定的难度,我们上篇讲解了vim简单入门,这篇来说说VIM常用命令。
——————————————————————————
N 用来 (可选) 置于命令之前表示该命令执行的计数。
——————————————————————————
*Q_lr*左右动作
|h| N h左 (亦: CTRL-H、<BS> 或 <Left> 键)
|l|N l右 (亦: <Space> 或 <Right> 键)
|0| 0至本行第一个字符 (亦: <Home> 键)
|^| ^至本行第一个非空白字符
|$|N $至本行 (加上 N – 1 后续行) 最后一个字符 (亦: <End> 键)
|g0| g0至屏幕行第一个字符 (当行回绕时和 “0” 不同)
|g^| g^至屏幕行第一个非空白字符 (当行回绕时和 “^” 不同)
|g$|N g$至屏幕行最后一个字符 (当行回绕时和 “$” 不同)
|gm| gm至屏幕行中点
|bar|N |至第 N 列 (缺省: 1)
|f|N f{char}至右边第 N 次出现 {char} 之处 (find)
|F|N F{char}至左边第 N 次出现 {char} 之处 (Find)
|t|N t{char}至右边第 N 次出现 {char} 之前 (till)
|T|N T{char}至左边第 N 次出现 {char} 之前 (Till)
|;|N ;重复上次 “f”、”F”、”t” 或 “T” 命令 N 次
|,|N ,以相反方向重复上次 “f”、”F”、”t” 或 “T” 命令 N 次
——————————————————————————
*Q_ud*上下动作
|k|N k上移 N 行 (亦: CTRL-P 和 <Up>)
|j|N j下移 N 行 (亦: CTRL-J、CTRL-N、<NL> 和 <Down>)
|-|N -上移 N 行,至第一个非空白字符
|+|N +下移 N 行,至第一个非空白字符 (亦: CTRL-M 和 <CR>)
|_|N _下移 N – 1 行,至第一个非空白字符
|G|N G至第 N 行 (缺省: 末行) 第一个非空白字符
|gg|N gg至第 N 行 (缺省: 首行) 第一个非空白字符
|N%|N %至全文件行数百分之 N 处;必须给出 N,否则是 |%| 命令
|gk|N gk上移 N 屏幕行 (回绕行时不同于 “k”)
|gj|N gj下移 N 屏幕行 (回绕行时不同于 “j”)
——————————————————————————
*Q_tm*文本对象动作
|w|N w向前 (正向,下同) N 个单词 (word)
|W|N W向前 N 个空白隔开的字串 |WORD| (WORD)
|e|N e向前至第 N 个单词词尾 (end)
|E|N E向前至第 N 个空白隔开的字串 |WORD| 的词尾 (End)
|b|N b向后 (反向,下同) N 个单词 (backward)
|B|N B向后至第 N 个空白隔开的字串 |WORD| 的词尾 (Backward)
|ge|N ge向后至第 N 个单词词尾
|gE|N gE向后至第 N 个空白隔开的字串 |WORD| 的词尾
|)|N )向前 N 个句子
|(|N (向后 N 个句子
|}|N }向前 N 个段落
|{|N {向后 N 个段落
|]]|N ]]向前 N 个小节,置于小节的开始
|[[|N [[向后 N 个小节,置于小节的开始
|][|N ][向前 N 个小节,置于小节的末尾
|[]|N []向后 N 个小节,置于小节的末尾
|[(|N [(向后至第 N 个未闭合的 ‘(‘
|[{|N [{向后至第 N 个未闭合的 ‘{‘
|[m|N [m向后至第 N 个方法 (method) 的开始 (用于 Java)
|[M|N [M向后至第 N 个方法的结束 (Method) (用于 Java)
|])|N ])向前至第 N 个未闭合的 ‘)’
|]}|N ]}向前至第 N 个未闭合的 ‘}’
|]m|N ]m向前至第 N 个方法 (method) 的开始 (用于 Java)
|]M|N ]M向前至第 N 个方法的结束 (Method) (用于 Java)
|[#|N [#向后至第 N 个未闭合的 “#if” 或 “#else”
|]#|N ]#向前至第 N 个未闭合的 “#else” 或 “#endif”
|[star|N [*向后至第 N 个注释的开始 “/*”
|]star|N ]*向前至第 N 个注释的结束 “*/”
——————————————————————————
*Q_pa*模式查找
|/|N /{pattern}[/[offset]]<CR>
向前查找第 N 次出现 {pattern} 的地方
|?|N ?{pattern}[?[offset]]<CR>
向后查找第 N 次出现 {pattern} 的地方
|/<CR>|N /<CR>向前重复上次查找
|?<CR>|N ?<CR>向后重复上次查找
|n|N n重复上次查找
|N|N N相反方向重复上次查找
|star|N *向前查找光标下的标识符
|#|N #向后查找光标下的标识符
|gstar|N g*同 “*”,但也查找部分匹配
|g#|N g#同 “*”,但也查找部分匹配
|gd| gd至光标下标识符的局部声明 (goto declaration)
|gD| gD至光标下标识符的全局声明 (goto Declaration)
|pattern|查找模式中的特殊字符
含义 magic nomagic~
匹配任意单个字符.\.
匹配行首^^
匹配 <EOL>$$
匹配单词开始\<\<
匹配单词结束\>\>
匹配单个标定范围中的字符[a-z]\[a-z]
匹配单个不在标定范围中的字符[^a-z]\[^a-z]
匹配一个标识符字符\i\i
同上但不包括数字\I\I
匹配一个关键字字符\k\k
同上但不包括数字\K\K
匹配一个文件名字符\f\f
同上但不包括数字\F\F
匹配一个可显示的字符\p\p
同上但不包括数字\P\P
匹配一个空白字符\s\s
匹配一个非空白字符\S\S
匹配 <Esc>\e\e
匹配 <Tab>\t\t
匹配 <CR>\r\r
匹配 <BS>\b\b
匹配 0 或多个前面的匹配原*\*
匹配 1 或多个前面的匹配原\+\+
匹配 0 或 1 个前面的匹配原\=\=
匹配 2 至 5 个前面的匹配原\{2,5}\{2,5}
隔开两种可替换的匹配\|\|
组合模式为单个匹配原\(\)\(\)
|search-offset|查找命令后可用的偏移量
[num]向下 [num] 行,位于第一列
+[num]向下 [num] 行,位于第一列
-[num]向上 [num] 行,位于第一列
e[+num]匹配结尾 (end) 右方 [num] 个字符处
e[-num]匹配结尾 (end) 左方 [num] 个字符处
s[+num]匹配启始 (start) 右方 [num] 个字符处
s[-num]匹配启始 (start) 左方 [num] 个字符处
b[+num]同上 s[+num] (助记: begin)
b[-num]同上 s[-num] (助记: begin)
;{search-command}接着执行 {search-command} 查找命令
——————————————————————————
*Q_ma*位置标记和相关动作
|m| m{a-zA-Z}用标记 {a-zA-Z} 记录当前位置
|`a| `{a-z}至当前文件中的标记 {a-z}
|`A| `{A-Z}至任何文件中的标记 {A-Z}
|`0| `{0-9}至 Vim 上次退出的位置
|“| “至上次跳转之前的位置
|`quote| `”至上次编辑此文件的位置
|`[| `[至上次被操作或放置的文本的开始
|`]| `]至上次被操作或放置的文本的结尾
|`<| `<至 (前次) 可视区域的开始
|`>| `>至 (前次) 可视区域的结尾
|`.| `.至当前文件最后被改动的位置
|’| ‘{a-zA-Z0-9[]'”<>.}
同 `,但同时移动至该行的第一个非空白字符
|:marks| :marks列出活动的标记
|CTRL-O| N CTRL-O跳转到跳转表中第 N 个较早的位置
|CTRL-I| N CTRL-I跳转到跳转表中第 N 个较晚的位置
|:ju| :ju[mps]列出跳转表
——————————————————————————
*Q_vm*其他动作
|%| %找到本行中下一个括号、方括号、注释或
“#if”/”#else”/”#endif” 并移动至与其对称的位置
|H|N H至窗口的第 N 行的第一个非空白字符处 (Home)
|M| M至窗口的中间行的第一个非空白字符处 (Middle)
|L|N L至窗口的第 N 行 (从下方算) 的第一个非空白字符处 (Last)
|go|N go至缓冲区的第 N 个字节
|:go|:[range]go[to] [off]至缓冲区的第 [off] 个字节
——————————————————————————
*Q_sc*屏幕滚动
|CTRL-E|N CTRL-E窗口下滚 N 行 (缺省: 1) (Extra)
|CTRL-D|N CTRL-D窗口下滚 N 行 (缺省: 1/2 窗口) (Downwards)
|CTRL-F|N CTRL-F窗口下滚 N 页 (Forwards)
|CTRL-Y|N CTRL-Y窗口上滚 N 行 (缺省: 1)
|CTRL-U|N CTRL-U窗口上滚 N 行 (缺省: 1/2 窗口) (Upwards)
|CTRL-B|N CTRL-B窗口上滚 N 页 (Backwards)
|z<CR>| z<CR> 或 zt重画,当前行置窗口顶端
|z.| z. 或 zz重画,当前行置窗口正中
|z-| z- 或 zb重画,当前行置窗口底端
以上是一些常用命令,大家可以多尝试练习使用,只有使用多了,形成肌肉记忆,才能实现真正的高手。就给使用五笔打字一样,刚学习的时候还需要记住字根,当使用多了,只要看到字,手自然就知道按那些键了。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/17263.html