学习vi编辑器3
第三章 快速移动
滚动屏幕(大小写没有关系)
^F或^f 向前滚动一屏forward
^B 向后滚动一屏backward
^D 向前滚动半屏down
^U 向后滚动半屏up
^E 向前滚动一行,光标保持原来位置
^Y 向后滚动一行
使用z重新定位屏幕(一定是刷新了屏幕的)
zRETURN 滚动屏幕,使得当前行移动到屏幕顶部
z. 滚动屏幕,使得当前行移动到屏幕中央
z- 滚动屏幕,使得当前行移动到屏幕底部
200zRETURN 滚动屏幕,使得第200行移动到屏幕顶部
刷新屏幕 ^L
在屏幕内移动
H 移动到屏幕首行第一个可显示字符上
M 移动到屏幕的中间行
L 移动到屏幕的末行
nH 移动到屏幕首行下面的第n行
nL 移动到屏幕末行下面的第n行
按行移动
RETURN 移动到下一行首字符(忽略任何空格)
+ 移动到下一行首字母
- 移动到上一行首字母
在当前行内移动
^ 移动到当前行的第一个非空格字符
n| 移动到当前行的第n列
按文本块移动
e 移动到词尾
E 移动到词尾(标点也算词)
( 移动到当前句子开始(位于当前句子开始时执行后为上一个句子的开始,一个句子的开始就是找到regexp([.?!] ))
) 移动到下个句子开始
{ 移动到当前段落开始(段落的定义是文本后为一空行)
} 移动到下个段落开始
[[ 移动到当前节开始(文本后有默认的节宏)
]] 移动到下一节开始
3) 向前移动3个句子
d) 删除到当前句子结尾的文本
2y} 复制前面的两个段落
按搜索移动(最有效的)
/pattern 向前搜索pattern
?pattern 向后搜索pattern
n 同向重复搜索
N 反向重复搜索
/RETURN 向前重复搜索
?RETURN 向后重复搜索
:set nowrapscan 设置否需要折回搜索
通过搜索进行修改
d?move 删除[move, 当前光标)
当前行内搜索
fx 在行内搜索(移动光标到)x的下一个实例(范围:(当前光标, end))
Fx 在行内搜索(移动光标到)x的上一个实例
tx 在行内搜索(移动光标到)x的下一个实例前面的字符
Tx 在行内搜索(移动光标到)x的上一个实例后面的字符
; 同方向重复前面搜索命令,于是tx和Tx就不能再移动了
, 反方向重复前面搜索命令
dfx将删除到指定字符x之间的文本
按行号移动
^G 命令使得将文件名,行号,百分比显示在左下角
通过:set nu可以显示文件的出行号
G(转移)命令
G到文章最后一行的第一个字符
10G到第10行
两个反引号``将光标返回到上次的位置(在两个位之间切换的好方法)
两个引号''除了返回的是上次的位置的首行外与``没有什么不同
回顾vi移动命令
移动 |
命令 |
向前滚动一屏 |
^F |
向后滚动一屏 |
^B |
向前滚动半屏 |
^d |
向后滚动半屏 |
^u |
向前滚动一行 |
^e(extra line) |
向后滚动一行 |
^y |
把当前行移动到屏幕顶部并滚动 |
zRETURN |
把当前行移动到屏幕中央并滚动 |
z. |
把当前行移动到屏幕底部并滚动 |
z- |
刷新屏幕 |
^L |
移动到起始点(屏幕首行) |
H |
移动到屏幕的中间行 |
M |
移动到屏幕的末行 |
L |
移动到下一行的首字符 |
+或RETURN |
移动到上一行的首字符 |
- |
移动到当前行的第一个非空字符 |
^ |
移动到当前行的第n列 |
n| |
移动到词尾 |
e |
移动到词尾(单词包括标点) |
E |
移动到当前句子的开始 |
( |
移动到下一句的开始 |
) |
移动到当前段落的开始 |
{ |
移动到下一段的开始 |
} |
移动到当前节的开始 |
[[ |
移动到下一节的开始 |
]] |
向前搜素模式 |
/pattern |
向后搜索模式 |
?pattern |
重复上次搜索 |
n |
反方向重复上次搜索 |
N |
向前重复上次搜索 |
/ |
向后重复上次搜索 |
? |
移动到当前行中x的下一个实例 |
fx |
移动到当前行中x的上一个实例 |
Fx |
移动到当前行中x的下一个实例前面 |
tx |
移动到当前行中x的上一个实例后面 |
Tx |
同方向重复前面的搜索命令 |
; |
反方向重复前面的搜索命令 |
, |
移动到第n行 |
nG |
移动到文件的尾部 |
G |
返回到以前的标记或上下文 |
`` |
返回到包含以前标记的行的开始 |
'' |
显示当前行(不是移动命令) |
^G |