Chinaunix首页 | 论坛 | 博客
  • 博客访问: 350596
  • 博文数量: 122
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1191
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-24 11:12
文章分类

全部博文(122)

文章存档

2010年(122)

我的朋友

分类:

2010-08-30 21:08:57

认识vi

vivisual interface的简称。是Linux系统的第一个全屏交互式编辑器。可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。

Vi相当简洁,没有菜单,只有命令且相当丰富。Vi的三种基本工作模式是:命令行模式、文本输入模式和末行模式。

命令行模式

Esc进入该模式。在该模式下,用户可以输入各种合法的vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。

文本输入模式

在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上。

末行模式

在命令模式下,用户按“:”键即可进入末行模式。多数文件管理命令都是在此模式下执行的。

光标移动

常用到的一些命令(motion

hjkl这四个键代替四个方向键来移动光标的方法。也可以用“+”和“-”向上或向下移动。这几个命令前面都可以加上数字n表示移动的幅度。

H:移动到屏幕第一行。

M:移动到屏幕中间一行。

L:移动到屏幕最后一行。

  fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。

  tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)

  Fx:和 fx 类似,不过是往回找。类似的还有Tx

  w/W:光标往前移动一个词。

b/B:光标往后移动一个词。

e/E:到单词尾部。

  0:移动光标到当前行首。

  ^:移动光标到当前行的第一个字母位置。

  $:移动光标到行尾。

  ):移动光标到下一个句子。

(:移动光标到上一个句子。

{:移动到当前段落的开头。

}:移动到下一段落的开头。

屏幕移动

       ^表示Ctrl

       ^F:向前滚动一屏。

       ^B:向后滚动一屏。

       ^D:向前滚动半屏。

^U:向后滚动半屏。

^E:向前滚动一行。

^Y:向后滚动一行。

H:移动到屏幕第一行。

M:移动到屏幕中间一行。

L:移动到屏幕最后一行。

z回车:把当前行移动到屏幕顶部并滚动。

z.:把当前行移动到屏幕中央并滚动。

z-:把当前行移动到屏幕底部并滚动。

回车:移动到下一行的首字符。

+:移动到下一行的首字符。

-:移动到上一行的首字符。

E:移动到词尾。

e:移动到词尾(忽略标点)。

/pattern:向前搜索模式。

?pattern:向后搜索模式。

n:重复上次搜索。

N:反方向重复上次搜索。

/:向前重复上次搜索。

?:向前重复上次搜索。

;:同方向重复前面的搜索命令。

,:反方向重复前面的搜索命令。

nG:移动到第n行。

G:移动到文件的尾部。

``:返回到以前的标记或上下文。

‘’:单引号,返回到包含以前标记的行的开始。

缓冲区或标记命令

       ‘’b:对缓冲区b执行命令。

       mx:用x标记当前位置。

       ‘x:移动光标到x所记的行的首字符。

       `x:移动光标到x所标记的字符。

       ``:返回到上一标记或上下文的确切位置。

       ‘’:返回到上一标记或上下文所在行的位置。

复制粘贴

在可视选择模式下剪切和拷贝

一旦你高亮了选区,你或许想进行一些操作:

d:剪贴选择的内容到剪贴板。

y:拷贝选择的内容到剪贴板。

c:剪贴选择的内容到剪贴板并且进入插入模式。

在非可视选择模式下剪切和拷贝

如果你很清楚的知道你想拷贝或者剪切什么,那你根本就不需要进入可视选择模式。这样也会节省时间:

d{motion}:剪切 motion 命令跨过的字符到剪贴板。比如,dw 会剪切一个词而 dfS 会将从当前光标到下一个 S 之间的字符剪切

至剪贴板。

y{motion}:和上面类似,不过是拷贝。

c{motion}:和 d{motion} 类似,不过最后进入插入模式。

dd:剪切当前行。

yy:拷贝当前行。

cc:剪切当前行并且进入插入模式。

D:剪切从光标位置到行尾到剪贴板。

Y:拷贝当前行。

C:和 D 类似,最后进入插入模式。

x:剪切当前字符到剪贴板。

s:和x类似,不过最后进入插入模式。

插入命令

i命令:插入文本从光标所在位置前开始,并且插入过程中可以使用键删除错误的输入。

I命令:该命令是将光标移到当前行的行首,然后在其前插入文本。

附加命令

       a命令:在光标所在位置之后追加新文本

       A命令:将光标挪到所在行的行尾,从那里开始插入新文本。

       Aa是把文本插入到行尾的唯一方法。

删除

删除单个字符

       x:删除光标处的字符。若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。

X:删除光标前面的那个字符。若在X之前加上一个数字n,则删除从光标前面那个字符向左的n个字符。

删除多个字符

dd:删除光标所在的整行。在dd前可加上一个数字n,表示删除当前行及其后n-1行的内容。

       Dd$:两命令功能一样,都是删除从光标所在处开始到行尾的内容。

       d0:删除从光标前一个字符开始到行首的内容。

       dw:删除一个单词。若光标处在某个词的中间,则从光标所在位置开始删至词尾。同dd命令一样,可在dw之前加一个数字n,表示删除n个指定的单词。

替换命令及其他操作

R:使用新文本替换现在文本。

S:删除行并替换文本。

J:合并当前行和下一行。

~:大小写转换。

打开命令

o命令:该命令将在光标所在行的下面一新开一行,并将光标置于该行的行首,等待输入文本。

O命令:是在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本。

取消命令

在命令模式下输入字符uU。它们的功能都是取消刚才输入的命令,恢复到原来的情况。小写u和大写U在具体细节上有所不同,二者的区别在于:大写U命令的功能是恢复到误操作命令前的情况。U命令只能取消前一步操作,如果用U命令撤销了前一步操作,当再按U键时,并不是取消再前一步的操作,而是取消了刚才U命令执行的操作。而小写u命令的功能是把当前恢复成被编辑前的状态,而不管此行被编辑了多少次。

重复(Redo

在命令模式下按“.”键即可。

退出vi

ZZ:若当前编辑的文件曾被修改过,则vi保存该文件后退出,返回Shell

在末行模式下,输入命令:wvi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。

:q!放弃所作修改而直接退到Shell

:wq先保存文件,然后退出vi

:xZZ

 

阅读(1689) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~