您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 鸟哥的 Linux 私房菜第10章-vim 程序编辑器
鸟哥的Linux私房菜为取得较佳浏览结果,请爱用firefox浏览本网页第十章、vim程序编辑器最近更新日期:2008/01/13系统管理员的重要工作就是得要修改与设定某些重要软件的配置文件,因此至少得要学会一种以上的文字接口的文书编辑器。在所有版本的Linux上头都会有的一套文书编辑器就是vi,而且很多软件默认也是使用vi做为他们编辑的接口,因此鸟哥建议您务必要学会使用vi这个正规的文书编辑器。此外,vim是进阶版的vi,vim不但可以用不同颜色显示文字内容,还能够进行诸如shellscript,Cprogram等程序编辑功能,你可以将vim视为一种程序编辑器!鸟哥也是用vim编辑鸟站的网页文章呢!^_^1.vi与vim:为何要学vim?2.vi的使用2.1简易执行范例2.2按键说明2.3一个案例的练习2.4vim的暂存档、救援回复与开启时的警告讯息3.vim的额外功能3.1区块选择(VisualBlock)3.2多档案编辑3.3多窗口功能3.4vim环境设定与记录:~/.vimrc,~/.viminfo4.其他vim使用注意事项4.1中文编码的问题4.2DOS与Linux的断行字符:dos2unix,unix2dos4.3语系编码转换:iconv5.重点回顾6.本章习题7.参考数据与延伸阅读8.针对本文的建议:=23883vi与vim:为何要学vim?由前面一路走来,我们一直建议使用文本模式来处理Linux的系统设定问题,因为不但可以让你比较容易了解到Linux的运作状况,也比较容易了解整个设定的基本精神,更能『保证』你的修改可以顺利的被运作。所以,在Linux的系统中使用文本编辑器来编辑你的Linux参数配置文件,可是一件很重要的事情呦!也因此呢,系统管理员至少应该要熟悉一种字处理器的!Tips:这里要再次的强调,不同的Linuxdistribution各有其不同的附加软件,例如RedHatEnterpriseLinux与Fedora的ntsysv与setup等,而SuSE则有YOU管理工具等等,因此,如果你只会使用此种类型的软件来控制你的Linux系统时,当接管不同的Linuxdistributions时,呵呵!那可就苦恼了!在Linux的世界中,绝大部分的配置文件都是以ASCII的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定了!与微软的Windows系统不同的是,如果你用惯了MicrosoftWord或CorelWordperfect的话,那么除了Xwindow里面的图形接口编辑程序(如xemacs)用起来尚可应付外,在Linux的文本模式下,会觉得文书编辑程序都没有窗口接口来的直观与方便。Tips:什么是纯文本档?其实档案记录的就是0与1,而我们透过编码系统来将这些0与1转成我们认识的文字就是了。在第零章里面的数据表示方式有较多说明,请自行查阅。ASCII就是其中一种广为使用的文字编码系统,在ASCII系统中的图标与代码可以参考呢!那么Linux在文字接口下的文书编辑器有哪些呢?其实有非常多喔!常常听到的就有:emacs,pico,nano,joe,与vim等等(注1)。既然有这么多文字接口的文书编辑器,那么我们为什么一定要学vi啊?还有那个vim是做啥用的?底下就来谈一谈先!为何要学vim?文书编辑器那么多,我们之前在第五章也曾经介绍过那简单好用的nano,既然已经学会了nano,干嘛鸟哥还一直要你学这不是很友善的vi呢?其实是有原因的啦!因为:所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在;很多个别软件的编辑接口都会主动呼叫vi(例如未来会谈到的crontab,visudo,edquota等指令);vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;因为程序简单,编辑速度相当快速。其实重点是上述的第二点,因为有太多Linux上面的指令都默认使用vi作为数据编辑的接口,所以你必须、一定要学会vi,否则很多指令你根本就无法操作呢!这样说,有刺激到你务必要学会vi的热情了吗?^_^那么什么是vim呢?其实你可以将vim视作vi的进阶版本,vim可以用颜色或底线等方式来显示一些特殊的信息。举例来说,当你使用vim去编辑一个C程序语言的档案,或者是我们后续会谈到的shellscript程序时,vim会依据档案的扩展名或者是档案内的开头信息,判断该档案的内容而自动的呼叫该程序的语法判断式,再以颜色来显示程序代码与一般信息。也就是说,这个vim是个『程序编辑器』啦!甚至一些Linux基础配置文件内的语法,都能够用vim来检查呢!例如我们在第八章谈到的/etc/fstab这个档案的内容。简单的来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具,就连vim的官方网站()自己也说vim是一个『程序开发工具』而不是文字处理软件~^_^。因为vim里面加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等。这对于我们在Linux上面进行一些配置文件的修订工作时,是很棒的一项功能呢!Tips:什么时候会使用到vim呢?其实鸟哥的整个网站都是在vim的环境下一字一字的建立起来的喔!早期鸟哥使用网页制作软件在编写网页,但是老是发现网页编辑软件都不怎么友善,尤其是写到PHP方面的程序代码时。后来就干脆不使用所见即所得的编辑软件,直接使用vim,然后标签(tag)也都自行用键盘输入!这样整个档案也比较干净!所以说,鸟哥我是很喜欢vim的啦!^_^底下鸟哥会先就简单的vi做个介绍,然后再跟大家报告一下vim的额外功能与用法呢!vi的使用基本上vi共分为三种模式,分别是『一般模式』、『编辑模式』与『指令列命令模式』。这三种模式的作用分别是:一般模式:以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。编辑模式:在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的!要等到你按下『i,I,o,O,a,A,r,R』等任何一个字母之后才会进入编辑模式。注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时,则必须要按下『Esc』这个按键即可退出编辑模式。指令列命令模式:在一般模式当中,输入『:/?』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中,可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开vi、显示行号等等的动作则是在此模式中达成的!简单的说,我们可以将这三个模式想成底下的图标来表示:图2.1、vi三种模式的相互关系注意到上面的图标,你会发现一般模式可与编辑模式及指令列模式切换,但编辑模式与指令列模式之间不可互相切换喔!这非常重要啦!闲话不多说,我们底下以一个简单的例子来进行说明吧!简易执行范例如果你想要使用vi来建立一个名为test.txt的档案时,你可以这样做:1.使用vi进入一般模式;[root@~]#vitest.txt直接输入『vi档名』就能够进入vi的一般模式了。请注意,记得vi后面一定要加档名,不管该档名存在与否!整个画面主要分为两部份,上半部与最底下一行两者可以视为独立的。如下图2.1.1所示,图中那个虚线是不存在的,鸟哥用来说明而已啦!上半部显示的是档案的实际内容,最底下一行则是状态显示列(如下图的[NewFile]信息),或者是命令下达列喔!图2.1.1、用vi开启一个新档案如果你开启的档案是旧档(已经存在的档案),则可能会出现如下的信息:图2.1.2、用vi开启一个旧档案如上图2.1.2所示,箭头所指的那个『/etc/man.config141L,4617C』代表的是『档名为/etc/man.conf,档案内有141行以及具有4617个字符』的意思!那一行的内容并不是在档案内,而是vi显示一些信息的地方喔!此时是在一般模式的环境下啦。接下来开始来输入吧!2.按下i进入编辑模式,开始编辑文字在一般模式之中,只要按下i,o,a等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态栏中会出现–INSERT-的字样,那就是可以输入任意字符的提示啰!这个时候,键盘上除了[Esc]这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!图2.1.3、开始用vi来进行编辑Tips:在vi里面,[tab]这个按钮所得到的结果与空格符所得到的结果是不一样的,特别强调一下!3.按下[ESC]按钮回到一般模式好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下[Esc]这个按钮即可!马上你就会发现画面左下角的–INSERT–不见了!4.在一般模式中按下:wq储存后离开viOK,我们要存档了,存盘并离开的指令很简单,输入『:wq』即可存档离开!(注意了,按下:该光标就会移动到最底下一行去!)这时你在提示字符后面输入『ls-l』即可看到我们刚刚建立的test.txt档案啦!整个图示有点像底下这样:图2.1.4、储存并离开vi环境如此一来,你的档案test.txt就已经建立起来啰!需要注意的是,如果你的档案权限不对,例如为-r--r--r--时,那么可能会无法写入,此时可以使用『强制写入』的方式吗?可以!使用『:wq!』多加一个惊叹号即可!不过,需要特别注意呦!那个是在『你的权限可以改变』的情况下才能成立的!关于权限的概念,请自行回去翻一下第六章的内容吧!按键说明除了上面简易范例的i,[Esc],:wq之外,其实vim还有非常多的按键可以使用喔!在介绍之前还是要再次强调,vim的三种模式只有一般模式可以与编辑、指令列模式切换,编辑模式与指令列模式之间并不能切换的!这点在图2.1里面有介绍到,注意去看看喔!底下就来谈谈vim软件中会用到的按键功能吧!第一部份:一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代等移动光标的方法h或向左箭头键(←)光标向左移动一个字符j或向下箭头键(↓)光标向下移动一个字符k或向上箭头键(↑)光标向上移动一个字符l或向右箭头键(→)光标向右移动一个字符如果你将右手放在键盘上的话,你会发现hjkl是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动30行,可以使用30j或30↓的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可![Ctrl]+[f]屏幕『向下』移动一页,相当于[PageDown]按键(常用)[Ctrl]+[b]屏幕『向上』移动一页,相当于[PageUp]按键(常用)[Ctrl]+[d]屏幕『向下』移动半页[Ctrl]+[u]屏幕『向上』移动半页+光标移动到非空格符的下一列-光标移动到非空格符的上一列nspace那个n表示『数字』,例如20。按下数字后再按空格键,光标会向右移动这一行的n个字符。例如20space则光标会向后面移动20个字符距离。0或功能键[Home]这是数字『0』:移动到这一行的最前面字符处(常用)$或功能键[End]移动到这一行的最后面字符处(常用)H光标移动到这个屏幕的最上方那一行的第一个字符M光标移动到这个屏幕的中央那一行的第一个字符L光标移动到这个屏幕的最下方那一行的第一个字符G移动到这个档案的最后一行(常用)nGn为数字。移动到这个档案的第n行。例如20G则会移动到这个档案的第20行(可配合:setnu)gg移动到这个档案的第一行,相当于1G啊!(常用)nEntern为数字。光标向
本文标题:鸟哥的 Linux 私房菜第10章-vim 程序编辑器
链接地址:https://www.777doc.com/doc-5324432 .html