现在的位置: 首页 > 综合 > 正文

vi的使用

2013年08月06日 ⁄ 综合 ⁄ 共 977字 ⁄ 字号 评论关闭

下面是用于编辑的子命令:

a 在当前光标后开始添加(append)字符。

i 在当前光标前开始插入(insert)字符。

o在光标所在行后插入一空行。
O在光标所在行前插入一空行

yy把当前行放入缓冲区。 2yy复制从当前行开始的两行。
Yw把光标所在的单词放入缓冲区

p 将缓冲区内容取到光标所在行的下面一行。

P 将缓冲区内容取到光标所在行的上面一行。

x删除光标所在的字符。

dw删除光标所在单词。

dd删除当前行。

ndd删除从当前开始的n行。2dd删除从当前行开始的两行。

u:取消当前的操作。

.:恢复当前的操作。

在命令模式下:%s/AAA/BBB/:将AAA替换为BBB

:r!cmd:将cmd命令的结果插入光标所在行的下面。

下面是用于控制浏览的子命令:

h 将光标左移一格。
l 将光标右移一格。
j 将光标下移一格。
k 将光标上移一格。
w 将光标移到下一个单词词首。(hljkw都可以带数字,2h,光标右移两格)

0 把光标移到当前行的第一个字符处。 (0是零)
$ 把光标移到当前行的最后一个字符处

H 把光标移到屏幕最顶端一行。 (不是文件的第一行)high
M 把光标移到屏幕最中间一行。middle
L 把光标移到屏幕最底端一行。 (不是文件的最后一行)low

Ctrl + f 向后滚一页。(往文件结尾的方向)
Ctrl + b 向前滚一页。(往文件开头的方向)
两个反引号会到上次的位置。

/pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。
?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。 

n继续搜索,N反方向继续搜索。

:s/aaa/bbb/ 将当前行中第一次出现的aaa替换成bbb

:s/aaa/bbb/g 将当前行中所有出现的aaa替换成bbb

:1,$ s/aaa/bbb/g 将当前文件中所有出现的aaa替换成bbb

下面是一些控制内容显示的子命令:

:set number 在内容前显示行号。

下面是用于保存文件的子命令:

:w保存内容。

:wq保存内容并退出。

:q!退出不保存。

:w file 另存为file。

vi的一些背景故事:Bill Joy在设计vi的时候用到的键盘是ADM-3A,(当时还没有鼠标) 当时的键盘和现在是很不同的,没有上下左右键,hjkl在ADML左下上右键。

当时的控制键只有ESC,CTRL,SHIFT,ESC就在CTRL的上方,所以ESC就被用来做为切换到命令模式的键。

抱歉!评论已关闭.