在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑. 因此能更快一点移动光标是很有用的.文中的c-表示ctrl,大小写敏感。光标定位
还需结合搜索。
=== 光标定位 ==
h或^h 向左移一个字符
j或^j或^n 向下移一行
k或^p 向上移一行
l或空格 向右移一个字符
w 移到下一个字的开头
W 移到下一个字的开头,忽略标点符号。默认的情况下W认为字符串时已空格分开的。
cp /mnt/marvell/main.sh /stv/
所以上面一行在W的选择下只有三个字符串,即 1 cp 2 /mnt/marvell/main.sh 3 /stv/
这与w时不一样的。
e 移到下一个字的结尾
E 移到下一个字的结尾,忽略标点符号
b 移到前一个字的开头
B 移到前一个字的开头,忽略标点符号同W
| 移到当前行的第一列
0 移到当前行的第一列字符处,会忽略行前的空白。
n| 移到当前行的第n列
^ 移到当前行的第一个非空字符
$ 移到当前行的最后一个字符
return或+ 移到下一行的第一个字符
- 移到前一行的第一个非空字符
L 移到屏幕的最后一行
M 移到屏幕的中间一行
H 移到屏幕的第一行
G 移到文件的最后一行
nG 移到文件的第n行
( 移到句子的开头
) 移到句子的结尾
{ 移到段落的开头 //我用的时候发现{只是移动到前一个空行 }移动到后一个空行首
} 移到下一个段落的开头
/**vim 第一列插入{来定义一个段落 */
[[ 回到段落的开头处
]] 向前移到下一个段落的开头处
m(a-z) 用一个字母来标记当前位置,如用mz表示标记z
‘(a-z) 将光标移动到指定的标记,如用‘z表示移动到z
‘‘ 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查(此处时两个单引号不是双引号)
找到某个单词后, 再输入此命令则回到上次停留的位置.
‘. 此命令相当好使, 它移动光标到上一次的修改行.
`. 此命令相当强大, 它移动光标到上一次的修改点.
% 从大括号的开始移动到大括号的结束位置
: 后边加行号就是跳到这一行
<C-O> 光标返回到以前的位置。相当于光标移动的“撤销”
<C-I> 光标返回到后来的位置。相当于光标移动的“恢复”
f 移动光标到当前行的字符a上,nf移动光标到当前行的第n个a字符上
F 相反
=== 屏幕定位 ==
c-e 将屏幕上滚一行
c-y 将屏幕下滚一行
c-u 将屏幕上滚半页
c-d 将屏幕下滚半页
c-b 将屏幕上滚一页
c-f 将屏幕下滚一页
z-return 将当前行置为屏幕的顶行
nz-return 将当前行下的第n行置为屏幕的顶行
z. 将当前行置为屏幕的中央
nz. 将当前行上的第n行置为屏幕的中央
z- 将当前行置为屏幕的底行
nz- 将当前行上的第n行置为屏幕的底行
原文:http://www.cnblogs.com/kevingeek/p/3890868.html