vim程序编辑器

Posted GGBeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim程序编辑器相关的知识,希望对你有一定的参考价值。

  系统管理员的重要工作就是修改与设置某些重要软件的配置文件,因此至少得要学会一种以上的命令行界面的本文编辑器。

  在这篇文章终,我们将了解linux系统下的文本编辑器的知识,以及程序编辑器vim的使用方法。

前言:在linux的世界中,绝大部分的配置文件都是以ASCII的纯文本形式存在,因此利用简单的文字编辑软件就能够修改设置了。

一、认识linux系统下的文本编辑器

  linux在命令行界面下的文本编辑器众多,其中包括Emacs,pico,nano,joe与vim等。

1. vi

vi的重要性:

  1. 所有的UNIX Like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在;
  2. 很多软件的编辑接口都会主动调用vi(例如以后会谈到的crontab、visudo、edquota等命令);
  3. vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计;
  4. 程序简单,编辑速度相当快速。

  重点是第二点,因为有太多Linux上面的命令都默认使用vi作为数据编辑的接口,所以我们必须要学会vi,否则将无法操作很多命令。

2. vim

  我们可以将vim视作vi的高级版本,vim可以用颜色或底线等方式来显示一些特殊的信息。

  举例来说,当我们使用vim去编辑一个C程序语言的文件,或者是我们后续会谈到的shell script程序时,vim会依据文件的扩展名或者是文件内的开头信息判断该文件的内容而自动调用该程序的语法判断式,再以颜色来显示程序代码与一般信息。也就是说,这个vim是个“程序编辑器”。

3. vi与vim的小结

  vi是老式的文字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

  vim则可以说是程序开发者的一项很好用的工具,就连vim的官方网站自己也说vim是一个“程序开发工具”而不是文字处理软件。因为vim里面加入了很多额外的功能(例如支持正则表达式的查找架构、多文件编辑、块复制等,这对于我们在linux上进行一些配置文件的修订工作时是很棒的一项功能)。

二、vi的使用

vi分三种模式:一般模式、编辑模式、命令行模式。

【一般模式】

进入:以vi打开一个文件就直接进入一般模式了,也可以从编辑模式或命令行模式切换过来

操作:删除、复制、粘贴等,却无法编辑文件内容

【编辑模式】

进入:在一般模式下,按下字母i

退出:按下Esc按键

操作:编辑文件内容

【命令行模式】

进入:按下“:” “/” “?”中的任何一个按键,就可以将光标移到最下行

操作:查找数据、保存、替换字符、离开vi、显示行号等

  • 特别强调:在vi里面,[Tab]键所得到的结果与空格符所得到的结果是不一样的。

三、vim的功能

  不得不说一句,现如今大部分vi都被vim默认替代了,即你即使用vi命令打开文件,也默认启动的是vim编辑器。

  为什么要用vim呢?因为vim具有颜色显示的功能,并且还支持许多的程序语法,因此,当你使用vim编辑程序时(不论是C语言,还是shell script),我们的vim将可帮你直接进行程序除错(debug)的功能。

  下面是vim新增的几个实用的功能:块选择、多文件编辑、多窗口功能。

1. 块选择

  在进行简单的vi操作过程中,几乎都是以行为单位的操作。而如果我们想搞定的是一个块范围时,就必须使用块选择的功能了。

2. 多文件编辑

  以前想要将A文件的内容“移动”到B文件去,通常要开两个vim窗口来复制,但每个vim都是独立的,因此不得不通过鼠标圈选、复制后粘贴。不过这样一来还是有问题,因为如果我们使用Tab键进行编排对齐操作,通过鼠标会将Tab转成空格键,这样内容就不一样了。

  此时这个多文件编辑就派上用场了。

  因为我们可以使用vim打开两个文件。此时我们可以使用命令来复制粘贴文件内容。

3. 多窗口功能

  在一个屏幕上显示俩个窗口。

  具体来讲,分为两种情况:

  (1)两个窗口显示的是同一个文件;

  (2)两个窗口显示的是不同文件。

  除了上面的几个功能,我们还可以自行设置vim环境,以让vim符合我们的品味。

  最后附上一张vim常用命令示意图。

四、vim使用注意事项

1. 中文编码的问题

  中文编码有很多,如果文件与vim的终端界面使用的编码不同,那么在vim显示的文件内容将会是一堆乱码。

2. 语系编码转换

  命令iconv可以将语系编码进行转换,这个命令支持的语系非常多,其中包括简体中文的gb2312、繁体中文的big5,utf8编码。

  这意味着我们可以通过这个命令自行进行简繁体字转换。

3. DOS与linux的段行字符

  DOS使用的断行字符为^M$(我们称为CR与LF两个符号);而Linux仅有LF($)这个断行符号。

  而linux下面的命令在开始执行时,它的判断依据是[Enter],而linux的[Enter]为LF符号,不过,由于DOS的断行符号是CRLF,也就是多了一个^M的符号出来,在这样的情况下,如果是一个shell script的程序文件,将可能造成“程序无法执行”的状态,因为它会误判所执行的命令内容。

  我们只要将格式转换成为Linux即可。当然,没必要一个一个删除每一行的CR,可以通过简单的命令来进行格式的转换。

  因为DOS和linux系统下面的一些字符的定义不同,因此,我们不建议你在Windows系统当中将文件编辑好之后,才上传到Linux系统,会容易发生错误问题。

五、温故知新

  • Linux下面的配置文件多为文本文件,故使用vim即可进行设置编辑。

 

 

以上是关于vim程序编辑器的主要内容,如果未能解决你的问题,请参考以下文章

Linux初级程序员的vim编辑器

vim - Vi IMproved, 一个程序员的文本编辑器

vim程序编辑器使用总结

第十章 Vim程序编辑器学习

Vim编辑器

vim与程序员