vi编辑器常用命令
- 格式:doc
- 大小:92.00 KB
- 文档页数:27
vim编辑器常⽤命令vi有3个模式:插⼊模式、命令模式、低⾏模式。
插⼊模式:在此模式下可以输⼊字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低⾏模式:可以保存⽂件、退出vi、设置vi、查找等功能(低⾏模式也可以看作是命令模式⾥的)。
⼀、打开⽂件、保存、关闭⽂件(vi命令模式下使⽤)vi filename //打开filename⽂件:w //保存⽂件:w //保存⾄⽂件:q //退出编辑器,如果⽂件已修改请使⽤下⾯的命令:q! //退出编辑器,且不保存:wq //退出编辑器,且保存⽂件⼆、插⼊⽂本或⾏(vi命令模式下使⽤,执⾏下⾯命令后将进⼊插⼊模式,按ESC键可退出插⼊模式)a //在当前光标位置的右边添加⽂本i //在当前光标位置的左边添加⽂本A //在当前⾏的末尾位置添加⽂本I //在当前⾏的开始处添加⽂本(⾮空字符的⾏⾸)O //在当前⾏的上⾯新建⼀⾏o //在当前⾏的下⾯新建⼀⾏R //替换(覆盖)当前光标位置及后⾯的若⼲⽂本J //合并光标所在⾏及下⼀⾏为⼀⾏(依然在命令模式)三、移动光标(vi命令模式下使⽤)1、使⽤上下左右⽅向键2、命令模式下:h 向左、j 向下、k 向上、l 向右。
空格键向右、Backspace 向左、Enter 移动到下⼀⾏⾸、- 移动到上⼀⾏⾸。
四、删除、恢复字符或⾏(vi命令模式下使⽤)x //删除当前字符nx //删除从光标开始的n个字符dd //删除当前⾏ndd //向下删除当前⾏在内的n⾏u //撤销上⼀步操作U //撤销对当前⾏的所有操作五、搜索(vi命令模式下使⽤)/vpser //向光标下搜索vpser字符串vpser //向光标上搜索vpser字符串n //向下搜索前⼀个搜素动作N //向上搜索前⼀个搜索动作六、跳⾄指定⾏(vi命令模式下使⽤)n+ //向下跳n⾏n- //向上跳n⾏nG //跳到⾏号为n的⾏G //跳⾄⽂件的底部七、设置⾏号(vi命令模式下使⽤):set nu //显⽰⾏号:set nonu //取消显⽰⾏号⼋、复制、粘贴(vi命令模式下使⽤)yy //将当前⾏复制到缓存区,也可以⽤ "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
进入vi的命令 (1)移动光标类命令 (1)屏幕翻滚类命令 (2)编辑插入文本类命令 (3)删除命令 (5)搜索及替换命令 (6)选项设置 (8)组合命令 (10)最后行方式命令 (14)寄存器操作 (15)进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾^ 光标移到行首f 光标移到当前光标位置后面的第一个指定的字符下F 光标移到当前光标位置前面的第一个指定的字符下t 光标移到当前光标位置后面的第一个指定的字符前T 光标移到当前光标位置前面的第一个指定的字符前% 光标移动到与当前括号匹配的括号处:n 光标移动到指定行按数字:0:移到文章的开头。
按G:移动到文章的最后。
按w:光标跳到下个字的开头按e:光标跳到下个字的字尾按b:光标回到上个字的开头按:#l:光标移到该行的第#个位置,如:5l,56l。
VI编辑器常⽤指令以及实践⽰例VI编辑器常⽤指令以及实践⽰例⼀.理论知识1.1 Vi编辑器vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强⼤不逊⾊于任何最新的⽂本编辑器, Vi也是Linux中最基本的⽂本编辑器.1.1.1vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)、插⼊模式(Insert mode)和底⾏模式(last line mode),各模式的功能区分如下:1)命令⾏模式command mode)控制屏幕光标的移动,字符、字或⾏的删除,移动复制某区段及进⼊Insert mode下,或者到 last line mode。
2)插⼊模式(Insert mode)只有在Insert mode下,才可以做⽂字输⼊,按「ESC」键可回到命令⾏模式。
3)底⾏模式(last line mode)将⽂件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出⾏号……等。
1.1.2 vi的基本操作1) 进⼊vi在系统提⽰符号输⼊vi及⽂件名称后,就进⼊vi全屏幕编辑画⾯:$ vi myfile不过有⼀点要特别注意,就是您进⼊vi之后,是处于「命令⾏模式(command mode)」,您要切换到「插⼊模式(Insert mode)」才能够输⼊⽂字。
2) 切换⾄插⼊模式(Insert mode)编辑⽂件在「命令⾏模式(command mode)」下按⼀下字母「i」就可以进⼊「插⼊模式(Insert mode)」,这时候你就可以开始输⼊⽂字了。
3)Insert 的切换⽬前处于「插⼊模式(Insert mode)」,您就只能⼀直输⼊⽂字,如果您发现输错了字!想⽤光标键往回移动,将该字删除,就要先按⼀下「ESC」键转到「命令⾏模式(command mode)」再删除⽂字。
4)退出vi及保存⽂件在「命令⾏模式(command mode)」下,按⼀下「:」冒号键进⼊「Last line mode」,例如:: w filename (输⼊「w filename」将⽂章以指定的⽂件名filename 保存): wq (输⼊「wq」,存盘并退出vi): q! (输⼊q!,不存盘强制退出vi)1.1.3 命令⾏模式(command mode)功能键1)插⼊模式按「i」切换进⼊插⼊模式「insert mode」,按“i”进⼊插⼊模式后是从光标当前位置开始输⼊⽂件;按「a」进⼊插⼊模式后,是从⽬前光标所在位置的下⼀个位置开始输⼊⽂字;按「o」进⼊插⼊模式后,是插⼊新的⼀⾏,从⾏⾸开始输⼊⽂字。
Linux 中V(Vim)常用命令使用说明在linux发行版中vi 命令已经软链接到了vim一、vi的三种工作模式:命令模式、末行模式、编辑模式1. 末行模式命令w:(write)保存q:(quit)退出,如果没有保存不允许退出q!:(quit)强行退出,不保存退出wq:(write&quit)保存并退出x:保存并退出:e:(edit)会打开内置浏览器浏览当前目录下的文件,后面加文件名就会打开该文件:n文件名:(new)新建文件:w文件名:(write)另存为,但是仍然编辑当前文件,并不会切换文件二、打开或新建文件说明:打开一个文件,文件不存在则新建一个文件命令:vi 文件名1. 打开文件并且定位行说明:打开一个文件并且定位到指定行数,不指定行数则定位到文件末尾命令:vi 文件名+行数三、常用命令(命令模式下使用)1. 重复次数在命令模式下,先输入一个数字再跟上一个命令,可以让该命令重复执行指定次数。
2. 移动和选择2.1 移动行间移动命令:行内移动命令:行数移动命令:屏幕移动命令:段落移动命令:vi中用空行来区分段落,在程序开发过程中,通常一段功能相关的代码会放到一起(一个段落)。
括号切换命令:标记命令:2.2 选择(可视模式)可视模式下,esc可退出可视模式,还可和移动命令连用,例如ggVG能够选中所有内容。
3. 编辑操作3.1撤销和恢复撤销3.2 删除文本如果使用可视模式已经选中了一段字符,那么使用d或者x都可以删除选中字符。
删除命令可以和移动命令连用,例如3.3 复制粘贴复制粘贴是在一个文本缓冲区,没有使用系统的剪切板,所有用其他软件ctrl + c/x 复制剪切到系统的剪切板,再到vi中p粘贴是不能粘贴系统剪切板的内容的。
如果想将系统剪切板的内容粘贴到vi中,需要进入编辑模式使用ctrl + v才能将内容粘贴。
vi中的删除操作本质上就是剪切,只是没有使用p粘贴。
4. 撤销和重复4.1 缩排和重复5. 查找和替换5.1替换R命令可进入替换模式,替换完后esc退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。
下使用VI编辑文件必知的常用命令进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾:光标移至句尾:光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:注意是数字零光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部.插入文本类命令i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索patternpattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位Ctrl+I和行尾标志$number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NO write 信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d :将n1行到n2行之间的内容删除:w :保存当前文件:e filename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q:不保存文件并退出vi:command:执行shell命令command:n1,n2 wcommand:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:rcommand:将命令command的输出结果放到当前行寄存器操作"nyy:将当前行及其下n行的内容保存到寄存器中,其中为一个字母,n为一个数字"nyw:将当前行及其下n个字保存到寄存器中,其中为一个字母,n为一个数字"nyl:将当前行及其下n个字符保存到寄存器中,其中为一个字母,n为一个数字"p:取出寄存器中的内容并将其放到光标位置处.这里可以是一个字母,也可以是一个数字ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中.。
vi常用指令VI是一款非常实用的文本编辑器。
它经常被用于程序编写、文件编辑等方面。
VI的操作比较简单,只要掌握几个常用的指令,就可以轻松完成许多工作。
本文将会介绍VI的常用指令,帮助读者更好地使用VI。
一、VI的三种模式VI有三种模式:命令模式、插入模式和底行模式。
在命令模式下,我们可以用各种命令对文本进行编辑。
在插入模式下,我们可以直接输入文本。
在底行模式下,我们可以执行一些特定的命令,如保存文件、退出VI等。
二、进入/退出VI进入VI的方法有两种:一个是使用命令vi,另一个是使用命令vim。
两者的效果是一样的,只是vi是VIM的简称。
退出VI的方法有两种:一个是在命令模式下输入命令:wq!表示保存并退出;另一个是在命令模式下输入命令:q!表示不保存并退出。
三、命令模式下的常用指令1.移动光标:我们可以使用h、j、k、l命令将光标左移、下移、上移、右移。
2.插入文本:在命令模式下,我们可以按下i、a、o等指令,进入插入模式,开始编辑文本。
3.删除文本:我们可以使用命令x、dd等来删除文本。
其中x命令会删除光标所在位置的一个字符,而dd命令可以删除一整行。
4.复制/粘贴文本:我们可以使用命令y、p等来复制/粘贴文本。
其中y命令会复制选定的文本,而p命令会将文本粘贴到光标下方。
5.替换文字:我们可以使用命令:s/old/new/g,将old替换为new,其中g表示全局匹配。
6.查找替换:我们可以使用命令:%s/old/new/gc,将old替换为new,其中gc表示全局匹配并要求确认。
四、底行模式下的常用指令1.保存文件:我们可以在命令模式下输入命令:w,保存当前的编辑内容。
2.查找文本:我们可以在命令模式下输入命令:/text,用于查找text。
按下n可以继续查找下一个匹配项。
3.退出VI:我们可以在命令模式下输入命令:q,表示退出VI。
4.保存并退出VI:我们可以在命令模式下输入命令:wq,用于保存当前的编辑内容并退出VI。
Linux下vi编辑器常⽤命令之前做Linux实验的时候重装了⼀个新的Linux,这次想偷懒就没⽤vscode⽽是直接⽤起vi写,⼀开始还有点不习惯,多操作⼏次把常⽤命令掌握了就差不多了其实不⼀定要背下来,写下来然后要⽤的时候复习⼀下就可以了。
稍微总结⼀下⾃⼰常⽤的vi命令:1、打开命令:vi [filename] (⼀定要加⽂件名):打开[filename]⽂件2、退出命令::q :退出⽽且不保存修改的内容:q! :强制退出不保存修改的内容:wq :退出并且保存修改的内容:wq! :强制保存修改的内容然后退出(修改了只读⽂件会⽤到)ZZ :退出并且保存修改的内容,相当于:wq,看个⼈习惯3、光标移动命令上下左右⽅向键:移动光标,看别⼈字母 h (左) ,j (下), k(上),l(右)才是正统的不过顺⼿就⾏^ :光标移到⾏⾸$ :光标移到⾏尾shift+g:光标移动到⽂件最后⼀⾏gg :光标移动到⽂件第⼀⾏4、控制命令打开⼀个内容很多的⽂件的时候经常⽤到。
Ctrl+d:向下滚半屏Ctrl+u:向上滚半屏Ctrl+f :向下滚全屏Ctrl+b:向上滚全屏5、编辑命令主要是进⼊编辑状态,也就是insert状态i:光标当前位置开始编辑o:光标的下⼀⾏开始编辑shift+o:光标的上⼀⾏开始编辑6、删除命令dd:删除⼀⾏,可以带个数字,如6dd,表⽰向下删除6⾏d$:删除光标到⾏尾的内容(也可以使⽤ctrl+d)d^:删除光标到⾏⾸的内容x:删除光标位置的字符(向后删除)shift+x:删除光标位置的字符(向前删除)7、替换命令r:按esc退出insert状态再按个r,然后再输⼊⼀个字符,将会替换光标位置的字符R:跟r⼀样,只不过是可以替换多个字符:s/aa/bb/g:替换当前⾏的所有aa将会变成bb:%s/aa/bb/g:替换整个⽂件的,所有aa将会变成bb:n1,n2s/aa/bb/g:替换n1到n2⾏之间所有的aa变成bb8、查找命令/String:查找⼀个字符串(向下开始)String:查找⼀个字符串(向上开始)n:向后查找下⼀个shift+n:向前查找下⼀个9、粘贴复制命令yw:复制⼀个单词yy:复制⼀⾏,和删除dd⼀样可以带个数字,6yy复制六⾏(向下复制6⾏)p:粘贴到光标位置的下⼀⾏shift+p:粘贴到光标位置的上⼀⾏10、同时打开两个⽂件⽐如:aa.txt ss.txt打开第⼀个⽂件vi aa.txt然后输⼊下⾯的命令:sp ss.txt:此时就在同⼀个窗⼝打开另外⼀个ss.txtCtrl+w:进⾏两个⽂件上下窗⼝切换(需要再按上下⽅向键)11、其他常⽤命令:e!:重新加载⽂件,再查看⽇志⽂件的时候可以⽤,不断在变化的⽂件。
Vi编辑器命令大全进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename :打开多个文件,依次进行编辑移动光标类命令h :光标左移一个字符l :光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n :光标下移一行Enter :光标下移一行w或W :光标右移一个字至字首b或B :光标左移一个字至字首e或E :光标右移一个字至字尾) :光标移至句尾( :光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H :光标移至屏幕顶行M :光标移至屏幕中间行L :光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏Ctrl+e:向文件尾翻一行Ctrl+y;向文件首翻一行nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置:set nu 显示行号:set nonu 不显示行号all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位(Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NO write信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下:n1,n2 d :将n1行到n2行之间的内容删除:w :保存当前文件:e filename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi:!command:执行shell命令command:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行寄存器操作"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字"?p:取出寄存器?中的内容并将其放到光标位置处。
VI常用操作宝典来源: ChinaUnix博客日期: 2008.10.05 19:25(共有0条评论) 我要评论.vimrc文件位置对于 Unix::!cp -i $VIMRUNTIME/vimrc_example.vim ~/.vimrc对于 MS-DOS, MS-Windows, OS/2::!copy $VIMRUNTIME/vimrc_example.vim $VIM/_vimrc对于 Amiga::!copy $VIMRUNTIME/vimrc_example.vim $VIM/.vimrc.vim全局变量目录Unix ~/.vim/plugin/PC 和 OS/2 $HOME/vimfiles/plugin 或 $VIM/vimfiles/pluginAmiga s:vimfiles/pluginMacintosh $VIM:vimfiles:pluginRISC-OS Choices:vimfiles.plugin1)文件操作vi FileName 打开文件 FileName,并将光标置于第一行首。
vi +n FileName 打开文件 FileName,并将光标置于第 n 行首。
vi + FileName 打开文件 FileName,并将光标置于最后一行。
vi + /pattern FileName 打开文件 FileName,并将光标置于其中第一个于 pattern 匹配的字符串处。
vi –r FileName 在上次正用 vi 编辑 FileName 发生系统崩溃后,恢复FileName。
vi File1 … Filen打开多个文件,依次对之进行编辑。
:%!xxd 以十六进制查看:%!xxd -r 从十六进制返回:n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。
:n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。
:g/^.*uid.*;$/nu 查找含 uid 且以;结尾的行,并显示行号:g/^.*uid.*;$/m 59 查找含 uid 且以;结尾的行,并把这些行move到第59行:n1,n2 d 将 n1 行到 n2 行之间的内容删除。
:n1,n2 w filename 将 n1 行到 n2 行之间的内容保存到文件 filename 中:n1,n2 w! Command 将文件中n1行到n2行的内容作为 Command的输入并执行之,若不指定n1、n2,则将整个文件内容作为 Command 的输入。
:r! Command 将命令 Command 的输出结果放到当前行。
:nr 把插入到第n行:so 读取,再执行文件里面的命令 (译注--文件中的命令应该都是一些ex命令):l1,l2w 把第l1和第l2行之间的文本写到中去:w >> 添加到末尾. 也可以使用行号: e! 重新编辑当前文件,忽略所有的修改·(、[、{、)、]、}对应显示% 显示当前(、[、{ 、)、] 、}的对应项·(、[、{、)、]、}内数据选择daB 删除{}及其内的内容 (在非v可视模式下)diB 删除{}中的内容ab 选择()中的内容ib 选择()中的内容( 不含() )aB 选择{}中的内容iB 选择{}中的内容( 不含{} )·语法提示与自动补齐★插入模式下的单词自动完成★行自动完成(超级有用)1)设置建立ctags#ctags -f _tags -R $JAVA_HOME/src /var/www/html/iychina/lib/#ctags -f _tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686# VIMRUNTIME=/usr/local/vim7/share/vim/vim70aa# cp _tags ${VIMRUNTIME}/tags/_tags2)设置~/.vimrc"标签文件位置set tags=$VIMRUNTIME/tags/_tags3)使用^p 自动补齐上下文已有相近项^n 自动补齐~/.tags中的相近函数^] 显示~/.tags中的光标下的函数的原型, 显示函数原型列表,输入数字后按回车,则显示函数定义原型按^t退出函数:pta 函数名或^w} 预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头K 显示光标下的C函数的man说明手册CTRL-X CTRL-F 文件名CTRL-X CTRL-L 整行CTRL-X CTRL-D 宏定义 (包括包含文件里的)CTRL-X CTRL-I 当前文件以及所包含的文件CTRL-X CTRL-K 字典文件内的单词CTRL-X CTRL-T 同义词词典文件内的单词CTRL-X CTRL-] 标签CTRL-X CTRL-V Vim 命令行全能补全的热键是 CTRL-X CTRL-O。
显然,O 在这里代表全能 (Omni),这样方便我们记忆。
让我们以编辑C 程序为例:{struct foo *p;p->光标在 "p->" 之后。
现在键入 CTRL-X CTRL-O。
Vim 会给你提供一个可选项的列表,这些可选项为 "struct foo" 所拥有。
这和使用 CTRL-P 有很大不同,后者补全任意单词,而我们这里只要求 "struct foo" 的成员。
大家一般都知道,在 Vim 的帮助窗口中的关键字上双击鼠标或者键入―Ctrl-]‖即可跳转至该关键字相关的帮助主题。
不过,―跳转至匹配的关键字‖这一功能并不仅仅局限于帮助文件。
只要有合适的 tags 文件(参见―:help tags-file-format‖),我们同样可以在源代码中使用这个方便的功能,跳转到与关键字匹配的―标记‖处(通常是源代码中某一函数、类型、变量或宏的定义位置)。
要产生 tags 文件,通常我们使用 Exuberant Ctags [15]。
一般的 Linux 发布版中均带有这一工具。
Ctags 带有的选项数量极多,此处我们仅简单介绍如何在一个典型的多文件、多层目录的项目中使用其基本功能:我们只需在项目的根目录处键入―ctags -R .‖,Ctags 即可自动在文件中查找、识别支持的文件格式、生成 tags 文件。
目前 Exuberant Ctags 支持多达 33 种编程语言 [16],包括了 Linux 下常用的 C、C++、Java、Perl、PHP 等。
有了 tags 文件,以下的 Vim 命令就可以方便使用了(进一步的信息可参考―:help tags-and-searches‖):∙:tag 关键字(跳转到与―关键字‖匹配的标记处)∙:tselect [关键字](显示与―关键字‖匹配的标记列表,输入数字跳转到指定的标记)∙:tjump [关键字](类似于―:tselect‖,但当匹配项只有一个时直接跳转至标记处而不再显示列表)∙:tn(跳转到下一个匹配的标记处)∙:tp(跳转到上一个匹配的标记处)∙Ctrl-](跳转到与光标下的关键字匹配的标记处;除―关键字‖直接从光标位置自动获得外,功能与―:tags‖相同)∙g](与―Ctrl-]‖功能类似,但使用的命令是―:tselect‖)∙g Ctrl-](与―Ctrl-]‖功能类似,但使用的命令是―:tjump‖)∙Ctrl-T(跳转回上次使用以上命令跳转前的位置)当我们在项目的根目录下工作时,上面这些命令工作得很好。
但如果我们进到多层目录的里层再运行 Vim 打开文件时,这些命令的执行结果通常就变成了错误信息―E433: No tags file‖。
这是因为缺省 Vim 只在文件所在目录和当前目录下寻找 tags 文件,而我们前面只在项目的根目录下生成了 tags 文件,Vim 无法找到该文件。
解决方法有好几种,我认为一般较简单的做法是对每个项目都在 .vimrc 文件中增加一个路径相关设定。
假设我们有两个项目,位置分别是 /home/my/proj1 和 /home/my/proj2,那我们可以使用:au BufEnter /home/my/proj1/* setlocal tags+=/home/my/proj1/tagsau BufEnter /home/my/proj2/* setlocal tags+=/home/my/proj2/tagsVim 选项 tags 用于控制检查的 tags 文件,缺省值为―./tags,tags‖,即前面所说的文件所在目录下和当前目录下的 tags 文件。
上面两行自动命令告诉 Vim,在打开项目目录下的文件时,tags 选项中的内容要增加项目的 tags 文件的路径。
进一步信息可参看―:help 'tags'‖。
·变量定位gd 转到光标下局部变量的定义处Gd 转到光标下全局变量的定义处·编译选项F9 编译或执行当前程序:cn 命令会把你带到下一个出错地点,而不考虑它在什么文件里。
:cc 命令会向你显示当前错误的编译器输出信息;:cl 会生成一个列有项目所有错误的列表,以供浏览这些错误.鼠标支持不管是文本界面还是图形界面的 Vim,都支持鼠标。
不过,在文本界面中,鼠标支持缺省没有被激活;这就意味着,在终端上使用鼠标,所有的功能仍和没有使用 Vim 时相同,并不受 Vim 影响。
要激活文本界面中的鼠标支持也很容易,只需要执行一句―:set mouse=a‖即可。
启用了鼠标支持之后,Vim 主要支持的鼠标操作有:∙单击移动光标到点击的位置;∙在帮助的关键字上双击显示该关键字相关的帮助信息;∙在普通文本上双击选中点击位置的单词;∙拖动鼠标选中文本;∙使用鼠标滚轮滚动当前缓冲区中的文本;∙多窗口编辑时可以拖动窗口分栏的位置。
进一步的信息可参看―:help 'mouse'‖、―:help mouse-using‖和―:help scroll-mouse-wheel‖。
特别需要值得一提的是,在远程访问 Linux 系统时也是可以使用鼠标的。
如果使用 X Window 系统,自然不必说;而使用 SSH 远程连接时,大部分 Linux 下的终端客户程序,如 XTERM、GNOME-Terminal [13]、较新版本的 Konsole [14],以及 Windows 下的 PuTTY,支持鼠标的使用:你只需简单地启动 Vim、执行一句―:set mouse=a‖就可以了(当然,也可以把上面的语句去掉起始的冒号放到 .vimrc 文件中)。