◎VI COMMANDS
以下命令皆在vi命令模式下执行。
为避免ex:符号与ex命令混淆 所有要输入的指令皆用蓝色表示
不显示ex:(举例说明的英文缩写)
: <control+A> 表示先按住ctrl键再按A
有些命令小写也可以用
移动命令:
<control+A> 往下移动到这个字下次一出现的地方。
<control+B> 标向上移动一个萤幕。
<control+D> 标往下移动数行(约12行)。
<control+E> 将萤幕往上一行,但标位置不变。
<control+F> 标往下移动一个萤幕。
+ 标往下移动到下一行第一个非空白字元。
<control+U> 标往上移动数行(约12行)。
<control+Y> 将萤幕往上动,但标位置不变.
CTRL+Y 每移动一次 Y就按一次
(当然您的标须位在至少能够向上动的位置)
$ 将标移动到该行尾.
( 标往上移动到下一句子.
) 标往下移动到下一句子.
- 标移动到上一行第一个非空白字元.
0(数字) 移动标到该行的第一个字元(包含空白).
< 移动该行向左移动一个tab键距离,按第二次後开始动作.
> 移动该行向右移动一个tab键距离,按第二次後开始动作.
B 往上移动标到下一个字的开始.
E 标往後移动到下一个字的最後一个字元.
nG 移动到某行,n为行数,若没有指定则为档案的最後一行.
H 移动标到档案第一行行首.
L 将标移动到萤幕的最下一行.
M 将标移动到萤幕的中间行.
W 往下移动标到下一个字的开始.
^ 移到该行第一个非空白字元.
e 移动到该字的最後一字母.
f<字元> 行中向後搜寻该字母并移动标到该位置.
移动到a字母的位置fa
t<字元> 行中向後搜寻该字母并移动标到该字元前一个位置.
{ 往上移动到前一段落.
} 往下移动到後一段落.
档案命令:
<control+G> 显示档案的资讯。
显示出目前档案是否更改,所在行的位置.
file_name: unmodified : line 1 of 380 [0%]
<control+L> 重画萤幕。
<control+R> 重画萤幕。
<control+Z> 暂停编辑 回到shell,可用fg回到编辑画面
<control+^> 切换到最近编辑的档案.
vi file_name file_name2
用此命命可以在两个档案中切换.
ZZ 将文件存档并离开vi
编辑命令:
输入:
I 移动标道行首的第一个字元并开始接受输入.
R 以取代模式进入输入模式.
:
Y 该行到暂存区
删除:
D 从标目前位置道行尾的所有字元删除..
S 将该行清除并进入输入模式.
X 删除标之前的一个字元
取代:
!shell命令 !後接shell comd ,并以shell cmd 执行结果取代标该行.
!panda
用以下讯息取代原有行的内容
bash: panda: command not found
r 按r後接着按某字元,以取代标所在的该字元.
~ 切换标所在字元的大小写
重:
& 在该行重之前的规则表示式.
前提是需要之前有执行过规则表示式.
用panda取代a :s/a/panda/
若之前没有任何表示式 则系统会显示如下讯息
No previous regular expression
. 重上一个更改文件内容的vi命令.
n 搜寻之前所搜寻过的字串
若先执行 /BSD
再执行 n 等同於执行 /BSD
若先前没有搜寻任何东西 会有如下讯息
No previous search pattern.
复原:
U 恢复状态到标起初接触此行的状态
u 复原前一个动作产生的效果(也就是回复)
其他:
: 执行ex 命令
J 将下一行与此行合.
Q 离开vi模式并切换到ex模式.
◎参考资料: man vi
以下命令皆在vi命令模式下执行。
为避免ex:符号与ex命令混淆 所有要输入的指令皆用蓝色表示
不显示ex:(举例说明的英文缩写)
: <control+A> 表示先按住ctrl键再按A
有些命令小写也可以用
移动命令:
<control+A> 往下移动到这个字下次一出现的地方。
<control+B> 标向上移动一个萤幕。
<control+D> 标往下移动数行(约12行)。
<control+E> 将萤幕往上一行,但标位置不变。
<control+F> 标往下移动一个萤幕。
+ 标往下移动到下一行第一个非空白字元。
<control+U> 标往上移动数行(约12行)。
<control+Y> 将萤幕往上动,但标位置不变.
CTRL+Y 每移动一次 Y就按一次
(当然您的标须位在至少能够向上动的位置)
$ 将标移动到该行尾.
( 标往上移动到下一句子.
) 标往下移动到下一句子.
- 标移动到上一行第一个非空白字元.
0(数字) 移动标到该行的第一个字元(包含空白).
< 移动该行向左移动一个tab键距离,按第二次後开始动作.
> 移动该行向右移动一个tab键距离,按第二次後开始动作.
B 往上移动标到下一个字的开始.
E 标往後移动到下一个字的最後一个字元.
nG 移动到某行,n为行数,若没有指定则为档案的最後一行.
H 移动标到档案第一行行首.
L 将标移动到萤幕的最下一行.
M 将标移动到萤幕的中间行.
W 往下移动标到下一个字的开始.
^ 移到该行第一个非空白字元.
e 移动到该字的最後一字母.
f<字元> 行中向後搜寻该字母并移动标到该位置.
移动到a字母的位置fa
t<字元> 行中向後搜寻该字母并移动标到该字元前一个位置.
{ 往上移动到前一段落.
} 往下移动到後一段落.
档案命令:
<control+G> 显示档案的资讯。
显示出目前档案是否更改,所在行的位置.
file_name: unmodified : line 1 of 380 [0%]
<control+L> 重画萤幕。
<control+R> 重画萤幕。
<control+Z> 暂停编辑 回到shell,可用fg回到编辑画面
<control+^> 切换到最近编辑的档案.
vi file_name file_name2
用此命命可以在两个档案中切换.
ZZ 将文件存档并离开vi
编辑命令:
输入:
I 移动标道行首的第一个字元并开始接受输入.
R 以取代模式进入输入模式.
:
Y 该行到暂存区
删除:
D 从标目前位置道行尾的所有字元删除..
S 将该行清除并进入输入模式.
X 删除标之前的一个字元
取代:
!shell命令 !後接shell comd ,并以shell cmd 执行结果取代标该行.
!panda
用以下讯息取代原有行的内容
bash: panda: command not found
r 按r後接着按某字元,以取代标所在的该字元.
~ 切换标所在字元的大小写
重:
& 在该行重之前的规则表示式.
前提是需要之前有执行过规则表示式.
用panda取代a :s/a/panda/
若之前没有任何表示式 则系统会显示如下讯息
No previous regular expression
. 重上一个更改文件内容的vi命令.
n 搜寻之前所搜寻过的字串
若先执行 /BSD
再执行 n 等同於执行 /BSD
若先前没有搜寻任何东西 会有如下讯息
No previous search pattern.
复原:
U 恢复状态到标起初接触此行的状态
u 复原前一个动作产生的效果(也就是回复)
其他:
: 执行ex 命令
J 将下一行与此行合.
Q 离开vi模式并切换到ex模式.
◎参考资料: man vi