鸟哥的_Linux_私房菜第10章-vim_程序编辑器
详细介绍了linux下的文档编辑工具vim的使用方法。操作呢!这样说,有刺激到你务必要学会vi的热情了吗?那么什么是vim呢?其实你可以将vim视作vi的进阶版本,vim可以用颜色或底线等方式来显示些特殊的信息。举例来说,当你使用ⅴim去编辑个C程序语言的档案,或者是我们后续会谈到的 shell script程序时,ⅴim会依据档案的扩展名或者是档案内的开头信息,判断该档案的内容而自动的呼叫该程序的语法判断式,再以颜色来显示程序代码与一般信息。也就是说,这个im是个『程序编辑器』啦!甚至一些 Linux基础配置文件内的语法,都能够用vim来检查呢!例如我们在第八章谈到的/etc/ fstab这个档案的内容。简单的来说,Ⅴi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。Vvim则可以说是程序开发者的一项很好用的工具,就连vim的官方网站(http://www.vim.org自己也说vim是一个『程序丌发工具」而不是文字处理软件~。因为vim里亩加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等。这对于我们在 Linux上面进行一些配置文件的修订工作时,是很棒的一项功能呢!Ti什么时候会使用到vim呢?其实鸟哥的整个网站都是在vim的环境下字字的建立起来的喔!早期鸟哥使用网页制作软件在编写网页,但是老是发现网页绽辑软件都不怎么友善,尤其是写到叫P面的程序代码时,后来流@(①司思哥干脆不使用所见即所得的编辑软件,直接使用vim,然后标签(tag)也都自行用键盘输入!这样整个档案也比较净!所以说,鸟哥我是很喜欢vim的啦!底下鸟哥会先就简单的ⅴi做个介绍,然后再跟大家报告一下vim的额外功能与用法呢!i的使用基本上vⅰ共分为三种模式,分别是『一般模式」、「编辑模式』与『指令列命令模式」。这三种模式的作用分别是般模式:ⅵⅰ打丌一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你以使用『上下左冇」按键来移动光标,你可以使川『删除字符』或『删除整行」处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。辑模式般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内谷的!等到你按下「i,I,0,0,a,A,r,R』等任何一个字母之后才会进入编辑模式。意了!通常在 Linux中,按下这些按键时,在画面的左下方会出现『 INSERT或LACE』的字样,此时才可以进行编辑。而如果要回到一般模式时,则必须要下『Lsc』这个按键即可退出编辑模式。令列命令模式:般模式当中,输入『:/?』三个中的任何一个按钮,就可以将光标移动到底下那一行。在这个模式当中,可以提供你「搜寻资料』的动作,而读取、存、大量取代字符、离开ⅴi、显示行号等等的动作则是在此模式中达成的简单的说,我们可以将这三个模式想成底下的图标来表示,O,a(插人)R(取代緝輯模式一般模式以插入或取代來輯[ESCI檔案内客游標的移勳搜尋取代明除字元丶刪除整列指合列模式複興整列·貼上整列童取存榴案TESCI其他額外功能图2.1、vi三种模式的相互关系注意到上面的图标,你会发现一般模式可与编辑模式及指令列模式切换,但编辑模式与指令列模式之间不可互相切换喔!这非常重要啦!闲话不多说,我们底下以一个简单的例子来进行说明吧!简易执行范例如果你想要使用ⅴi来建立一个名为test.txt的档案时,你可以这样做:用vi进入一般模式;Troot@www# vi test.ixt接输入『ⅵⅰ档名』就能够进入vi的一般模式了。请注意,记得vi后面一定加档名,不管该档名存在与否!整个画面主要分为两部份,上半部与最底下两者可以视为独立的。如下图2.1.1所示,图中那个虚线是不存在的,鸟哥用说明而已啦!上半部显示的是档案的实际内容,最底下一行则是状态显示列(如图的[ New fi1e]信息),或者是命令下达列喔!連)網輯巴檢視窗W)選項說明画游標在這裡這個符號表示沒有任何東西這裡是示資訊或進入指令列模式的黄料图2.1.1、用v开启一个新档案果你开启的档案是旧档(已经存在的档案),则可能会出现如下的信息:海①輯⑩視◎窗蓬①館明田Generated automa tically from man. Conf in by the##fIgure scLan. conf fron man-l, 6dFor more informa tion about this file, see the man pages mlan( 1and man, conf(5)並非新檔·所以有額外資訊# This file is read by yAn to Configure the default manpathusedwhen MANPATH Contains an empty substring), to find out whs Corresponnan pages should be s toredand to map each FAtH element to a manpa th elementSetcfig"141L,4617C图2.1.2、用vi开启一个旧档案上图2.1.2所示,箭头所指的那个『"/etc/man. config"141L,4617C』代表的『档名为/etc/man.conf,档案内有141行以及具有4617个字符』的意思!行的内容并不是在档案内,而是vi显示一些信息的地方喔!此时是在一般模的环境下啦。接下来开始米输入吧!下ⅰ进入编辑模式,开始编辑文字般模式之中,只要按下i,o,a等字符就可以进入编缉模式了!在编辑模式中,你可以发现在左下角状态栏中会出现- INSERT-的字样,那就是可以输入意字符的提示啰!这个时候,键盘上除了[Esc]这个按键之外,其他的按键都以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!逴線℃編輯巴檢視窗{)選項◎說明I am vBird很高興能夠在這裡部讖大家望我的文章能频意助你啊!朋友們!BIrd 2009/01/0插入模式( INSERT-.INSERT图2.1.3、开始用ⅵi来进行编辑Tips在vi里面,[tab.这个按钮所得到的结果与空格符所得到的结果是不一样的,特別强调一下!写哥下[ESC]按钮回到一般模式了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!错!就是给他按卜[sc]这个按钮即可!马上你就会发现画面左下角的SERT-不见了!一般模式中按下:wq储存后离开vi,我们要存档了,存盘并离开的指令很简单,输入『:wq』即可存档离开!(注该光标就会移动到最底卜一行去!)这时你在提示字符后面输入「1s即可看到我们刚刚建立的test.txt档案啦!整个图示有点像底下这样:逴線心)編轩巴檢視視窗(選項0說明正恨高里能测在這裡部繼大家!希望我的文章能夠幫助你啊!朋友們!Wird200901/0游標在這裡’讓你輸入指令用图2.1.4、储存并离开i环境如此一来,你的档案test.txt就已绎建立起来啰!需要注意的是,如果你的档案权限不对,例如为-r-r-r—时,那么可能会无法写入,此时可以使用『强制写入」的方式吗?可以!使用「:wq!』多加一个惊叹号即可!不过,需要特别注意呦!那个是在『你的权限可以改变」的情况下才能成立的!关于权限的概念,请自行回去翻下第六章的内容吧!Δ按键说明除了上面简易范例的i,[Esc],:wq之外,其实vim还有非常多的按键可以使用喔!在介绍之前还是要再次强调,vim的三种模式只有一般模式可以与编辑、指令列模式切换,编辑模式与指令列模式之间并不能切换的!这点在图2.1里闻有介绍到,注意去看看喔!底下訫来谈谈vim软件中会川到的按键功能吧!第一部份:一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代等移动光标的方法或向左箭头键(←)光标向左移动一个字符hk1或向下箭头键()光标向下移动一个字符或向上箭头键(↑)光标向上移动一个字符或向右箭头键(→)光标向右移动一个字符如果你将右手放在键盘上的话,你会发现hik1是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动30行,可以使用"30j″或"30↓″的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可!LCtrl +f屏幕『向下」移动一页,相当于[ Page down]按建(常用)LCtrl] lb屏幕『向上』移动一页,相当于[ Page Up]按键(常用)LCtrl [d屏幕「向下』移动半页LCtrll+ [ul屏幕「向上』移动半页光标移动到非空格符的下一列光标移动到非空格符的上一列那个n表示「数字」,例如20。按下数字后再n按空格键,光标会向右移动这一行的n个字符例如20< space>则光标会向后面移动20个字符距离。0或功能鍵o这是数字「01:移动到这一行的最前面字符处(常用)S或功能键[nd]移动到这一行的最后面字符处(常用)光标移动刭这个屏幕的最上方那一行的第一个字M光标移动到这个屏幕的中央那一行的第一个字符光标移动到这个屏幕的最下方那一行的第一个字移动到这个档案的最后一行(常用)n为数字。移动到这个档案的第n行。例如20G则会移动到这个档案的第20行(可配合:setnu移动到这个档案的第一行,相当于1G啊!(常gg用)n Enter>n为数字。光标向下移动n行(常用)搜寻与取代向光标之下寻找一个名称为word的字符串。例/word如要在档案内搜寻 vbird这个字符申,就输入/ vbird即可!(常用)?word向光标之上寻找一个字符串名称为word的宰符这个n是英文按键。代表『重复前一个搜寻的动作』。举例来说,如果刚刚我们执行/bird去向下搜寻 vbird这个字符串,则按下n后,会向下继续搜寻下一个名称为 vbird的字符串。如果是执行? vbird的话,那么按下n则会向上继续搜寻名称为 vbird的字符串!这个N是英文按键。与n刚好相反,为『反向』进行前一个搜寻动作。例如/ vbird后,按下N则表小『向上:」搜寻 vbird。使用word配合n及N是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串取代为n1,n2s/word1/word2/ g word2!举例来说,在100到200行之间搜寻vbird并取代为VBIR则::100,200s/ vbird/ VBIRD/g」。(常用)1, S/word1/word2/从第一行到最后一行寻找 word字符串,并将该字符取代为word2!(常用)从第一行到最后一行寻找 word1字符串,并将该1,$s/ wordl/word2/gc字符串取代为word2!且在取代前显示提示字符给用户确认( confirm)是否需要取代!(常用)删除、复制与贴上在一行字当中,ⅹ为向后删除一个字符(相当于x,Ⅹ[del]按键),Ⅹ为向前删除个字符(相当丁Backspace」亦即是退格键)(常用)n为数字,连续向后删除n个字符。举例米说,nx我要迕续删除10个字符,『10xdd删除游标所在的那一整列(常用)nddn为数字删除光标所在的向下n列,例如20d则是删除20列(常用)dIG朋除光标所在到第行的所有数据dG删除光标所在到最后一行的所有数据朋除游标所在处,到该行的最后一个字符那个是数字的0,删除游标所在处,到该行的最前面一个字符yy复制汸标所在的那一行(常用)n为数字。复制光标所在的向下n列,例如20yynyy则是复制20列常用)1G复制光标所在列到第一列的所有数据yG复制光标所在列到最后一列的所有数据0复制光标所在的那个字符到该行行首的所有数据y复制光标所在的那个字符到该行行尾的所有数据p为将已复制的数据在光标下一行贴上,P则为贴在游标上一行!举例来说,我目前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据会贴在原本的20行之后,亦即由21行丌始贴。但如果是按下P呢?那么原木的第20行会被推到变成30行。(常用)将光标所在列与下一列的数据结合成同一列重复删除多个数据,例如向卜删除10行,[10cj]复原前一个动作。(常用)[Cttrite重做上一个动作。(常用)这个u与[Ctr1]+r是很常用的指令!个是复原,另一个则是重做次~利川这两个功能按键,你的编辑,嘿嘿!很快乐的啦!不要怀疑!这就是小数点!意思是重复前一个动作的意思。如果你想要重复删除、重复贴上等等动作,按下小数点「.』就好了!(常用)第二部份:一般模式切换到编辑模式的可用的按钮说明进入插入或取代的编辑模式进入插入模式( Insert mode):i为『从目前光标所在处插入』,I为『在目前所在行的第一个非空格符处开始插入」。(常用)进入插入模式( Insert mode):a为「从目前光标所在的下一个字符处开始插入』,A为『从光标所在行的最后一个字符处开始插入』。(常用)
用户评论