Vi常用技巧

取消命令

在vi中,只要没有把修改结果存入磁盘文件中,那么就可以通过“取消”来撤销最近的操作或对缓冲区的修改。

假设你无意删除了一行文本、改变了一些你不应该改变的内容或增加了一些不正确的文本,可以按<Esc>改变到命令模式中,然后按<u>,则文件内容恢复到修改前的样子。

保存到文件名为filename的文件中

发出写命令格式:   :w filename

不使用小键盘来定位光标

vi用<h>、<j>、<k>、<l>键来定位光标。其中<h>、<l>键表示光标的左右移动,<j>、<k>键表示光标的上下移动,在某些没有或不能使用小键盘的情况下这四个键是很有用的。

下面是其他一些用于移动光标的键:

按<->将光标移动到上一行行首n    

按<$>将光标移动到一行的行末

大范围移动键

可快速定位光标到屏幕的顶部、中部和底部:

按<Shift-h>将光标移到屏幕的第一行,有时称为home位置

按<Shift-m>将光标移到现在屏幕显示的各行的中间一行

按<Shift-l>将光标移到屏幕的最后一行

按<Ctrl-f>向前移动一屏

按<Ctrl-b>向后移动一屏

要移动到缓冲区中指定的行中,在按<Shift-g>前键入行号(注意,这里的行号不是当前屏幕中的相对行号,而是绝对行号)

删除文本

<x>删除光标处的字符

<d> <w> 删除从当前字的光标处到下一个字的开始处之间的内容

<d> <$> 删除从光标处到行尾之间的内容

<Shift-d> 同<d> <$>,删除当前行的剩余部分

<d> <d> 删除整行,不管光标在该行的位置

通过在上述命令之前键入一个整数,可将这些命令应用到几个对象中,例如:<4> <x>删除4个字符;<8> <d> <d> 删除8行

添加文本

使用<i>在光标位置前插入文本

使用<Shift-i>使你进入输入模式并且在当前行行首插入文本

使用<a>在光标位置后插入文本

使用<Shift-a>使你进入输入模式并且在当前行末尾插入文本

使用<o>在当前行的下面打开一行以添加文本

使用<Shift-o>在当前行的上面打开一行以添加文本

 

使vi显示行号

按<Esc>键以确保你在命令模式中,然后输入:se number。要关闭行号,输入:se nonumber

查找

/string     在缓冲区中向前查找字符串string

?string    在缓冲区中向后查找字符串string

<n>        以当前的方向再次查找

<Shift-n>以相反的方向再次查找

注意,查找的字符串中若含有特殊字符的,要使用\来进行转意

拷贝、剪切和粘贴

<y> <w>拷贝从当前字的光标处到下一个字的开始处之间的内容

<y> <$>拷贝从光标处到行尾之间的内容

<Shift-y>拷贝当前行的剩余部分(与<y> <$>相同)

<y> <y>拷贝整个当前行

通过在这些命令前键入整数,所有这些命令都可以用于多个对象。

当删除或剪切或拷贝时,删除或拷贝的对象被保存在通用缓冲区中,可以使用<p>或<Shift-p>命令将这个缓冲区中的内容粘贴到光标位置。

<p>命令将对象粘贴到光标位置右边或光标位置后面

<Shift-p>命令将对象粘贴到光标位置左边或光标位置前面

重复命令

可以按< . >来重复改变缓冲区的最后一个命令。

你可能感兴趣的:(vi)