2015年(5)
分类: LINUX
2015-08-11 15:02:12
1、 按屏幕移动
Ctrl +f ##--下翻一页,(f)orward (英文是自己猜的,方便记忆)
Ctrl +b ##--上翻一页,(b)ack
Ctrl +d ##--下翻半页,(d)own
Ctrl +u ##--上翻半页,(u)p
Ctrl+e ##--上移一行,光标不动
Ctrl+y ##--下移一行,光标不动
z + 回车 // 把当前行移动到屏幕顶部
100z + 回车 // 将移动第100行到屏幕的顶部,记得键入100z之后要再回车
2、 按搜索移动
事实上,对于一个源程序文件我们往往是要查找其中的一个变量或函数名,最有效的方法就是按文本搜索快速移动。
/pattern // 向前搜索模式,pattern代指要搜索的内容
?pattern // 向后搜索模式
n // 重复上次搜索(向行号大的方向)
N // 反方向重复上次搜索
3、 按行号移动
nG (or :n) // 移动到第n行,注意此处G是大写。即输入n,在小写模式下输入shift+g,大写模式下直接按下g键
Ctrl + g // 显示当前行信息(并不是移动命令)
G // 移动到文件的尾部
gg // 移动到文件的头部
4、按光标移动
左:h
下:j
上:k
右:l
下一行行首:+ //shift键切换到上档 '+'
上一行行首:-
当前行行首:0
把光标移至当前行的起始位置,也即当前行的第一个非空白字符:^
当前行行尾:$
后一个单词词首:w,W // w:将光标右移一个字。光标停留在下一个字的字首位置;W:将光标右移一个字。光标停留在下一个字的字首位置(即使两个字之间存在标点符号)。
后一个单词词尾:e,E // e:把光标移至当前所在字(或下一个字)的最后一个字符位置;E: 同e,只是以空格字符作为字的分隔符。
前一个单词词首:b,B //b:将光标左移一个字。光标停留在下一个字的字首位置;B:将光标左移一个字。光标停留在下一个字的字首位置(即使两个字之间存在标点符号)。
当前屏幕首行:H
当前屏幕末行:L
当前屏幕中央:M
fx //往右移动到 x 字符上
Fx //往左移动到 x 字符上
tx //往右移动到 x 字符前
Tx //往左移动到 x 字符后
(注意:以上四个命令中,其中x是键入的字符)
; //分号,配合 f 和 t 使用,重复一次
, //逗号,配合 f 和 t 使用,反方向重复一次
标记文本替换
mqq //用字符串qq来标记当前光标的位置
`qq //移至qq所标记处 (数字1键左边键的上档)
'qq //移至qq标记所在行的开头处(单引号)
'' //移至当前行上第一次所在位置的行的开头处(在光标移动之后,两个单引号)
" //移至当前行上一次所在位置(在光标移动之后)——1个双引号(测试不通过)
这一部分内容很多,需要大量练习习惯后你会发现vi的速度会快好几倍。而且光标的移动式基础,后面复制,删除,替换等等系列的操作都多少会和他有所关联。