Vi的操作
Linux下的vi编辑器的简单使用操作方法

Linux下的vi编辑器的简单使⽤操作⽅法vi编辑器的使⽤:vi编辑器有三种基本⼯作模式,分别是命令⾏模式、⽂本输⼊模式、末⾏模式。
1.命令⾏模式该模式是进⼊vi编辑器后的默认模式,任何时候,不管⽤户处于何种模式,按下esc键即可进⼊命令⾏模式。
在命令⾏模式下,可以输⼊vi命令来管理⾃⼰的⽂档。
此时在键盘上输⼊任何字符都被当作编辑命令,⽽不是输⼊字符。
输⼊的字符并不会在屏幕上显⽰,若是合法的vi命令,则会完成相应的动作,否则会响铃报警。
2.⽂本输⼊模式命令⾏模式下输⼊以下⼏个命令则会进⼊⽂本输⼊模式。
i: 插⼊命令,会将⽂本插⼊到光标所在位置之前I: 插⼊命令,会将⽂本插⼊到光标所在⾏的⾏⾸a: 追加⽂本命令,会将⽂本追加到光标当前位置之后A: 追加⽂本命令,会将⽂本追加到光标所在⾏的末尾o: 空⾏插⼊命令,将在光标所在⾏的下⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸O: 空⾏插⼊命令,将在光标所在⾏的上⾯插⼊⼀个空⾏,并将光标置于该⾏的⾏⾸c: 修改命令r: 取代命令s: 替换命令在该模式下,⽤户输⼊的任何字符都被当做⽂件内容保存起来,并显⽰在屏幕上。
3.末⾏模式命令⾏模式下,⽤户按下:键即可进⼊末⾏模式,此时vi会在显⽰窗⼝的最后⼀⾏显⽰⼀个:作为末⾏模式的说明符,等待⽤户输⼊命令。
多数⽂件管理命令都是在此模式下执⾏的。
末⾏命令执⾏完后,vi会⾃动回到命令⾏模式4.vi⽂本的删除命令:vi编辑器可以在编辑模式和命令⾏模式下删除⽂本。
命令⾏模式下,vi常⽤删除命令x 删除光标处的字符。
若在x之前加上⼀个数字n,则删除从光标所在位置开始向右的n个字符。
X 删除光标前⾯的字符。
若在X之前加上⼀个数字n,则删除从光标前⾯那个字符开始向左的n个字符。
dd 删除光标所在的整⾏。
前⾯加上数字n,则删除当前⾏以及其后的n-1⾏。
D 或 d$ 删除从光标所在处开始到⾏尾的内容。
d( 删除到上⼀句开始的所有字符d) 删除到下⼀句开始的所有字符d{ 删除到上⼀段开始的所有字符d} 删除到下⼀段开始的所有字符d0 删除从光标前⼀个字符开始到⾏⾸的内容dw 删除⼀个单词。
vi编辑器命令行操作教案课程

vi编辑器命令行操作教案课程本教案课程将介绍如何使用vi编辑器在命令行下进行文本编辑。
vi编辑器是Unix和Linux系统中一个经典的文本编辑器,是大多数程序员和系统管理员必须掌握的技能之一。
课程大纲1. vi编辑器的基础知识和启动方法2. vi编辑器的三种编辑模式3. vi编辑器的基本命令4. 其他常用vi编辑器命令vi编辑器的基础知识和启动方法1. 什么是vi编辑器vi编辑器是Unix和Linux系统中的一个文本编辑器,它可以在终端窗口下进行文本编辑。
相比其他文本编辑器,使用vi编辑器可以更高效地在命令行下进行文本编辑。
2. 启动vi编辑器在命令行下输入 vi 加上要编辑的文件名即可启动vi编辑器。
例如:vi example.txtvi编辑器的三种编辑模式在vi编辑器中,有三种编辑模式:命令模式、插入模式和可视模式。
1. 命令模式打开vi编辑器时,默认进入命令模式。
在该模式下,可以使用一些命令对文本进行操作,例如复制、粘贴、查找、删除等操作。
2. 插入模式在命令模式下,按下i、a、o中的任意一个键即可进入插入模式。
在该模式下,可以直接输入文本内容,并使用退格键进行删除。
3. 可视模式在命令模式下,按下v键即可进入可视模式。
在该模式下,可以使用移动光标进行文本选择,然后对选中的文本进行复制、删除等操作。
vi编辑器的基本命令vi编辑器中常用的命令如下表所示:其他常用vi编辑器命令除了基本命令之外,还有一些常用的vi编辑器命令:总结掌握vi编辑器命令行操作是Unix和Linux系统中的一个重要的技能,通过本教案课程的研究,您将能够熟练使用vi编辑器进行文本编辑,并提高工作效率。
Vi指令

vi指令說明(完整版).vi 的操作模式==============vi 提供兩種操作模式:輸入模式(insert mode)和指令模式(command mode)。
當使用者進入 vi 後,即處在指令模式下,此刻鍵入之任何字元皆被視為指令。
在此模式下可進行刪除、修改等動作。
若要輸入資料,則需進入輸入模式。
.輸入模式=========如何進入輸入模式a (append) 由游標之後加入資料。
A 由該行之末加入資料。
i (insert) 由游標之前加入資料。
I 由該行之首加入資料。
o (open) 新增一行於該行之下供輸入資料之用。
O 新增一行於該行之上供輸入資料之用。
如何離開輸入模式《ESC》結束輸入模式。
.指令模式=========游標之移動h 向左移一個字元。
j 向上移一個字元。
k 向下移一個字元。
l 向右移一個字元。
0 移至該行之首$ 移至該行之末。
^ 移至該行的第一個字元處。
H 移至視窗的第一列。
M 移至視窗的中間那列。
L 移至視窗的最後一列。
G 移至該檔案的最後一列。
+ 移至下一列的第一個字元處。
- 移至上一列的第一個字元處。
( 移至該句之首。
(註一)) 移至該句之末。
{ 移至該段落之首。
(註二)} 移至該段落之末。
nG 移至該檔案的第 n 列。
n+ 移至游標所在位置之後的第 n 列。
n- 移至游標所在位置之前的第 n 列。
<Ctrl><g> 會顯示該行之行號、檔案名稱、檔案中最末行之行號、游標所在行號佔總行號之百分比。
註一:句子(sentence)在vi中是指以『!』、『.』或『?』結束的一串字。
註二:段落(paragraph)在vi中是指以空白行隔開的文字。
.視窗的移動===========<Ctrl><f> 視窗往下捲一頁。
<Ctrl><b> 視窗往上捲一頁。
<Ctrl><d> 視窗往下捲半頁。
vi操作

Vi各种快捷方式1、可直接输入的命令ctrl+v:进入列模式编辑;shift+g:跳至文档末尾;v:列模式(移动光标,全选);u:撤销;Ctrl+r:恢复刚才撤销的动作;Ctrl+w+w:切换到下一个窗口(多窗口操作);2、以冒号“:”开头的命令:set nu:显示行号:set nonu:取消行号显示:%s/字符串1/字符串2/g:全局替换,字符串2替换字符串1注:#也可以作为分隔符:%!sort -u:删除重复行:set noh:取消高亮显示3、以斜杠“/”开头的命令/输入字符:查找内容。
4、行缩进在命令格式下,按住shift并连续点击两次>,不进入插入模式即可实现行缩进行操作1、删除行刪除沒有內容的空行:g/^$/d刪除包含有空格組成的空行:g/^\s*$/d以空格或tab開頭到結尾的空行:g/^[ |\t]*$/d:%s/r//g 删除DOS方式的回车^M:%s= *$== 删除行尾空白:%s/^(.*)n1/1$/ 删除重复行:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf:%s/<!--_.{-}-->//又是删除多行注释(咦?为什么要说「又」呢?):g/s*^$/d 删除所有空行:这个好用有没有人用过还有其他的方法吗?:g!/^dd/d 删除不含字符串'dd'的行:v/^dd/d 同上(译释:v == g!,就是不匹配!):g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行:v/./.,/./-1join 压缩空行:g/^$/,/./-j 压缩空行ndw 或ndW 删除光标处开始及其后的n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后n-1 行。
x 或X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作J 把下一行合并到当前行尾V 选择一行^V 按下^V后即可进行矩形的选择了aw 选择单词iw 内部单词(无空格)as 选择句子is 选择句子(无空格)ap 选择段落ip 选择段落(无空格)D 删除到行尾x,y 删除与复制包含高亮区dl 删除当前字符(与x命令功能相同)d0 删除到某一行的开始位置d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)dw 删除到某个单词的结尾位置d3w 删除到第三个单词的结尾位置db 删除到某个单词的开始位置dW 删除到某个以空格作为分隔符的单词的结尾位置dB 删除到某个以空格作为分隔符的单词的开始位置d7B 删除到前面7个以空格作为分隔符的单词的开始位置d)删除到某个语句的结尾位置d4)删除到第四个语句的结尾位置d(删除到某个语句的开始位置d)删除到某个段落的结尾位置d{ 删除到某个段落的开始位置d7{ 删除到当前段落起始位置之前的第7个段落位置dd 删除当前行d/text 删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容dtc 删除当前行直到下一个字符“c”所出现位置之间的内容D 删除到某一行的结尾d$ 删除到某一行的结尾5dd 删除从当前行所开始的5行内容dL 删除直到屏幕上最后一行的内容dH 删除直到屏幕上第一行的内容dG 删除直到工作缓存区结尾的内容d1G 删除直到工作缓存区开始的内容vi 列操作1、对列插入:1 定位光标位置2 ctrl+v进入visual-block模式(选定光标所在行对应的列)3 j移动光标选择列编辑行(按shift+g移动到文件底部)4 输入大写I5 输入输入要插入的文本6 esc7 保存完成eg:文件内容如下:123455678967755hghgh......45975现在需在第一列插入#,将光标定在第一行第一列处,ctrl+v选定第一列,输入命令I,之后按shift+g,光标跳至最后一行的第一列,此时选定了整个文件的第一列,输入要插入的字符#,此时,字符#只会显示在第一行第一列的位置上,按ESC退出,则其余行的第一列的#将显示出来。
Vi操作说明

Vi操作说明一. 模式说明1.两种模式:Command mode(命令模式):用于输入命令。
Insert mode(插入模式):用于插入文本。
2.模式之间的切换:二. 操作说明1.文档的操作1)打开文档:vi fn…fn 打开或创建文档(多个文档时候用 :n 切换到下一个文档)。
vi +n | + fn 打开文档件并置光标于第n行或最后一行。
vi +/pattern fn 打开文档并置光标于第一个与pattern匹配的字串处。
2)保存文档::w 保存当前文档:w! 强制保存3)退出文档::q 退出vi (文档如果有更改会提示是否保存):q! 不保存文件并退出:x 保存文件并退出4)恢复文档:vi –r fn 恢复文档fn 至上次正在编辑时的系统崩溃点。
5)删除文档:rm fn … fn 删除文档fn或多个6)重命名文档:mv fn_old fn_new 用fn_new重命名文档fn_old7)拷贝文档:cp ../fn_sou ../fn_des 拷贝文档fn_sou至 fn_des,文档可以指定定绝对路径或相对路径2.文本的操作及编辑命令1)光标移动:h,j,k,l 左,下,上,右移一个字符b | B ,w | W 左,右移一个字至字首e | E 右移一个字至字首) | ( , } | { 句尾|句首,段尾|段首n+ | n- | nG 下移n行|上移n行|移至第n行行首G 移至文档尾行0 | $ 移至光标所在行首|行尾H | M | L 移至屏幕顶|中|尾行行首ctrl+u | ctrl+d 向文档首|尾翻半屏ctrl+f | ctrl+b 向文档首|尾翻一屏2)插入命令:i | I 在光标前插入|在当前行首插入a | A 在光标后插入|在当前行首插入o | O 在当前行之下|之上新增加一行r | R 替换当前字符|替换当前字符及其后的字符至按ESC键ns | nS 光标所在位置开始以输入文本代替指定数目的字符|行ncw | ncW 修改指定数目的字ncc 修改指定数目的行u 撤销修改或删除3)删除命令:nx | nX 删除光标处字符及其后 | 前的n-1个字符ndw | ndW 删除光标处开始及其后的n-1个字d0 | d$ 删除至行首|尾ndd 删除当前行及其后的n-1行: n1,n2 d 将n1行到n2行之间的内容删除4)搜索命令:/pattern | ?pattern 从光标处开始向文档尾 | 首部搜索patternn | N 在同 | 反向上重复上一次搜索命令5)替换命令::n1,n2s/p1/p2/g 将第n1行至第n2行中所有的p1用p2代替注:A. 其中n1,n2的几种特殊情况a.可以不指定,如::s/p1/p2/g 将当前行中所有p1替换成p2b.可以只指定n2,如: :,n2s/p1/p2/g 将当前行至第n2行中所有p1替换成p2c.特殊范围: :0,$s/p1/p2/g 将首行至尾行中所有p1替换成p2其中 0,$ 可以换成 %。
vi编辑器使用精编

vi编辑器使用精编
1. 打开文件:使用“vi”命令,后跟文件名,例如“vi filename”。
如果文件不存在,vi将创建一个新文件。
5.在文件中移动光标:使用方向键或h(左)、j(下)、k(上)、
l(右)键移动光标。
8. 复制和粘贴文本:将光标移动到要复制的文本行或字符上,在命
令模式下按下“yy”命令复制整行,或按下“y”命令复制光标后的字符。
将光标移动到要粘贴的位置,在命令模式下按下“p”命令粘贴复制的文本。
9. 撤销和重做操作:在命令模式下,按下“u”键撤销上一次操作。
按下“Ctrl + r”键重做操作。
10. 设置缩进:在命令模式下,输入“:set tabstop=4”命令可以设
置制表符的宽度为4个空格(可以根据需求更改数字)。
vi指令说明(完整版)
vi指令说明(完整版).vi 的操作模式==============vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。
当用户进入vi 后,即处在指令模式下,此刻键入之任何字符皆被视为指令。
在此模式下可进行删除、修改等动作。
若要输入数据,则需进入输入模式。
.输入模式=========如何进入输入模式a (append) 由光标之后加入数据。
A 由该行之末加入数据。
i (insert) 由光标之前加入数据。
I 由该行之首加入数据。
o (open) 新增一行于该行之下供输入数据之用。
O 新增一行于该行之上供输入数据之用。
如何离开输入模式《ESC》结束输入模式。
.指令模式=========光标之移动h 向左移一个字符。
j 向上移一个字符。
k 向下移一个字符。
l 向右移一个字符。
0 移至该行之首$ 移至该行之末。
^ 移至该行的第一个字符处。
H 移至窗口的第一列。
M 移至窗口的中间那列。
L 移至窗口的最后一列。
G 移至该档案的最后一列。
+ 移至下一列的第一个字符处。
- 移至上一列的第一个字符处。
( 移至该句之首。
(注一)) 移至该句之末。
{ 移至该段落之首。
(注二)} 移至该段落之末。
nG 移至该档案的第n 列。
n+ 移至光标所在位置之后的第n 列。
n- 移至光标所在位置之前的第n 列。
<Ctrl><g> 会显示该行之行号、文件名、档案中最末行之行号、游标所在行号占总行号之百分比。
注一:句子(sentence)在vi中是指以『!』、『.』或『?』结束的一串字。
注二:段落(paragraph)在vi中是指以空白行隔开的文字。
.窗口的移动===========<Ctrl><f> 窗口往下卷一页。
<Ctrl><b> 窗口往上卷一页。
<Ctrl><d> 窗口往下卷半页。
<Ctrl><u> 窗口往上卷半页。
vi操作手册
UNIX下VI操作手册编辑一个文本文件是经常使用到的计算机操作.我们想做的大多数事情都需要使用某种文件编辑。
文本编辑器会方便文件的创建和修改。
这些文件也许会包含备记录、日程表、程序源代码等等。
文本编辑器是简化的字处理器,就不存在字处理器所具有的黑体、居中、下划线等等这印刷上的特点。
当然每一种操作系统软件都至少支持一种文本编辑器。
编辑器通常有两种方式:行编辑器:一种每次修改只能在一行之中或组行之间进行的方式.全屏编辑器:只能显示正在编辑的那一屏进行修改,而且立刻能在屏幕上显示出来。
当然UNIX中也有文本编辑器,下面就来介绍一下UNIX支持的编辑器:编辑器名称类型ed 最初的行编辑ex 在ed上扩展更为复杂的编辑器vi 可视化的全屏编辑器emacs 公共域的全屏编辑器下面就来具体介绍vi编辑器:vi的原意是“Visual",它是一个立即反应的编辑程式,也就是说可以立刻看到操作结果。
vi是大多数UNIX系统都支持的全屏文本编辑器。
它是由行编辑器ex发展而来的.它也两个版本:view编辑器和vedit编辑器。
其中view编辑器对vi设了只读标志,而vedit编辑器对vi做了几个标志设置,同时也简化了vi的使用。
vi有两种基本工作模式,文本输入模式和命令模式.文本输入模式即是用来输入文字资料,而命令模式则是用来下达一些编排文件、存档、以及离开vi等等的操作命令.当执行vi后,会先进入命令模式,此时输入的任何字符都视为命令.Vi进入vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename.。
vi的基本操作
vi的基本操作vi的基本操作⼀、实验⽬的1.掌握vi编辑器的三种⼯作模式;2.学会vi编辑器的启动、保存和退出;3.掌握命令模式下的操作。
⼆、实验环境计算机⼀台,内存1GB,且安装有VMware Workstation 7,在虚拟机中安装Red Hat Enterprise Linux 5 Server。
三、实验内容1.使⽤vi编辑器创建⽂本⽂件/root/v,⽂件内容为Hello Linux,最后保存退出;(1)vi v(2)按I显⽰ ~ -- INSERT --(3)Hello Linux(4)按ESC(5)输⼊:(6)wq//保存并退出[root@localhost ~]# cat vHello Linux2.插⼊2011年⽇历,并把该⽂件名改为2011.txt;(1)cal 2011 >>v /*2011后⾯必须有空格,否则命令不能完成*/[root@localhost ~]# cal 2011 >>v[root@localhost ~]# cat vHello Linux/*显⽰2011年的⽇历*/(2)mv v 2011.txt[root@localhost ~]# cat 2011.txt显⽰同⽂件v相同的内容3.把4、5、6⽉的⽇历整体向右移动⼀个制表位;(1)vi 2011.txt(2)输⼊:set nu 回车//显⽰了⾏号(4)输⼊:12 回车 /*跳到12⾏*/(5)输⼊ 8>>显⽰输⼊:wq保存退出4.把该⽇历的标题“2011”改为“2011年全年⽇历”;(1)光标移⾄2011(2)按i(3)将⽂字改为2011年全年⽇历5.删除1、2、3⽉的⽇历,然后予以恢复;(1)按ESC(2)输⼊:4回车光标指向⽂件第4⾏(3)输⼊8dd(4)u显⽰6.把7、8、9⽉的⽇历整体移到⽇历的最后⾯;(1):20光标到达 7、8、9⽉起始⾏(2)8yy//对7、8、9⽉的⽇历这8⾏进⾏复制(3)G //光标移⾄⽂末(4)p 粘贴到⽂末(5):20(6)8dd //将原来位置的7、8、9⽉⽇历删除显⽰7.依次检索字符串“30”,如果某个⽉的最后⼀天为“30”,则删除该字符串“30”;(1)输⼊:(2)/30 //光标定位到⽇历中的30(3)n //光标定位到查找的下⼀个30(4)x //删除光标所在的数字3(5)x//删除光标所在的数字0重复(3)(4)(5)步8.在该vi编辑器中统计该⽂件的⼤⼩。
VI操作命令整理
移动光标
h或向左箭头键
光标向左移动一个字符
j或向下箭头键
光标向下移动一个字符
k或向上箭头键
光标向上移动一个字符
l或向右箭头键
光标向右移动一个字符
[Ctrl] + [f]
屏幕『向前』移动一页(常用)
[Ctrl] + [b]
屏幕『向后』移动一页(常用)
[Ctrl] + [d]
屏幕『向前』移动半页
:w
将编辑的数据写入硬盘档案中(常用)
:w!
若文件属性为『只读』时,强制写入该档案
:q
离开vi(常用)
:q!
若曾修改过档案,又不想储存,使用!为强制离开不储存档案。
:wq
储存后离开,若为:wq!则为强制储存后离开(常用)
:e!
将文件还原到最原始的状态!
ZZ
若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!
0或^
这是数字『0』:移动到这一行的最前面字符处(常用)
$
移动到这一行的最后面字符处(常用)
H
光标移动到这个屏幕的最上方那一行
M
光标移动到这个屏幕的中央那一行
L
光标移动到这个屏幕的最下方那一行
G
移动到这个档案的最后一行(常用)
nG
移动到这个档案的第n行。例如20G则会移动到这个档案的20行(可配合:set nu)
删除、复制与贴上
x, X
x为向后删除一个字符,X为向前删除一个字符(常用)
nx
向后删除n个字符
dw
删除当前光标处的单词,包括词尾空格
de
删除当前光标处的单词
d^
删除当前光标到行首的所有字符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)文件操作 vi FileName 打开文件 FileName,并将光标置于第一行首。 vi +n FileName 打开文件 FileName,并将光标置于第 n 行首。 vi + FileName 打开文件 FileName,并将光标置于最后一行。 vi + /pattern File 打开文件 File,并将光标置于其中第一个于 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 行下。 :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 选择{}中的内容( 不含{} )
·语法提示与自动补齐 ★ <C-N><C-P> 插入模式下的单词自动完成 ★ <C-X><C-L> 行自动完成(超级有用) ·设置ctags #ctags -f /usr/share/vim/vim63/funcs.tags -R /opt/j2sdk/src /usr/src/kernels/2.6.9-5.EL-i686
^p 自动补齐上下文已有相近项 ^n 自动补齐~/.tags中的相近函数 ^[ 显示~/.tags中的光标下的函数的原型, 按^t退出函数 :pta 函数名 预览窗口快速打开相应函数所在文件,并将光标定位在对应函数的开头 K 显示光标下的C函数的man说明手册
·变量定位 gd 转到光标下局部变量的定义处 Gd 转到光标下全局变量的定义处
·编译选项 :cn 命令会把你带到下一个出错地点,而不考虑它在什么文件里。 :cc 命令会向你显示当前错误的编译器输出信息; :cl 会生成一个列有项目所有错误的列表,以供浏览这些错误
3]光标移动 ·字符 h 光标左移一个字符。 l 光标右移一个字符。
·字 w 或 W 光标右移一个字至字首。 B 或 b 光标左移一个字至字首。 E 或 e 光标右移一个字至字尾。
·句} 光标移至句尾。 ( 光标移至句首。
·段) 光标移至段落开头。 { 光标移至段落结尾。
·行k 或 Ctrl+p 光标上移一行。 j 或 Ctrl+n 光标下移一行。 Enter 光标下移一行。 nG 光标移至第 n 行首。 n+ 光标下移 n 行。 n- 光标上移 n 行。 n$ 光标移至第 n 行尾。 0 光标移至当前行首。 $ 光标移至当前行尾。 ·屏幕 H 光标移至屏幕顶行。 M 光标移至屏幕中间行。 L 光标移至屏幕最后行。 Ctrl+u 向文件首翻半屏。 Ctrl+d 向文件尾翻半屏。 Ctrl+f 向文件尾翻一屏。 Ctrl+b 向文件首翻一屏。 nz 将第 n 行滚至屏幕顶部。不指定 n 时将当前行滚至屏幕顶。
4}插入 # 在文件中插入行号(不是显示行号,是插入!) ★:g/^/exec "s/^/".strpart(line(".")." ", 0, 4)
·光标 i 在光标前插入。 a 在光标后插入。
·行 I 在当前行首插入。 A 在当前行尾插入。 o 在当前行之下一新行插入。 O 在当前行之上新开一行插入。
5)替换 r 替换当前字符。 R 替换当前字符及其后的字符,直至按 ESC 键。 s 从当前光标位置处开始,以输入的文本代替指定数目的字符。 S 删除指定数目的行,并以所输入的文本代替。
6)修改 ncw 或 nCW 修改指定数目的字符。 nCC 修改指定数目的行。 :r filename 将文件 filename 插入在当前行之下
7)查找替换 /<C-R><C-W> 把狭义单词 <cword> 写到 搜索命令 行 /<C-R><C-A> 把广义单词 <cWORD> 写到 搜索命令 行
:g/str/s/str1/str2/g 第一个g表示对每一个包括s1的行都进行替换, 第二个g表示对每一行的所有进行替换 包括str的行所有的str1都用str2替换 :%s/f $/for$/g 将每一行尾部的“f ”(f键和空格键)替换为for :%s/^/mv /g 在每一行的头部添加“mv ”(mv键和空格键)
:s/fred/<c-r>a/g 替换fred成register a中的内容,呵呵
:g/<input|<form/p 显示含<input或<form的行 # 替换一个visual区域 # 选择一个区域,然后输入 :s/Emacs/Vim/ 等等,vim会自动进入:模式 :'<,'>s/Emacs/Vim/g 前面的'<,'>是vim自动添加的
# 在多个文档中搜索 :bufdo /searchstr :argdo /searchstr
复制与剪切 xp 交换前后两个字符的位置 ddp 上下两行的位置交换 :g/fred/t$ 拷贝行,从fred到文件末尾(EOF)
9)窗口操作 :vne [filename] :sp [filename] :S [filename] :new [filename] :^w + ^r 交换两个窗口的位置 ^w = 窗口等宽 :res -n 窗口高度减小n :res +n 窗口高度增大n :vert res -n :vert res +n
10)DOS格式文本转成Unix格式文本 :1,$s/^M//g
11)书签 在阅读和编写大的程序文件时,利用标记(书签)功能定位是十分有帮助的。
将光标移到想做标记的位置。假如做一个名为“debug1”的标记,那么用户可在命令模式下输入做标记的命令“mdebug1”,然后敲入回车键,一个名为“debug1”的标记就做好了。 接下来用户可以随意将光标移到其它的位置,当在命令模式下输入“`debug1”后,就能快速回到“debug1”的标记所在行的行首。
12)删除操作 :%s/r//g 删除DOS方式的回车^M :%s= *$== 删除行尾空白
:%s/^(.*)n1/1$/ 删除重复行 :%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf :%s/<!--_.{-}-->// 又是删除多行注释(咦?为什么要说「又」呢?) :g/^s*$/d 删除所有空行 :g!/^dd/d 删除不含字符串'dd'的行 :v/^dd/d 同上 (译释:v == g!,就是不匹配!)
:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行
:v/./.,/./-1join 压缩空行 :g/^$/,/./-j 压缩空行
ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。 d0 删至行首。 d$ 删至行尾。 ndd 删除当前行及其后 n-1 行。 x 或 X 删除一个字符。 Ctrl+u 删除输入方式下所输入的文本。 ^R 恢复u的操作 J 把下一行合并到当前行尾 V 选择一行 ^V 按下^V后即可进行矩形的选择了 aw 选择单词 iw 内部单词(无空格) as 选择句子 is 选择句子(无空格) ap 选择段落 ip 选择段落(无空格) D 删除到行尾 x,y 删除与复制包含高亮区
dl 删除当前字符(与x命令功能相同) d0 删除到某一行的开始位置 d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)