10.18.1 linux文本编辑器vim

  vi和vim的区别

  编辑一个文本时,vi不会显示颜色,而vim会显示颜色,vi 有点类似windows记事本,简单,那么就是vim复杂编辑器,功能复杂,高亮,自动缩进(写shell/python脚本用)。显示颜色更易于用户进行编辑。没有的话可以用 yum install -y vim-enhanced   

  vim的三种模式:一般模式、编辑模式、命令模式。

  1. 一般模式: 当你vim filename 编辑一个文件时,一进入该文件就是一般模式了。在这个模式下,你可以做的操作有,上下移动光标;删除某个字符;删除某行;复制、粘贴一行或者多行。
  2. 编辑模式:一般模式下,是不可以修改某一个字符的,只能到编辑模式了。从一般模式进入编辑模式,只需你按一个键即可(i, I, a, A, o, O, r, R)。当进入编辑模式时,会在屏幕的最下一行出现揑NSERT或REPLACE的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
  3. 命令模式:在一般模式下,输入 ”:” 或者 “/” 即可进入命令模式。在该模式下,你可以搜索某个字符或者字符串,也可以保存、替换、退出、显示行号等等。  

 

  如何在一个空白文档中写入一段文字,然后保存。

  输入vim fade.txt直接回车进入一般模式。然后按 “i” 字母进入编辑模式,在窗口的左下角会显示 “– 插入 –” 或者 “– INSERT –” 这说明进入插入模式,可以编辑文档。

[root@wen data]# vim fade.txt

 

  如果你编辑完了,想保存的话,需要先按一下键盘左上角的 “Esc” 键,此时 “– 插入 –” 或者 “– INSERT –” 消失,然后输入 ”:wq” 回车就会保存刚才的文字了。

I am learning linux
linux is like a young married woman 
the most interest thing is conquer her 
times won't be too long 
:wq

 

  这时,看一下fade.txt文档的内容吧:

[root@wen data]# cat fade.txt
I am learning linux
linux is like a young married woman 
the most interest thing is conquer her 
times won't be too long 

  “vim” 为全键盘操作的编辑器,所以在各个模式下都有很多功能键。

  快捷键总结

 

 

 

 


问题与练习

1. vi 与 vim 有什么区别呢,它们之间有什么关系?
  答:vi是早期unix自带的文本编辑器,没有颜色区别,不便于程序员做开发
      vim是1991年布莱姆.米勒从vi的基础升级而发布的,人性化,带有颜色区别。
      vim跟vi的关系:可以这样理解vim是vi的升级版本

2. 如何查看当前系统vim的版本?
  答:可以用命令:rpm -qa |grep vim   或者 vim --version

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

  1. :1,$s/abc/def/g

  只替换每行中第一个出现的abc:

  1. :1,$s/abc/def

4. 当搜索某个关键词时,光标所定位的关键词所在的行是如何决定的?也就是说,光标是定位到最顶端出现的关键词的那行还是最底端关键词出现的那行,还是另外的情况?如果想从当前关键词移动到下一个关键词怎么操作?移动到上一个关键词又怎么操作?
  答:两种情况:1、 /关键词         光标定位到最顶端出现的关键词
               2、?关键词         光标定位到最底端出现的关键词
      如果想从当前关键词移动到下一个关键词: /关键词,回车,按小写字母n
      如果想从当前关键词移动到上一个关键词:  ?关键词,回车,按小写字母n
      ?关键词,回车:如果光标所在行上面没有关键字的话 光标会移动到上一行或者上面最近的一行带有关键词上
      /关键词,回车:如果光标所在行上面没有关键字的话 光标会移动到下一行或者下面最近的一行带有关键词上
     ?关键词,回车;/关键词,回车:如果光标所在行上面有 关键字的话 光标在改行的关键词上


5. 当编辑完文档后,按ESC进入命令模式,输入命令 :x  会怎么样?
  答:会保存退出,相当于:wq

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

7. vim + filename 表示什么含义, vim +10 filename 将会发生什么?
  答:vim + filename 表示:打开该文档且光标移动到该文档末行;
       vim +10 filename表示:打开该文档且光标移动到第十行

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

9. vim 打开文档后,默认是不显示行号的,如何做让它显示行号?
  答:可以输入:  :set nu

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

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

12. vim打开文档后,如何复制一行,并粘贴到第20行的后面?
  答:用命令: yy 复制需要复制的那行,然后输入 "20G"指定到第20行,最后按小写字母“P”粘贴即可。

 

                                                             参考链接http://www.apelearn.com/study_v2/

原文地址:https://www.cnblogs.com/wenyule/p/7686618.html