总结
- 逐字逐行
j
:向下一行k
:向上一行h
:向左一个字符l
:向右一个字符0
:移至行首。$
:移至行尾。^
:移动至行首第一个非空字符g_
:移动至行尾最后一个非空字符,但行尾最后严禁多余的空格。
- 逐词移动
w
:移动至下一个word
首部W
:移动至下一个WORD
首部b
:移动至上一个word
首部B
:移动至上一个WORD
首部e
:移动至下一个word
尾部E
:移动至下一个WORD
尾部
- 查词移动
f<char>
:移动至下个字母位置。如fa
,则是移动至下一个字母a
的位置。F<char>
:移动至上个字母位置。如Fa
,则是移动至上一个字母a
的位置。t<char>
:移动至下个字母位置前一个字符。T<char>
:移动至上个字母位置后一个字符。;
:重复上次查词移动操作
- 高频移动
G
:移至最后一行gg
:移至首行<n>G
:移至第n
行:n<br>
:移至第n
行。<br>
为回车<ctrl-o>
:移至上次光标出现位置<ctrl-i>
:移至下次光标出现位置''
: 上次切换处, 类似Ctrl + o
'.
: 上次编辑处*
:光标选中词匹配下一个;#
:光标选中词匹配上一个;gd
: 前往定义处m<char>
: 标记,随后使用'<char>
就可以跳转到标记处
1. 前提提要、场景
vim
中在 insert mode
模式下是无法移动光标的,只能在 normal mode
下移动。除了 hjkl
移动光标,还有许多快捷的方式移动光标
2. 逐字逐行
j
:向下一行k
:向上一行h
:向左一个字符l
:向右一个字符0
:移至行首。$
:移至行尾。^
:移动至行首第一个非空字符g_
:移动至行尾最后一个非空字符,但行尾最后严禁多余的空格。
Tip:小技巧,在 vim 中通过命令 :set list,可显示非空字符等特殊字符。如果取消显示,可使用 :set nolist。:set number 显示行号
3. 逐词移动
vim
关于词的两个概念:
word
:数字、字符、下划线构成的词。比如yarn.lock
是三个 word。WORD
:非空字符构成的词。比如yarn.lock
是一个 WORD。
快捷键:
w
:移动至下一个word
首部W
:移动至下一个WORD
首部b
:移动至上一个word
首部B
:移动至上一个WORD
首部e
:移动至下一个word
尾部E
:移动至下一个WORD
尾部
4. 查词移动
有时,直接定位到某个字符更加方便。以下命令只对当前行有效
f<char>
:移动至下个字母位置。如fa
,则是移动至下一个字母a
的位置。F<char>
:移动至上个字母位置。如Fa
,则是移动至上一个字母a
的位置。t<char>
:移动至下个字母位置前一个字符。T<char>
:移动至上个字母位置后一个字符。
如此之外,还有一个 ;
,可重复上次查词动作。比如,想查找字符 a
第三次出现位置,除了使用 3fa
,还可以使用 ;;
。
;
:重复上次查词移动操作
5. 高频移动
工作中常见的较为高频的移动操作。
G
:移至最后一行gg
:移至首行<n>G
:移至第n
行:n<br>
:移至第n
行。<br>
为回车<ctrl-o>
:移至上次光标出现位置<ctrl-i>
:移至下次光标出现位置''
: 上次切换处, 类似Ctrl + o
'.
: 上次编辑处*
:光标选中词匹配下一个;#
:光标选中词匹配上一个;gd
: 前往定义处m<char>
: 标记,随后使用'<char>
就可以跳转到标记处