Vi常用命令
vi操作命令大全完整版

v i操作命令大全HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】一vi的操作模式vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。
在输入模式下,用户可输入文本资料。
在指令模式下,可进行删除、修改等各种编辑动作。
在输入模式下,按Esc键切换到指令模式下。
在指令模式下,按输入指令(i、a、o等)进入输入模式。
二进入vi$ vi filename直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename以只读方式打开文件filename三指令模式3.1进入输入模式a 在当前游标之后输入A 在当前行之末输入i 在当前游标之前输入I 在当前行之首输入o 在当前行之下新增一行,并在新增行输入O 在当前行之上新增一行,并在新增行输入输入结束后,按Esc键退出输入模式。
3.2游标移动h 向左移动一个字元 l 向右移动一个字元 j 向下移动一个字元 k 向上移动一个字元 b 左移一个单词,至词首 w 右移一个单词,至词尾 0 移到当前行行首 $ 移到当前行行尾 + 移至下一行的行首 - 移至上一行的行首 H 移至视窗的第一行 M 移至视窗的中间一行 L 移至视窗的最后一行 G 移至该文件的最后一行 nG 移至该文档的第n行 n+ 下移n行 n- 上移n 行3.3视窗移动*<Ctrl> + f 视窗下卷一页 *<Ctrl> + b 视窗上卷一页 <Ctrl> + d 视窗下卷半页<Ctrl> + u 视窗上卷半页 * <Ctrl> + e 视窗下卷一行 * <Ctrl> + y 视窗上卷一行3.4删除操作x 删除游标所在字元 X 删除游标前一字元 dw 从游标当前位置开始向后删除一个单词 db 从游标当前位置开始向前删除一个单词 d0 从行首删除至当前游标位置 d$ 从游标当前位置删除至行尾 dd 删除游标所在行 D 同d$3.5修改操作s 修改游标所在字元,修改完成后按Esc键结束 S 修改整行内容,修改完成后按Esc键结束 r 替换当前游标所在字元 R 进入替换状态,直至按Esc键结束 cw 修改一个单词(从游标位置至词尾) cb 修改一个单词(从词首至游标位置) cc 修改整行内容,完成后按Esc 键结束,同S c0 修改行首至游标位置的内容 c$ 修改游标位置至行尾的内容 ~ 游标所在字元大小写切换3.6指令重复在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。
Ubuntu中vi常用命令

Ubuntu中vi常⽤命令
在Ubuntu中经常需要修改某些⽂件,这⾥对vi中的⼀些常⽤操作作⼀下总结。
1、进⼊vi命令
vi filename: 打开或新建⽂件,并将光标置于第⼀⾏⾸
进⼊⽂件后,处于命令⾏模式(command mode)
2、切换为命令⾏模式
按ESC键
3、插⼊模式(Insert mode)
在命令⾏模式(command mode)下按⼀下字母
i在光标之前插⼊;
a在光标之后插⼊;
I在光标所在⾏的⾏⾸插⼊;
A在光标所在⾏的⾏末插⼊;
o在光标所在的⾏的上⾯插⼊⼀⾏;
O在光标所在的⾏的下⾯插⼊⼀⾏;
s删除光标后的⼀个字符,然后进⼊插⼊模式;
S删除光标所在的⾏,然后进⼊插⼊模式;
4、删除模式
在命令⾏模式(command mode)下按⼀下字母
x删除光标所在的⼀个字符;
dd删除⼀⾏;
#x 删除⼏个字符,#表⽰数字,⽐如3x;
dw 删除⼀个单词;
#dw 删除⼏个单词,#⽤数字表⽰,⽐如3dw表⽰删除三个单词;
#dd 删除多个⾏,#代表数字,⽐如3dd 表⽰删除光标⾏及光标的下两⾏;
d$ 删除光标到⾏尾的内容;
J 清除光标所处的⾏与上⼀⾏之间的空格,把光标⾏和上⼀⾏接在⼀起;
5、替换
在命令⾏模式(command mode)下按⼀下字母
r替换光标所在处的字符
R替换光标所到之处的字符,直到按下「ESC」键为⽌
6、退出
:wq!或者:x保存修改并退出
:q!不保存修改退出。
vi的常用命令

vi的常用命令
vi是Linux系统中一种常用的文本编辑器,它可以通过命令行界面进行操作。
对于初学者来说,掌握一些vi的常用命令是必不可少的。
下面是一些常见的vi命令:
1.打开文件:vi filename
2.保存文件:先按Esc键退出编辑模式,然后输入:wq
3.放弃修改:先按Esc键退出编辑模式,然后输入:q!
4.光标移动:
h:左移一个字符
j:下移一行
k:上移一行
l:右移一个字符
5.删除字符:
x:删除光标所在的字符
dd:删除光标所在的一整行
6.撤销上一步操作:u
7.查找字符:
/char:查找字符char(向下查找)
:查找字符char(向上查找)
n:继续查找下一个匹配项
N:继续查找上一个匹配项
8.替换字符:
:r filename:将filename文件的内容插入到当前光标所在位置 :s/old/new/g:将当前行的old替换为new
:%s/old/new/g:将整个文件中的old替换为new
以上是一些vi的常用命令,掌握了这些命令后,你可以更加方便地使用vi编辑器进行文本编辑。
VI常用命令

VI常用命令整理1、复制多行,并粘贴(命令模式下)1)将光标定位于想开始复制的行,然后输入想要复制的行数:如3,然后输入yy2)定位到需要粘贴到的前一行,输入p2、删除多行(命令模式下)1)将光标定位于想要开始删除的行,然后输入想要删除的行数:如3,然后输入dd说明:其实这个操作是剪切操作,如果需要将刚才删除的行粘贴到另外一个地方,则定位到需要粘贴到的前一行,输入p3、保存退出操作(命令模式下)保存到一个新文件:w filename (输入“w filename”,将文章存入指定的文件名filename)没有修改任何内容,退出:q已修改内容,但不希望保存,强制退出:q!保存并退出命令:x或wqx和wq的区别:wq强制性写入文件并退出。
即使文件没有被修改也强制写入,并更新文件的修改时间。
:x写入文件并退出。
仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。
这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。
因为文件即使没有修改,":wq"强制更新文件的修改时间,这样会让make编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。
这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。
4、翻页操作向文件尾翻页命令:Ctrl+f 向文件尾翻半页命令:Ctrl+d向文件首翻页命令:Ctrl+b 向文件首翻半页命令:Ctrl+u5、替换光标所在字符命令:r6、行内快数跳转^或0移动到本行行首$移动到本行行尾显示行号和取消行号(末行模式使用)set nu显示行号set nonu取消行号7、在命令模式下,使用以下命令可以快速的在行间跳转1G跳转到文件首行或gg(这个是自己试验出来的)G跳转到尾行(shift+g)#G跳转到文件的#行8、进入输入模式i: 插入,从目前光标所在之处插入所输入的文字。
a: 增加,目前光标所在的下一个字开始输入文字。
Linux,unix, vi常用系统命令

Linux系统常用命令整理一、系统操作pwd*:*显示用户当前所在目录。
ps*:*查看进程,参数auxkill*:*杀进程,参数-9 PIDuname*:*参数-r查看版本信息,-a查看版本详细信息df:-hl 查看磁盘空间reboot*:*重启系统。
halt*:*关机。
su*:*用于不同用户间的切换,例:如果登录为user1,要切换到user2,只要用如下命令即可:su user2,然后系统提示输入user2的口令,输入正确的口令切换到user2,操作完成后用exit命令返回到user1。
如果输入su不带用户名,则系统提示输入根口令,输入正确可切换到根用户。
如果是根用户,使用su可以成为系统上任何用户而不需要口令。
source*:*source命令也称点命令,也就是一个点符号(.),通常用于重新执行刚修改的初始化文件,使之立即生效,而不必重新启动。
用法:source filename或 . filenamehistory使用方式:history 用户用过的命令eg: history //可以显示用户过去使用的命令!!使用方式:!! 执行最近一次的命令二、文件操作mkdir*:*建立目录。
du:-sh 查看当前文件夹大小head*:*文件查看,如:head -5 文件名,可以查看文件前5行。
tail*:*文件查看,如:tail -5 文件名,可以查看后5行,使用-f参数可以动态查看文件变化。
rm*:*删除文件或目录,rm会强制删除文件,如果想在删除时提示确认,可以使用-i参数,如果要删除目录,可以使用-r参数,使用-r参数每删一个目录或文件都会给出提示,响应每个提示是不现实的,这时可以使用-rf参数强制删除目录,这样即使用了-i参数也是无效的。
mv*:*用于移动文件和更名文件,如mv ye.txt /hom e是将当前目录下的ye.txt移动到/home目录下;mv ye.txt ye1.txt是将ye.txt文件改名为ye1.txt,mv也可以一次移动多个文件,类似于cp使令。
vi编辑器常用的命令及快捷键

ttext 在当前行向前查找text,并将光标定位在text的第一个字符
Ttext 在当前行向后查找text,并将光标定位在text的第一个字符
vi的状态
选项 作用
:.= 打印当前行的行号
:= 打印文件中的行数
^g 显示文件名、当前的行号、文件的总行数和文件位置的百分比
E 移到下一个字的结尾,忽略标点符号
( 移到句子的开头
) 移到句子的结尾
{ 移到段落的开头
} 移到下一个段落的开头
x 删除光标处的字符,可以在x前加上需要删除的字符数目
nx 从当前光标处往后删除n个字符
X 删除光标前的字符,可以在X前加上需要删除的字符数目
nX 从当前光标处往前删除n个字符
0或| 移到当前行的第一列
n| 移到当前行的第n列
^ 移到当前行的第一个非空字符
$ 移到当前行的最后一个字符
+或return 移到下一行的第一个字符
B 移到前一个字的开头,忽略标点符号
L 移到屏幕的最后一行
M 移到屏幕的中间一行
H 移到屏幕的第一行
e 移到下一个字的结尾
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
:s/oldtext/newtext 用newtext替换oldtext
:m,ns/oldtext/newtext 在m行通过n,用newtext替换oldtext
在vi中复制文本
命令 复制操作
yy 将当前行的内容放入临时缓冲区
nyy 将n行的内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
vi指令大全

Vi指令大全1 进入vi的命令2 移动光标类命令3 屏幕翻滚类命令4 插入文本类命令5 删除命令6 搜索及替换命令7 选项设置8 最后行方式命令9 寄存器操作进入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: 从光标开始处向文件尾搜索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替换选项设置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: 取出寄存器?中的内容并将其放到光标位置处。
Linux 中 V(Vim)常用命令使用说明

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退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进入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。
跳至指定的行Ctrl + g列出光标所在行的行号。
#G:例如,15G,表示移动光标至文章的第15行行首14.光标控制k:上移nk 上移n行j:下移nj 下移n行将光标移到第n行,按下mk将光标移到第m行,按下"ay'k即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
zz 将当前行置于屏幕中央zt 将当前行置于屏幕顶端zb 将当前行置于屏幕底端编辑插入文本类命令i :在光标前I :在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行J 删除换行符u 取消上次操作ctr-R 重做c 修改指定的内容,和d相似p 将删除缓冲区中的内容插入光标当前的位置y 复制vi a b c:n跳至下一个文件,:e#回到刚才编辑的文件。
比如当前编辑文件为a,:n跳至b,再:n跳至c,:e#回到b,想回到a的话用:ea打开一个,vi 文件名然后在vi的命令输入状态下输入:sp 另外一个文件的路径及文件名如此就可以在一个窗口打开3个文件了。
可以使用ctrl +两次按w在3个文件中切换:edit 编辑一个新的文件:previous 打开文件列表中的前一个文件:next 打开文件列表中的后一个文件:args 指定一个文件列表:saveas 给文件改名:file 给正在编辑的文件改名,但不保存:split 将窗口分成上下两个窗口:vsplit 将窗口分成左右两个窗口:split 文件为制定的文件打开新窗口:new 打开新窗口,以及一个无名的缓冲区:close 关闭窗口ctr-w w 切换窗口ctr-w [hjkl] 切换到窗口ctr-w [HJKL] 移动窗口:only 只保存当前窗口,其他窗口关闭ctw-w + 增加当前窗口高度ctw-w - 减小当前窗口高度:qall 所有的窗口都退出:wall 所有的窗口内容都写入文件取消上一命令(Undo)重复命令(Redo)重复命令只能在命令模式下工作,在该模式下按“.”键既可。
执行一个重复命令时,其结果是依赖于光标当前位置的。
取消上一命令(Undo)重复命令(Redo)重复命令只能在命令模式下工作,在该模式下按“.”键既可。
执行一个重复命令时,其结果是依赖于光标当前位置的。
fx 往右移动到x 字元上Fx 往左移动到x 字元上tx 往右移动到x 字元前Tx 往左移动到x 字元前; 配合f&t 使用,重复一次, 配合f&t 使用,反方向重复一次/string 往右移动到有string 的地方?string 往左移动到有string 的地方n 配合/&? 使用,重复一次N 配合/&? 使用,反方向重复一次d 删除(delete)y 复制(yank)p 放置(put)c 修改(change)x 删除光标下的字符("dl"的缩写)X 删除光标前的字符("dh"的缩写)D 从当前位置删除到行尾("d$"的缩写)dw 从当前位置删除到下一个单词开头db 从当前位置删除到前一个单词的开头diw 删除光标上的单词(不包括空白字符)daw 删除光标上的单词(包括空白字符)dG 删除到文末dgg 删除到文首如果你用"c" 代替"d",这会变成修改命令;而改用"y",则变成拷贝命令「cw」:更改光标所在处的字到字尾处「c#w」:例如,「c3w」表示更改3个字复制「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
daB 删除{}及其内的内容(在非v可视模式下)diB 删除{}中的内容ab 选择()中的内容ib 选择()中的内容( 不含() )aB 选择{}中的内容iB 选择{}中的内容( 不含{} )·变量定位gd 转到光标下局部变量的定义处Gd 转到光标下全局变量的定义处:r filename 将文件filename 插入在当前行之下复制与剪切xp 交换前后两个字符的位置ddp 上下两行的位置交换:g/fred/t$ 拷贝行,从fred到文件末尾(EOF)删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本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替换/ 向后搜索? 向前搜索`` 跳转到前一个位置`a 跳转到标记为a的位置ma 将光标的当前位置标记为a`[ 跳转到最后一次修改的起始位置`] 跳转到最后一次修改的结束位置`" 跳转到上次编辑该文件时光标最后停留的位置:s 替换:substitute 替换:%s/a/a/c 对所有行替换:m,ns/a/a/c 对从m到n行替换rc 用c 替换光标所指向的当前字符nrc 用c 替换光标所指向的前n 个字符5rc 用c 替换光标所指向的前5 个字符x 删除光标所指向的当前字符nx 删除光标所指向的前n 个字符3x 删除光标所指向的前3 个字符dw 删除光标右侧的字ndw 删除光标右侧的n 个字3dw 删除光标右侧的3 个字db 删除光标左侧的字ndb 删除光标左侧的n 个字5db 删除光标左侧的5 个字dd 删除光标所在行,并去除空隙ndd 删除n 行内容,并去除空隙3dd 删除3 行内容,并去除空隙从正文中删除的内容(如字符、字或行)并没有真正丢失,而是被剪切并复制到了一个内存缓冲区中。
用户可将其粘贴到正文中的指定位置。
完成这一操作的命令是:p 小写字母p,将缓冲区的内容粘贴到光标的后面P 大写字母P,将缓冲区的内容粘贴到光标的前面yy 复制当前行到内存缓冲区nyy 复制n 行内容到内存缓冲区5yy 复制5 行内容到内存缓冲区/str1 正向搜索字符串str1n 继续搜索,找出str1 字符串下次出现的位置?str2 反向搜索字符串str2给出一个字符串,可以通过搜索该字符串到达指定行。
如果希望进行正向搜索,将待搜索的字符串置于两个“/”之间;如果希望反向搜索,则将字符串放在两个“?”之间。
例如::/str/ 正向搜索,将光标移到下一个包含字符串str 的行:?str? 反向搜索,将光标移到上一个包含字符串str 的行:/str/w file 正向搜索,并将第一个包含字符串str 的行写入file文件:/str1/,/str2/w file 正向搜索,并将包含字符串str1 的行至包含字符串str2 的行写正文替换利用:s 命令可以实现字符串的替换。
具体的用法包括::s/str1/str2/ 用字符串str2 替换行中首次出现的字符串str1:s/str1/str2/g 用字符串str2 替换行中所有出现的字符串str1:.,$ s/str1/str2/g 用字符串str2 替换正文当前行到末尾所有出现的字符串str1:1,$ s/str1/str2/g 用字符串str2 替换正文中所有出现的字符串str1:g/str1/s//str2/g 功能同上从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加g,表示只对搜索字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。