vim每日一练(二)——光标的横向纵向移动

上一节我们介绍了光标的移动按键:hjkl,即左下右上。今天来写更高级一点的光标移动

1.光标的左右移动

0 移动到左边的第一个字符
^ 移动到左边的第一个非空白字符
[N]$ 移动到第N-1行的最后一个字符(N默认为1)
有时候一行语句很长,在vim屏幕的宽度中放不下,可能会出现自动换行(wrap)的情况,此时可以使用下面几个命令使得移动是以屏幕行为对象,而非实际行。
g0 移动到屏幕行的第一个字符
g^ 移动到屏幕行的第一个非空白字符
[N]g$ 移动到第N-1个屏幕行的最后一个字符
gm 移动到屏幕行的中间位置
还有几个快速的左右移动方式
[N]| 移动到第N列
[N]f{char} 移动到从当前位置起左边第N个char字符的位置
[N]F{char}移动到从当前位置起右边第N个char字符的位置
[N]t{char}移动到从当前位置起左边第N个char字符之前的位置
[N]T{char}移动到从当前位置起右边第N个char字符之前的位置
[N]; 重复N次前面的"f", "F", "t", "T"
[N], 反方向重复N次前面的"f", "F", "t", "T"
2.光标的上下移动
[N]- 向上移动N行,定位到第一个非空白字符
[N]+ 向下移动N行,定位到第一个非空白字符
[N]G 移动到第N行,定位到第一个非空白字符,默认为最后一行
[N]gg 移动到第N行,定位到第一个非空白字符,默认为第一行
N% 移动到第文件的N%的位置
[N]gk 向上移动N个屏幕行
[N]gj 向下移动N个屏幕行
3.光标的按元素移动
[N]w 向前移动N个单词
[N]W 向前移动N个空格隔开的单词
[N]e 向前移动N个单词,定位到单词的结尾处
[N]E 向前移动N个空格隔开的单词,定位到单词的结尾处
[N]b 向后移动N个单词
[N]B 向后移动N个空格隔开的单词
[N]ge 向后移动N个单词,定位到单词的结尾处
[N]gE 向后移动N个空格隔开的单词,定位到单词的结尾处
按句子和段落移动:
[N]) 向前移动N个句子
[N]( 向后移动N个句子
[N]} 向前移动N个段落
[N]{ 向后移动N个段落
[N]]] 向前移动N个句子,停留在句子的开头处
[N][[ 向后移动N个句子,停留在句子的开头处
[N]][ 向前移动N个句子,停留在句子的结尾处
[N][] 向后移动N个句子,停留在句子的结尾处
定位括弧、预编译指令,注释等:
[N][( 向后找第N个'('的位置
[N]]) 向前找第N个')'的位置
[N][{ 向后找第N个'{'的位置
[N]]} 向前找第N个'}'的位置
[N][# 向后找第N个#if或#else
[N]]# 向前找第N个#else或#endif
[N][* 向后找第N个"/*"
[N]]* 向前找第N个"*/"





你可能感兴趣的:(vim)