Vi常用命令

  • 格式:doc
  • 大小:121.00 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

进入vi的命令 (1)

移动光标类命令 (1)

屏幕翻滚类命令 (2)

编辑插入文本类命令 (3)

删除命令 (5)

搜索及替换命令 (6)

选项设置 (8)

组合命令 (10)

最后行方式命令 (14)

寄存器操作 (15)

进入vi的命令

vi filename :打开或新建文件,并将光标置于第一行首

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename :打开多个文件,依次进行编辑

移动光标类命令

h :光标左移一个字符

l :光标右移一个字符

space:光标右移一个字符

Backspace:光标左移一个字符

k或Ctrl+p:光标上移一行

j或Ctrl+n :光标下移一行

Enter :光标下移一行

w或W :光标右移一个字至字首

b或B :光标左移一个字至字首

e或E :光标右移一个字至字尾

) :光标移至句尾

( :光标移至句首

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至屏幕顶行

M :光标移至屏幕中间行

L :光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

$:光标移至当前行尾

^ 光标移到行首

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

即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等

屏幕翻滚类命令

Ctrl+u:向文件首翻半屏

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 删除换行符

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 的地方

?string 往左移动到有string 的地方

n 配合/&? 使用,重复一次

N 配合/&? 使用,反方向重复一次

d 删除(delete)

y 复制(yank)

p 放置(put)

c 修改(change)

x 删除光标下的字符("dl"的缩写)

X 删除光标前的字符("dh"的缩写)

D 从当前位置删除到行尾("d$"的缩写)

dw 从当前位置删除到下一个单词开头

db 从当前位置删除到前一个单词的开头