vim每日一练(二)——光标的横向纵向移动
2015-09-15 19:31
197 查看
上一节我们介绍了光标的移动按键:hjkl,即左下右上。今天来写更高级一点的光标移动
1.光标的左右移动
0 移动到左边的第一个字符
^ 移动到左边的第一个非空白字符
$ 移动到第N-1行的最后一个字符(N默认为1)
有时候一行语句很长,在vim屏幕的宽度中放不下,可能会出现自动换行(wrap)的情况,此时可以使用下面几个命令使得移动是以屏幕行为对象,而非实际行。
g0 移动到屏幕行的第一个字符
g^ 移动到屏幕行的第一个非空白字符
g$ 移动到第N-1个屏幕行的最后一个字符
gm 移动到屏幕行的中间位置
还有几个快速的左右移动方式
| 移动到第N列
f{char} 移动到从当前位置起左边第N个char字符的位置
F{char}移动到从当前位置起右边第N个char字符的位置
t{char}移动到从当前位置起左边第N个char字符之前的位置
T{char}移动到从当前位置起右边第N个char字符之前的位置
; 重复N次前面的"f", "F", "t", "T"
, 反方向重复N次前面的"f", "F", "t", "T"
2.光标的上下移动
- 向上移动N行,定位到第一个非空白字符
+ 向下移动N行,定位到第一个非空白字符
G 移动到第N行,定位到第一个非空白字符,默认为最后一行
gg 移动到第N行,定位到第一个非空白字符,默认为第一行
N% 移动到第文件的N%的位置
gk 向上移动N个屏幕行
gj 向下移动N个屏幕行
3.光标的按元素移动
w 向前移动N个单词
W 向前移动N个空格隔开的单词
e 向前移动N个单词,定位到单词的结尾处
E 向前移动N个空格隔开的单词,定位到单词的结尾处
b 向后移动N个单词
B 向后移动N个空格隔开的单词
ge 向后移动N个单词,定位到单词的结尾处
gE 向后移动N个空格隔开的单词,定位到单词的结尾处
按句子和段落移动:
) 向前移动N个句子
( 向后移动N个句子
} 向前移动N个段落
{ 向后移动N个段落
]] 向前移动N个句子,停留在句子的开头处
[[ 向后移动N个句子,停留在句子的开头处
][ 向前移动N个句子,停留在句子的结尾处
[] 向后移动N个句子,停留在句子的结尾处
定位括弧、预编译指令,注释等:
[( 向后找第N个'('的位置
]) 向前找第N个')'的位置
[{ 向后找第N个'{'的位置
]} 向前找第N个'}'的位置
[# 向后找第N个#if或#else
]# 向前找第N个#else或#endif
[* 向后找第N个"/*"
]* 向前找第N个"*/"
1.光标的左右移动
0 移动到左边的第一个字符
^ 移动到左边的第一个非空白字符
$ 移动到第N-1行的最后一个字符(N默认为1)
有时候一行语句很长,在vim屏幕的宽度中放不下,可能会出现自动换行(wrap)的情况,此时可以使用下面几个命令使得移动是以屏幕行为对象,而非实际行。
g0 移动到屏幕行的第一个字符
g^ 移动到屏幕行的第一个非空白字符
g$ 移动到第N-1个屏幕行的最后一个字符
gm 移动到屏幕行的中间位置
还有几个快速的左右移动方式
| 移动到第N列
f{char} 移动到从当前位置起左边第N个char字符的位置
F{char}移动到从当前位置起右边第N个char字符的位置
t{char}移动到从当前位置起左边第N个char字符之前的位置
T{char}移动到从当前位置起右边第N个char字符之前的位置
; 重复N次前面的"f", "F", "t", "T"
, 反方向重复N次前面的"f", "F", "t", "T"
2.光标的上下移动
- 向上移动N行,定位到第一个非空白字符
+ 向下移动N行,定位到第一个非空白字符
G 移动到第N行,定位到第一个非空白字符,默认为最后一行
gg 移动到第N行,定位到第一个非空白字符,默认为第一行
N% 移动到第文件的N%的位置
gk 向上移动N个屏幕行
gj 向下移动N个屏幕行
3.光标的按元素移动
w 向前移动N个单词
W 向前移动N个空格隔开的单词
e 向前移动N个单词,定位到单词的结尾处
E 向前移动N个空格隔开的单词,定位到单词的结尾处
b 向后移动N个单词
B 向后移动N个空格隔开的单词
ge 向后移动N个单词,定位到单词的结尾处
gE 向后移动N个空格隔开的单词,定位到单词的结尾处
按句子和段落移动:
) 向前移动N个句子
( 向后移动N个句子
} 向前移动N个段落
{ 向后移动N个段落
]] 向前移动N个句子,停留在句子的开头处
[[ 向后移动N个句子,停留在句子的开头处
][ 向前移动N个句子,停留在句子的结尾处
[] 向后移动N个句子,停留在句子的结尾处
定位括弧、预编译指令,注释等:
[( 向后找第N个'('的位置
]) 向前找第N个')'的位置
[{ 向后找第N个'{'的位置
]} 向前找第N个'}'的位置
[# 向后找第N个#if或#else
]# 向前找第N个#else或#endif
[* 向后找第N个"/*"
]* 向前找第N个"*/"
相关文章推荐
- POJ 3264 Balanced Lineup (线段树||RMQ)
- 调试web程序时候记得开关web服务器
- Python/Ruby学习指导
- thinkphp实现数组分页示例
- 使用xcode编译webkit
- 2015 ACM/ICPC Asia Regional Changchun Online 1012 hdu5448 Marisa’s Cake
- Objective-C 【NSFileManager 的用法深入探讨】
- 为什么需要状态管理
- 线段树的入门级
- 喜欢到底是什么样子呢
- python笔记之Cmd模块
- C 栈顺序存储
- 各个语言,程序之间的交互
- android textview自动换行问题
- 个人链接获取
- Ubuntu更改hosts档
- table的创建
- LeetCode_jump-game
- .NET基础--结构体
- 导出短信