进入vi的命令 1
移动光标类命令 1
屏幕翻滚类命令 2
编辑插入文本类命令 2
删除命令 4
搜索及替换命令 4
选项设置 5
组合命令 6
最后行方式命令 9
寄存器操作 10
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
filename :打开多个文件,依次进行编辑
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
^ 光标移到行首
f 光标移到当前光标位置后面的第一个指定的字符下
f 光标移到当前光标位置后面的第一个指定的字符下
F 光标移到当前光标位置前面的第一个指定的字符下
t 光标移到当前光标位置后面的第一个指定的字符前
T 光标移到当前光标位置前面的第一个指定的字符前
% 光标移动到与当前括号匹配的括号处
:n 光标移动到指定行
按数字:0:移到文章的开头。
按G:移动到文章的最后。
按w:光标跳到下个字的开头
按e:光标跳到下个字的字尾
按b:光标回到上个字的开头
按:#l:光标移到该行的第#个位置,如:5l,56l。
跳至指定的行
Ctrl + g列出光标所在行的行号。
#G:例如,15G,表示移动光标至文章的第15行行首
14.光标控制
k:上移 nk 上移n行
j:下移 nj 下移n行
将光标移到第n行,按下 mk
将光标移到第m行,按下 "ay'k
k:上移 nk 上移n行
j:下移 nj 下移n行
将光标移到第n行,按下 mk
将光标移到第m行,按下 "ay'k
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
zz 将当前行置于屏幕中央
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
zz 将当前行置于屏幕中央
zt 将当前行置于屏幕顶端
zb 将当前行置于屏幕底端
编辑插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
J 删除换行符
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
J 删除换行符
u 取消上次操作
ctr-R 重做
c 修改指定的内容,和d相似
p 将删除缓冲区中的内容插入光标当前的位置
y 复制
vi a b c
:n跳至下一个文件,:e#回到刚才编辑的文件。
比如当前编辑文件为a,:n跳至b,再:n跳至c,:e#回到b,想回到a的话用:ea
打开一个,vi 文件名
然后在vi的命令输入状态下输入
:sp 另外一个文件的路径及文件名
如此就可以在一个窗口打开3个文件了。
可以使用 ctrl + 两次按 w
在3个文件中切换
:edit 编辑一个新的文件
:previous 打开文件列表中的前一个文件
:next 打开文件列表中的后一个文件
:args 指定一个文件列表
:saveas 给文件改名
:file 给正在编辑的文件改名,但不保存
:split 将窗口分成上下两个窗口
:vsplit 将窗口分成左右两个窗口
:split 文件 为制定的文件打开新窗口
:new 打开新窗口,以及一个无名的缓冲区
:close 关闭窗口
ctr-w w 切换窗口
ctr-w [hjkl] 切换到窗口
ctr-w [HJKL] 移动窗口
:only 只保存当前窗口,其他窗口关闭
ctw-w + 增加当前窗口高度
ctw-w - 减小当前窗口高度
:qall 所有的窗口都退出
:wall 所有的窗口内容都写入文件
取消上一命令(Undo)
重复命令(Redo)
重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。
取消上一命令(Undo)
重复命令(Redo)
重复命令只能在命令模式下工作,在该模式下按“.”键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。
fx 往右移动到 x 字元上
Fx 往左移动到 x 字元上
tx 往右移动到 x 字元前
Tx 往左移动到 x 字元前
; 配合 f&t 使用,重复一次
, 配合 f&t 使用,反方向重复一次
/string 往右移动到有 string 的地方
?
Fx 往左移动到 x 字元上
tx 往右移动到 x 字元前
Tx 往左移动到 x 字元前
; 配合 f&t 使用,重复一次
, 配合 f&t 使用,反方向重复一次
/string 往右移动到有 string 的地方
?
string 往左移动到有 string 的地方
n 配合 /&? 使用,重复一次
N 配合 /&? 使用,反方向重复一次
n 配合 /&? 使用,重复一次
N 配合 /&? 使用,反方向重复一次
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
x 删除光标下的字符("dl"的缩写)
X 删除光标前的字符("dh"的缩写)
D 从当前位置删除到行尾("d$"的缩写)
dw 从当前位置删除到下一个单词开头
db 从当前位置删除到前一个单词的开头
diw 删除光标上的单词(不包括空白字符)
daw 删除光标上的单词(包括空白字符)
dG 删除到文末
dgg 删除到文首
如果你用 "c" 代替 "d",这会变成修改命令;而改用 "y",则变成拷贝命令
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
daB 删除{}及其内的内容 (在非v可视模式下)
diB 删除{}中的内容
ab 选择()中的内容
ib 选择()中的内容( 不含() )
aB 选择{}中的内容
iB 选择{}中的内容( 不含{} )
·变量定位
gd 转到光标下局部变量的定义处
Gd 转到光标下全局变量的定义处
Gd 转到光标下全局变量的定义处
:r filename 将文件 filename 插入在当前行之下
复制与剪切
xp 交换前后两个字符的位置
ddp 上下两行的位置交换
:g/fred/t$ 拷贝行,从fred到文件末尾(EOF)
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
Ctrl+u:删除输入方式下所输入的文本
u 撤消前一条命令的结果
. 重复最后一条修改正文的命令
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
/ 向后搜索
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
/ 向后搜索
?
向前搜索
`` 跳转到前一个位置
`a 跳转到标记为a的位置
ma 将光标的当前位置标记为a
`[ 跳转到最后一次修改的起始位置
`] 跳转到最后一次修改的结束位置
`" 跳转到上次编辑该文件时光标最后停留的位置
:s 替换
:substitute 替换
:%s/a/a/c 对所有行替换
:m,ns/a/a/c 对从m到n行替换
rc 用 c 替换光标所指向的当前字符
nrc 用 c 替换光标所指向的前 n 个字符
5rc 用 c 替换光标所指向的前 5 个字符
x 删除光标所指向的当前字符
nx 删除光标所指向的前 n 个字符
3x 删除光标所指向的前 3 个字符
dw 删除光标右侧的字
ndw 删除光标右侧的 n 个字
3dw 删除光标右侧的 3 个字
db 删除光标左侧的字
ndb 删除光标左侧的 n 个字
5db 删除光标左侧的 5 个字
dd 删除光标所在行,并去除空隙
ndd 删除 n 行内容,并去除空隙
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论