Vim光标移动
Contents
Vim 光标移动
搜索结果之间跳转 文件之间移动 Vim 最大的特征与最大的困难就是键盘操作,所以快速移动光标是 Vim 的最基本技能。光标移动可以配合其他快捷键使用,比如 y, x, d, v,更好地掌握了光标移动也就更好地掌握了其他编辑技能。
上下左右:以字符为单位 进入 Vim 的 normal 模式(如果你在 visual 模式或者 insert 模式,可以按若干次 Esc 回到 normal 模式)。 h 向左移动一个字符。 j 向下移动一个字符。 k 向上移动一个字符。 l 向右移动一个字符。 和其他快捷键一样,可以配合数字来移动多个字符,比如 5l 向左移动 5 个字符。
以单词为单位移动 多数情况下单词移动比字符移动更加高效,比如要走到当前变量名前加一个 let。
w 移动到下一个单词的词首。 b 移动到上一个单词的词首。 e 移动到下一个单词的结尾。 单词移动同样支持数字前缀,比如 4w 可以向后移动 4 个单词。此外大写的 W, B, E 具有同样的功能,只不过小写用标点符号来分隔单词,大写用空格来分隔单词,更适合在代码里移动。
以行为单位移动 ^ 移动到行首第一个词的首字母。 | 移动到行首第一个字符。 $ 移动到行尾。 j 移动到下一行。 k 移动到上一行。 :10 移动光标到文件第 10 行。可以 :set number 来让 vim 显示行号。 gg 移动到文件首行。 G 移动到文件尾行。 上下行移动的命令同样可以加数字,比如 10j 向下移动 10 行。
以屏幕为单位移动 H 移动到当前屏的首行。 L 移动到当前屏的尾行。 M 移动到当前屏的中间行。 zt 光标所在字符不动,将当前行移动到屏幕顶部,通常用来查看完整的下文,比如函数、类的定义。 zz 光标所在字符不动,将当前行移到屏幕中间。 zb 光标所在字符不动,将当前行移到屏幕底部。 ctrl-f 向下翻页,移动一整个屏幕。 ctrl-b 向上翻页,移动一整个屏幕。 ctrl-e 屏幕向下滚动一行。 ctrl-y 屏幕向上滚动一行。 后面几个 Ctrl 开头的命令是 Unix 命令行的惯例,比如在 man 和 less 里也适用。
https://harttle.land/2015/11/07/vim-cursor.html
- 能够熟练地滚屏 (
zz
,zt
,zb
,c-f
,c-b
) 、标识符间来回移动、按屏幕移动光标 (H
,L
,M
) 、窗格间移动 (c-w hjkl
) 。 - 下一阶段: 熟悉段落与单词间跳转,熟悉数字的使用。比如对于
func(args, count)
,我要记住从行首到第二个参数的快捷键是4w
。
如果你还没有接触过Vim,可以从这里开始。
字符移动
在Vim的Normal模式里 (如果你在Visual模式或者Insert模式,可以按<Esc>
回到Normal模式) , 通过h
, j
, k
, l
, i
来进行左下上右的光标移动。
在Vim中多数操作都支持数字前缀,比如10j
可以向下移动10行。
单词移动
多数情况下单词移动比字符移动更加高效。 w
移动光标到下一个单词的词首,b
移动光标到上一个单词的词首;e
移动光标到下一个单词的结尾,ge
移动光标到上一个单词的结尾。
单词移动同样支持数字前缀,比如
4w
可以向后移动4个单词。连续的标点符号算一个单词。 有趣的是,W
,B
,E
具有同样的功能,只不过它是用空格来分隔单词的,可以跳地更远~
^
到行首,$
到行尾。
拷贝一行:
^y$
。
相对屏幕移动
通过c-f
向下翻页,c-b
向上翻页;c-e
逐行下滚,c-y
逐行上滚。这在几乎所有Unix软件中都是好使的,比如man
和less
。 H
可以移动到屏幕的首行,L
到屏幕尾行,M
到屏幕中间。
zt
可以置顶当前行,通常用来查看完整的下文,比如函数、类的定义。 zz
将当前行移到屏幕中部,zb
移到底部。
文件中移动
通过:10
可以直接移动光标到文件第10行。如果你看不到行号,可以:set number
。 gg
移到文件首行,G
移到尾行。
拷贝整个文件:
ggyG
。
/xx
可以查找某个单词xx
,n
查找下一个,N
查找上一个。 在光标跳转之后,可以通过c-o
返回上一个光标位置,c-i
跳到下一个光标位置。
?xx
可以反向查找,q/
,q?
可以列出查找历史。
窗格间移动
参考另一篇文章: Vim 多文件编辑。
本文采用 知识共享署名 4.0 国际许可协议 (CC-BY 4.0) 进行许可,转载注明来源即可: https://harttle.land/2015/11/07/vim-cursor.html。学识粗浅写作仓促,如有错误辛苦评论或 邮件 指出。
Author -
LastMod 2021-07-22