机房360首页
当前位置:首页 » 系统安全 » linux基础命令介绍四:文本编辑vim

linux基础命令介绍四:文本编辑vim

来源:segmentfault 作者:silence编辑 更新时间:2016-11-16 11:25:30

摘要:本文介绍vim(版本7.4)的一般用法。

  本文介绍vim(版本7.4)的一般用法。

  vim是功能强大的文本编辑器,是vi的增强版。

  vim [options] [file ..]

  使用vim编辑一个文件的最常用命令就是:

  vim file

  其中file可以是一个新文件,也可以是原有文件。这样的命令执行后将打开编辑器,显示文件file的内容。如图所示:

  如果是一个新文件,底部左边会显示"file" [新文件]的字样,右边显示0,0-1表示当前光标所在行数和字符数。如果打开的是一个老文件,底部左边显示"file" 3L, 66C字样,表示文件名,当前光标所处行号,文件总字节数。文件中没有字符的地方会以字符~开头。

  现在还不能进行编辑,vim编辑文件有几种模式,当前所处模式是普通模式,可以移动光标、执行复制粘贴等命令;另外还有两种常用模式:插入模式和底行模式。

  开始进入的一般都是普通模式,按如下键将进入插入模式:

  

  进入插入模式后,底部会出现-- 插入 --字样;这时就可以在光标位置进行输入了。从插入模式退回到普通模式按ESC键。

  在普通模式按如下键将进入底行模式:

 

  从底行模式退回到普通模式需按两次ESC键

  底行模式执行:q(quit)表示退出编辑器,如果对文件内容进行过更改,需要执行:wq(write quit)来保存退出;如果不保存退出则需要执行:q!强制退出;强制保存退出为:wq!。

  下面列出一些在普通模式下可以执行的命令及它们的作用:

  

  这里只列出一部分,初学者也许会觉得太多,记不住。其实只要记住其中几个,就完全可以使用了;其他的作用大多是使你的操作更简便快捷。

  vim中的各种命令,大多可以组合使用:

  比如要删除光标当前所在位置一直到行尾,可以执行d$;

  比如要在当前位置插入50个‘word’,只需执行50iword ESC按完ESC键之后这50个单词就被插入了;

  比如要粘贴被复制的内容,但希望粘贴5次,则执行5p;

  比如要再次执行上一次命令5次,则执行5.;

  熟练使用这些命令将极大提高编写文件的速度。

  在插入模式下(普通模式按a、i、o等),输入一个单词的开头,然后按CTRL-P或CTRL-N就会自动补齐。

  底行模式共三个开始字符(:、/、?),其中/和?用来匹配模式搜索:

  如搜索文件内字符串centos:

 

  输入这个字符串之后按回车,vim就会将所有匹配的字符串高亮显示,按下n键,光标就会跳到下一个匹配字符串处,按N键,光标就会跳到上一个匹配处。(想想man查询)

  使用?和/的作用相同,不过是方向相反。

  :可以执行许多命令,如前面介绍过的保存退出命令:wq。下面介绍部分底行模式命令:

  

  这些命令也可以组合如执行shell命令并将结果写入当前行的下一行:

  

  还能组合其他模式下的命令如替换当前行所有匹配模式的字符串:

  

  如替换本文件中所有匹配模式的字符串:

  

  如替换指定行的匹配字符串:

  

  这里n和m都是数字,代表行号。可以用点号.代表当前行

  如删除当前行到第五行的内容:

  

  当当前行处于第五行以下时,会有反向删除的提示。

  使用/pattern和:s/pattern/string时,pattern是一个正则表达式,用来匹配一个字符串的模式。

  正则表达式和之前介绍的通配符(基础命令介绍二)有一些相似的地方,但要注意区分两者的不同。

  通配符主要是用于对文件名的匹配,正则表达式不仅可以用于匹配文件名,事实上,它可以进行任何字符串的匹配。它要比通配符更通用,大多数编程语言和一些工具中(如vim、grep、awk、sed)都有对正则表达式的直接支持。

  下面介绍一部分将要用到的正则表达式的概念和用法:

  

  在使用正则表达式时,有时需要在特殊字符之前加上转义字符"\"来使特殊字符表示它的字面意思而不是它的特殊意义,在特定的工具中使用正则时,也需要这样做来避免特殊字符被工具本身解释。

  vim在使用如下正则表达式时需要将特殊字符转义:\<...\>、\{n,m}、\(...\)、\?、\+、\|下面结合正则举例说明vim中模式匹配及部分命令用法

  匹配字符串world并使光标停留在匹配行后第三行行首:

  

  将第三行到第八行行首添加注释符号//:

  

  注意这里的行首符^和转义符'\'的用法

  如:

  

  此命令作用是全局匹配以空白后接xyz开头的行,并执行普通模式下的命令dd

  如匹配6个以上的小写字母:


  如交换冒号:两侧的字符串:

  

  如将所有tag、tog和tug分别改为hat、hot和hut

  

  如匹配hello或world两个单词:

  

  这里只列出部分vim用到的正则表达式,关于正则的更多内容,以后的文章中还会有描述和举例。

  vim编辑器是很强大的,这里只描述了部分初级使用方法。vim还能使用视图模式,编辑多文本,设置键盘映射,多剪贴板,录制宏,使用插件等等。完全可以用vim作为IDE来使用。但相对来说,vim的学习曲线比较陡峭,不同的应用场景,需要记忆的命令和方法数量也是完全不同的。建议在学习中,每次只熟悉几个命令,一段时间后,就能流畅快捷的编辑文本了。

       编辑:silence

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/20161116/n240989496.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片