您的位置:首页 > 其它

基本 VIM 操作指令

2009-12-16 11:53 274 查看
基本 VIM 操作指令

注:以下指令若无特别标示,皆在「命令模式」下输入

§ 进入输入模式
在命令模式下输入以下指令,程序将会进入输入(insert)模式
此时使用者便可以修改文件档,
若想跳出输入模式,则键入<ESC>即可回到命令模式。
i
在光标左方进入输入模式
I
在光标所在行的行首进入输入模式
a
在光标右方进入输入模式
A
在光标所在行的行尾进入输入模式
o(小写英文字母 o)
在光标下一行另起新行,并进入输入模式
O(大写英文字母 o)
在光标上一行另起新行,并进入输入模式

§ 移动光标
k
向上移动光标一个字符
也就是箭头键的「↑」
j
向下移动光标一个字符
也就是箭头键的「↓」
h
向左移动光标一个字符
也就是箭头键的「←」
l
向右移动光标一个字符
也就是箭头键的「→」
H
将光标移至屏幕顶端
M
将光标移至屏幕中央
L
将光标移至屏幕底端
:数字
将光标移至档案第 数字 行
如输入 :45,即移动至档案第 45 行
数字 G
将光标移至档案第 数字 行
如输入 45G,即移动至档案第 45 行
gg
将游标移至档案第一行
G
将游标移至档案最后一行
b
移动光标至该单字的第一个字母
若该处已是该单字第一个字母,则光标会移至前一个单字的第一个字母
e
移动光标至该单字的最后一个字母
若该处已是该单字最后一个字母,则光标会移至下一个单字的最后一个字母
w
移动光标至下一个单字的第一个字母
^
移动光标至该行第一个非空白字母

§ 卷动窗口
<ctrl>+f
将窗口向下卷动一半
<ctrl>+b
将窗口向上卷动一半
<ctrl>+d
将窗口往下卷动一页
功能类似键盘中的<PageDown>
<ctrl>+u
将窗口往上卷动一页
功能类似键盘中的<PageUp>

§ 搜寻文字
/字符串
向下搜寻字符串
下达此命令之后,若文件中包含该「字符串」,则文件中所有「字符串」的背景颜色会被置换成较鲜明的颜色,在下达完搜寻指令之后,还可以透过「n」和「N」指令作进一步控制。
◎ n 跳到下一个「字符串」所在地
◎ N 跳到上一个「字符串」所在地
另外,把光标停在想要搜寻的字符串上,按下「*」也可以达到向下搜寻的效果。
?字符串
向上搜寻字符串
下达此命令之后,若文件中包含该「字符串」,则文件中所有「字符串」的背景颜色会被置换成较鲜明的颜色,在下达完搜寻指令之后,还可以透过「n」和「N」指令作进一步控制。
◎ n 跳到上一个「字符串」所在地
◎ N 跳到下一个「字符串」所在地
另外,把光标停在想要搜寻的字符串上,按下「#」也可以达到向上搜寻的效果。

§ 复制、移动、删除文字
yy
将该行文字复制
指令 Y 有相同的功能
p
将所剪下或复制的文字贴上
行数1, 行数2 co 行数3
将 行数1 到 行数2 之间所有的字符复制至 行数3
※注意:行数3 必须原本就存在,否则此命令将无效!
如: 原本的文件:
This is line 1.
This is line 2.
This is line 3.

输入指令:1, 3 co 3 之后,将会变成
This is line 1.
This is line 2.
This is line 3.
This is line 1.
This is line 2.
This is line 3.

<BackSpace>(在输入模式下使用)
将光标左边一个文字删除
dd
将该行文字删除
此项指令可与指令 p (贴上)配合使用
而变成是「剪下」的功能
dw
删除该单字
cc
将该行文字改变
当输入此指令时,光标所在该行会被删除,并自动进入「输入模式」
cw
改变该单字
当输入此指令时,该单字在光标之后的字符会被删除,并自动进入「输入模式」
D
将光标所在该行中右边的所有文字全部删除
<ctrl>+w(在输入模式下)
将光标所在该单字中左边的所有字符全部删除
行数1, 行数2 m 行数3
将 行数1 到 行数2 之间所有的字符移动到 行数3
※注意:行数3 必须原本就存在,否则此命令将无效!
如: 原本的文件:
This is line 1.
This is line 2.
This is line 3.
This is line 4.
This is line 5.
This is line 6.

输入指令:1, 3 m 6 之后,将会变成
This is line 4.
This is line 5.
This is line 6.
This is line 1.
This is line 2.
This is line 3.

行数1, 行数2 d
将 行数1 到 行数2 之间所有的字符删除
如: 原本的文件:
This is line 1.
This is line 2.
This is line 3.
This is line 4.
This is line 5.
This is line 6.

输入指令:2, 4 d 之后,将会变成
This is line 1.
This is line 5.
This is line 6.

:g/被替代的字符串/s//新字符串/g
用「新字符串」取代「被替代的字符串」
如: 原本的文件:
That is line 1.
That is line 2.
That is line 3.
That is line 4.
That is line 5.
That is line 6.

输入指令:g/is/s//is not/g 之后,将会变成
That is not line 1.
That is not line 2.
That is not line 3.
That is not line 4.
That is not line 5.
That is not line 6.

§ 存取档案 & 离开 VI 程序
:q
不储存修改地离开 VI 程序
若是没有对文件做任何修改,使用 :q 即可跳出,
但若修改过文件内容则必须使用 :q! 指令才能成功地不储存离开。
:q!
不储存修改地离开 VI 程序
:w
储存目前所编辑的文件
:w 文件名
将目前所编辑的文件另存新档至「文件名」
:wq
储存目前所编辑的文件,并离开 VI 程序
:x
储存目前所编辑的文件,并离开 VI 程序
功能与 :wq 相同。

§ 其他指令
u
动作还原
若不小心下错指令,可以利用这个指令还原。
K
函式查询
若您在 VIM 中撰写 C/C++ 程序,可以在 C/C++ 标准函式厍提供的函式名字上按「K」,便可以呼叫出 man page 查询该函式的用法
=
自动程序缩排对齐
若您在 VIM 中撰写 C/C++ 程序,可以利用「gg」指令将光标移到窗口最上方、利用「v」切换到选取模式、再用「G」将光标移到档案尾端 (即达到全选的功能),最后按「=」,VIM 便会帮你的程序做自动对齐
<ctrl>+r
动作重做
若不小心还原错了,可以利用这个指令重做。
:set all
显示所有参数
可透过此指令查询 VIM 支持的所有参数。
若在执行 VIM 程序期间,透过「:set 参数」的方式来设定参数,在每次开启 VIM 程序时都必须再重新设定一次,若想要让 VIM 在每次启动时,都能够自动加载使用者的设定,则可以在用户的家目录下,建立一个名为「.vimrc」的档案来存放个人 VIM 的设定。
如:建立一个档案「vi /home/kevin/.vimrc」,档案内容为:
set background=dark
set autoindent
set number

此设定中,第一行代表设定字体颜色为适用黑色背景之颜色,第二行表示开启自动缩排功能,第三行表示开启显示行号功能
:set nu
显示行数
若想知道文件的行数,可下达这项指令。
:set nonu
隐藏行数
若想隐藏文件的行数,可下达这项指令。
:set autoindent
自动缩排功能
开启此功能之后,按下 enter 键所产生的新行,会复制前一行最前方的 tab 和 space 数量,以达到对齐的目的。此功能可透过「:set noautoindent」关闭
:set tabstop=数字
设定 tab 对齐的字符数
一般 VIM 设定中,tabstop 的默认值为 8,但在 windows 下,许多文字编辑软件的默认 tabstop 数为 4,若想要把 VIM 的 tab 对齐字符数变更为 4,可以在 VIM 的命令模式下,下达 「:set tabstop=4」指令
:set background=模式
设定 keyword 字体颜色模式
使用「:set background=dark」指令可以让 VIM 中的 keyword 以较亮眼的颜色表现出来,适用于暗色系的背景。使用「:set background=light」指令可以让 VIM 中的 keyword 以较暗沉的颜色表现出来,适用于亮色系的背景。
:split [文件名]
水平分割文字编辑窗口
若有指定「文件名」,则新窗口会开启该档案; 若没有指定,则新窗口仍会开启原档案。
另外,在编辑窗口中可以利用 <ctrl>+w 配合箭头键跳跃选取所要编辑的窗口,
若想要关闭窗口,则在欲关闭窗口里的命令模式下,
打入离开指令,如: :wq 即可关闭该窗口。
:vsplit [文件名]
垂直分割文字编辑窗口
若有指定「文件名」,则新窗口会开启该档案; 若没有指定,则新窗口仍会开启原档案。
另外,在编辑窗口中可以利用 <ctrl>+w 配合箭头键跳跃选取所要编辑的窗口,
若想要关闭窗口,则在欲关闭窗口里的命令模式下,
打入离开指令,如: :wq 即可关闭该窗口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: