1. vi 与 vim 有什么区别呢,它们之间有什么关系?

Vim是从Vi发展出来的一个文本编辑器,可以看作是vi的升级版。Vim的主要功能与原始的Vi完全兼容,与Vi不同的是,vi不会显示颜色,而vim会根据文件内容显示不同颜色,方便阅读和编辑。而且Vim具有代码补完、编译及错误跳转等方便编程的丰富功能,在程序员中被广泛使用。( Vim和Emacs并列成为类Unix系统用户最喜欢的编辑器。)


2. 如何查看当前系统vim的版本?

vim --version


3. 如果想把文档中出现的全部"abc"替换成"def"怎么做?又如何只替换每行中出现的第一个"abc"呢?

:1,$s/abc/def/g

:1,$s/abc/def


4. 当搜索某个关键词时,光标所定位的关键词所在的行是如何决定的?如果想从当前关键词移动到下一个关键词怎么操作?移动到上一个关键词又怎么操作?

需要看vim进入文档时,光标所在位置,定位关键词是依据于光标所在的位置。

如果使用/搜索关键词,则按‘n'向下移动,按shift + n 向上,如果使用?搜索关键词,和前者正好相反。


5. 当编辑完文档后,按ESC进入命令模式,输入命令 :x  会怎么样?

输入命令:x后也能保存文件并退出,有点类似:wq ,但两者有区别。

       :x    #写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。

       :wq   #强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。


6. 在一般模式下如何快速的把光标快速的向右或向左移动10个字符?

向右:10空格

向左:10l


7. vim + filename 表示什么含义, vim +10 filename 将会发生什么?

vim + 进入文档后,定位到最后一行

vim +10 进入文档后,光标定位到第10行


8. 用vim打开一个文档后,我想让光标跳到第20行,怎么做?跳到最后一行怎么做?

跳到20行,输入20G

最后一行,输入G


9. vim 打开文档后,默认是不显示行号的,如何做让它显示行号?

:set nu


10. vim打开文档后,我想把20-50行中的第一个'abc' 替换为 'efg' 怎么操作?如果是想替换所有呢?

:20,50s/abc/efg   只替换第一个

:20,50s/abc/efg/g  替换全部


11. vim打开文档后,如何快速删除前100行?

先按'gg' 到第一行,然后输入100d


12. vim打开文档后,如何复制一行,并粘贴到第20行的下面?

定位到要复制的行,然后输入yy,然后输入20G,再输入p