vim使用教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第十章、vim程式编辑器切换解析度为800x600最近更新日期:2009/08/20系统管理员的重要工作就是得要修改与设定某些重要软体的设定档,因此至少得要学会一种以上的文字介面的文书编辑器。在所有的Linuxdistributions上头都会有的一套文书编辑器就是vi,而且很多软体预设也是使用vi做为他们编辑的介面,因此鸟哥建议您务必要学会使用vi这个正规的文书编辑器。此外,vim是进阶版的vi,vim不但可以用不同颜色显示文字内容,还能够进行诸如shellscript,Cprogram等程式编辑功能,你可以将vim视为一种程式编辑器!鸟哥也是用vim编辑鸟站的网页文章呢!^_^1.vi与vim1.1为何要学vim2.vi的使用2.1简易执行范例2.2按键说明2.3一个案例的练习2.4vim的暂存档、救援回复与开启时的警告讯息3.vim的额外功能3.1区块选择(VisualBlock)3.2多档案编辑3.3多视窗功能3.4vim环境设定与记录:~/.vimrc,~/.viminfo3.5vim常用指令示意图4.其他vim使用注意事项4.1中文编码的问题4.2DOS与Linux的断行字元:dos2unix,unix2dos4.3语系编码转换:iconv5.重点回顾6.本章习题7.参考资料与延伸阅读8.针对本文的建议:=23883vi与vim由前面一路走来,我们一直建议使用文字模式来处理Linux的系统设定问题,因为不但可以让你比较容易瞭解到Linux的运作状况,也比较容易瞭解整个设定的基本精神,更能『保证』你的修改可以顺利的被运作。所以,在Linux的系统中使用文字编辑器来编辑你的Linux参数设定档,可是一件很重要的事情呦!也因此呢,系统管理员至少应该要熟悉一种文书处理器的!Tips:这里要再次的强调,不同的Linuxdistribution各有其不同的附加软体,例如RedHatEnterpriseLinux与Fedora的ntsysv与setup等,而SuSE则有YAST管理工具等等,因此,如果你只会使用此种类型的软体来控制你的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.txt2.直接输入『vi档名』就能够进入vi的一般模式了。请注意,记得vi后面一定要加档名,不管该档名存在与否!整个画面主要分为两部份,上半部与最底下一行两者可以视为独立的。如下图2.1.1所示,图中那个虚线是不存在的,鸟哥用来说明而已啦!上半部显示的是档案的实际内容,最底下一行则是状态显示列(如下图的[NewFile]资讯),或者是命令下达列喔!3.图2.1.1、用vi开启一个新档案4.如果你开启的档案是旧档(已经存在的档案),则可能会出现如下的资讯:5.图2.1.2、用vi开启一个旧档案6.如上图2.1.2所示,箭头所指的那个『/etc/man.config141L,4617C』代表的是『档名为/etc/man.conf,档案内有141行以及具有4617个字元』的意思!那一行的内容并不是在档案内,而是vi显示一些资讯的地方喔!此时是在一般模式的环境下啦。接下来开始来输入吧!7.按下i进入编辑模式,开始编辑文字在一般模式之中,只要按下i,o,a等字元就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态列中会出现–INSERT-的字样,那就是可以输入任意字元的提示啰!这个时候,键盘上除了[Esc]这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!8.图2.1.3、开始用vi来进行编辑Tips:在vi里面,[tab]这个按钮所得到的结果与空白字元所得到的结果是不一样的,特别强调一下!9.按下[ESC]按钮回到一般模式好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下[Esc]这个按钮即可!马上你就会发现画面左下角的–INSERT–不见了!10.在一般模式中按下:wq储存后离开viOK,我们要存档了,存档并离开的指令很简单,输入『:wq』即可存档离开!(注意了,按下:该游标就会移动到最底下一行去!)这时你在提示字元后面输入『ls-l』即可看到我们刚刚建立的test.txt档案啦!整个图示有点像底下这样:11.图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为

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功