VI使用方法
一、进入vi的命令
vi file 打开或新建文件file,并定位光标到第一行行首。
vi +10 file 打开文件,并定位光标到第10行行首。
vi + file 打开文件,并定位光标到末行行首。
vi + /keyword file 打开文件,并定位光标到第一个与keyword匹配的串处。
vi -r file 在上次编辑file时,发生系统崩溃,此次恢复file。
二、移动光标类命令
k或nk 光标上移一行或n行。
j或nj 光标下移一行或n行。
h或nh 光标左移一个或n个字符。
l或nl 光标右移一个或n个字符。
space或nspace 光标右移一个或n个字符。
w或nw 光标右移一个或n个短单词(已空格和符号为界)。
b或 nb 光标左移一个或n个短单词。
e 光标移动到后一个单词(短单词)最后一个字母。
W或nW 光标右移一个或n个长单词。
B或nB 光标左移一个或n个长单词。
E 光标移动到后一个单词(长单词)最后一个字母。
$(即Shift+4) 光标定位到行末。
0 光标定位到行首。
(或) 光标移动到当前句或后一句的开头。
{或} 光标移动到当前段或后一段的开头。
Ctrl f或PgUp 向前翻一整页。
Ctrl b或PgDn 向后翻一整页。
1G或nG 跳到第一行或第n行。
三、字符串查找
/keyword 在文件中查找keyword字串的位置,如/foo\.gif,则为查找foo.gif的位置。
n/N 向下或向上寻找。
// 重复上一次的搜索。
四、保存和编辑
:w filename 另存文件,并命名为filename。
:sp filename 在一个新分割开的窗口,打开文件filename。
Ctrl W Ctrl W 窗口切换。
:x或:wq 保存并退出。
x 删除当前光标处的字符。
dd或ndd 删除当前一行,或删除当前行开始的n行。
d 可配合任何移动命令,如dw, d}等。
dw 删除从光标当前位置到下一个短单词开始处的内容。
rc 将光标位置的字符替换为字符c。
J 将下一行连接到本行末尾。
u 撤消操作
. 重复前一个编辑命令,如“dd...”会删除四行文字。
五、插入模式
i 进入插入模式,从当前字符前开始插入。
I 进入插入模式,从当前行的开始处插入。
a 进入插入模式,从当前字符后开始插入。
A 进入插入模式,从当前行的行尾处插入。
o 进入插入模式,在当前行下方,新建一空行,以供插入。
O 进入插入模式,在当前行上方,新建一空行,以供插入。
c 与d命令类似,可配合任何移动命令,完成文本修改。如cW、ce、c)等。
cc 用空白行,替换当前整行文字。
c$ 用空白行,替换掉当前字符到行尾结束。
c0 用空白行,替换掉当前位置到行开始处。
六、复合命令
数字和移动命令可以形成组合命令,如:
3k 向上移动3行。
12b 向前移动12个单词。
d和c命令可以与数字或移动命令形成组合命令,如:
d3w 删除后面3个单词。
d2j 删除后面两行文本。
七、复制、剪切、粘贴
1、命令行模式
命令行模式下,按v(会有VISUAL提示)。然后,用移动命令控制光标。可以反白一段文字,此时就可以对此段文字进行复制、剪切操
作了。
y 复制反白文字。
d 剪切反白文字。
P或p 在光标之后或光标之前插入文本。
2、底行模式(即按“:”进入的模式)
:set number 显示行号。
😡 copy y 将x行复制到y行之后。
:x,y copy z 将x行到y行,复制到z行之后。
😡 move y 将x行移动到y行之后(即剪切到)。
:x,y move z 将x行到y行移动到z行之后(即剪切到)。
如,将1~10行复制到11行之后。
八、文本替换和缩排
1、底行模式进行文本替换
:s/old/new/ 将当前行第一次出现的字符串old替换为字符串new(只替换当前行且只替换第一个)。
:s/old/new/g 替换当前行的所有匹配之处,即将当前行所有的old都替换为new。
:%s/old/new/g 替换文件中所有匹配的位置。
:%s/old/new/gc 替换文件中所有匹配的位置,替换前提示。
2、缩排
:set autoident 启用自动缩排功能。
:set tabstop=n 设置自动缩排的宽度为n。
Ctrl d 向左移动一个缩排级别。
Ctrl t 向右移动一个缩排级别。
九、设置vim为默认编辑器
update-alternatives --config editor
十、Debian中vi的配置文件
/etc/vim/vimrc