VI命令集精编
vim命令大全
vim命令⼤全命令历史以:和/开头的命令都有历史纪录,可以⾸先键⼊:或/然后按上下箭头来选择某个历史命令。
启动vim在命令⾏窗⼝中输⼊以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的⽂件⽂件命令打开单个⽂件vim file同时打开多个⽂件vim file1 file2 file3 ...在vim窗⼝中打开⼀个新⽂件:open file在新窗⼝中打开⽂件:split file切换到下⼀个⽂件:bn切换到上⼀个⽂件:bp查看当前打开的⽂件列表,当前正在编辑的⽂件会⽤[]括起来。
:args打开远程⽂件,⽐如ftp或者share folder:e ftp://192.168.10.76/abc.txt:e \\qadrive\test\1.txtvim的模式正常模式(按Esc或Ctrl+[进⼊)左下⾓显⽰⽂件名或为空插⼊模式(按i键进⼊)左下⾓显⽰--INSERT--可视模式(不知道如何进⼊)左下⾓显⽰--VISUAL--导航命令% 括号匹配插⼊命令i 在当前位置⽣前插⼊I 在当前⾏⾸插⼊a 在当前位置后插⼊A 在当前⾏尾插⼊o 在当前⾏之后插⼊⼀⾏O 在当前⾏之前插⼊⼀⾏查找命令/text 查找text,按n健查找下⼀个,按N健查找前⼀个。
text 查找text,反向查找,按n健查找下⼀个,按N健查找前⼀个。
vim中有⼀些特殊字符在查找时需要转义 .*[]^%/?~$:set ignorecase 忽略⼤⼩写的查找:set noignorecase 不忽略⼤⼩写的查找查找很长的词,如果⼀个词很长,键⼊⿇烦,可以将光标移动到该词上,按*或#键即可以该单词进⾏搜索,相当于/搜索。
⽽#命令相当于?搜索。
:set hlsearch ⾼亮搜索结果,所有结果都⾼亮显⽰,⽽不是只显⽰⼀个匹配。
:set nohlsearch 关闭⾼亮搜索显⽰:nohlsearch 关闭当前的⾼亮显⽰,如果再次搜索或者按下n或N键,则会再次⾼亮。
vim编辑器常用命令
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命令总结
AIX上对文件进行编辑通常使用vi命令,包括一些linux命令。
1.vi与view的区别vi打开文件后可直接进行编辑;view为以只读方式打开文件,也可以编辑,保存时使用w!保存或x!保存。
-----wq与x区别(wq与x的区别一个是强制写入,一个是当有修改时才写入。
)vi的自动补全:依次按esc键,\键补齐文件名;2.ctrl+z与ctrl+c的区别ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c是强制中断程序的执行,而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.例如:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘推出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件.用法:ps -f|grep view 找到对应的进程号fg+进程号即可恢复;3.touch 创建新文件4.mkdir -p 创建多级目录5.move -f 强制移动/重命名6.man 查看帮助7.chmod +x 文件名或chmod 777 文件名(计算方法:我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100 转换为十进制754)8.>> 为重定向追加>为重定向覆盖;9.cat为查看文件内容;10.clear 清空屏幕11.rm + 文件名平时最好用rm -f +文件名;rm -rf 命令尽量不要使用。
12.文件编辑:1)ESC模式下,大写Y为赋值一行,p为粘贴在光标所在行下一行;2)u为回退,AIX中只能回退一次,但linux中可回退多次操作之前;3)到行首的命令为shift+6 ^4)到行尾的命令为shift+4 $5)h j k l分别为左下上右移动光标(默认为1行,前加数字代表几行)6)e单词尾b单词首;M屏幕中间行H屏幕第一行L屏幕最尾行7)ctrl+u为向上翻半页;ctrl+d为向下翻半页;8)ctrl+b为向上翻整页;ctrl+f为向下翻整页;9)编辑单词时,c+w从单词首字母到尾字母变为编辑模式;10)dw为删除整个单词;11)o为从下一行开始插入;12)dd删除一行,前加数字为删几行;可以执行p将删除的行数粘贴在其他位置;13)>> 与<< 命令为缩进命令;14)}段尾{段首;15)s 替换当前字符16)x 删除当前字符;17)d+$ 删除到行尾d+^删除到行首;13.命令行模式:1)wq保存退出;2)w! 文件名表示另存为;3)e 或e! 刷新,将文件刷新至未保存之前的状态;4)/向下查找?向上查找;(n与shift+n)5)G为跳至文件末尾6)[[ 为跳到本函数头]]下一个函数头也可作为跳到文件头用7):! 为跳出文件编辑,在环境中执行如:!pwd8)1,20 d 表删除从第一行到第20行;9)set用法常用:set nu或set number显示行数;set nonu 或set nonumber关闭显示;10)替换::s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换11)从文件内查找含有待查找内容:find ./ -name“文件名(可用*代替)”|xargs grep 待查找内容grep 待查找内容目录/*(当前目录用”./”根目录为” / “)12)diff 文件1 文件2比较文件1与文件2的不同以> <区分可以diff t1 t2 > t3 将不同处输出至文件3中13)同一机器内即同一IP地址的环境下,不同用户间权限允许的情况下可用cp拷贝文件;14)Zjyw本地cd localpathftp命令ftp 对方地址用户名/密码cd 对方路径将本地文件上传对方路径:put获取文件到本地路径下:getpassive(主动模式)一般用二进制流传送文件:bin命令ftp命令内本地路径改变:lcd ~/muluQ:还有什么方法使光标左移一个字符和右移一个字符?除了方向键。
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次。
Vim命令列表
Vim命令列表操纵文件Vim命令动作:e filename 打开一个新文件,可以用TAB键自动补全:w filename 保存更改。
如果不指定文件名,Vim会存为你正在编辑的文件。
如果要存为不同的文件,需要指定文件名:q 退出Vim。
如果有未保存的更改,Vim会拒绝退出。
:q! 强制退出!:wq 写文件并退出:x 几乎和:wq一样,如果你修改了文件,它会写文件并退出。
如果你没有修改文件,Vim会不写文件直接退出。
文件内的移动These Vim commands and keys work both in command mode and visual mode.Vim命令动作j or Up Arrow 向上移动一行k or Down Arrow 向下移动一行l or Right Arrow 向右移动一个字符h or Left Arrow 向左移动一个字符e 移动到一个词(word)尾E 移动到白空格(whitespace)分隔的词尾b 移动到一个词(word)的开头B 移动到白空格(whitespace)分隔的词头0 移动到行首^ 移动到一行的首个非白空格的字符$ 移动到行尾H 移动到屏幕的第一行M 移动到屏幕的中间一行L 移动到屏幕的最后一行:n 跳至屏幕的第n行插入和替换文本Vim命令动作i 在光标之前插入I 在该行行首插入a 在光标之后插入A 在该行行尾插入o 在下一行新建一行并插入O 在上一行新建一行并插入C Change the rest of the current line.r 覆盖一个字符。
在覆盖完成以后,回到命令模式。
R 进入插入模式,但是不再是插入文本,而是覆盖文本。
跟word 里insert键的作用类似ESC 退出插入/改写模式,回到命令模式。
删除文本Vim命令动作x 删除光标后的字符X 删除光标前的字符dd or :d 删除当前行进入可视模式(Visual mode)Vim命令动作v 开始定义高亮字符,用定位键(j or 向下键等)来选择要高亮的文本。
Vi常用命令
进入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编辑器常用的命令及快捷键
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退出替换模式进入命令模式替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。
vi常用指令
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下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基本命令1)光标命令左h 上j 下k 右lnG ——n为行数,该命令立即使光标跳到指定行;n为空,光标跳到文件最后一行。
Ctrl+G——光标所在位置的行数和列数报告w,b——使光标向前或向后跳过一个单词2)编辑命令(n)dd 删除(n)yy 复制i 光标前插入a 当前字母后插入r 在当前光标处替换cw 替换光标所在处的单词(从光标开始处)dw 删除光标所在处的单词x 删除(右)X 删除(左)u 撤销. 重复上次操作o 插入新行J 合并两行A 行尾:.,3w /tmp/xx:r /tmp/xx3)查找命令f 查找/ 查找4)复制粘贴命令(n)yy 拷贝n行到剪切板p 粘贴(后)P 粘贴(当前)二、vi选项设置vi是一个强大的编辑器,它不仅可以用来处理我们平时的文本工作,还可以用来写程序文件。
在用vi进行程序编辑时,它可以实现语法加亮显示、自动缩进、括号匹配等编辑功能。
为控制不同的编辑功能,vi 提供了很多内部选项。
利用:set 命令可以设置选项。
基本语法为:: set option 设置选项option常见的功能选项包括:autoindent 设置该选项,则正文自动缩进ignorecase 设置该选项,则忽略规则表达式中大小写字母的区别number 设置该选项,则显示正文行号ruler 设置该选项,则在屏幕底部显示光标所在行、列的位置tabstop 设置按Tab 键跳过的空格数。
例如:set tabstop=n,n默认值为81)语法加亮显示: syntax on 该命令在vi中打开语法加亮显示的功能。
这样以后在输入的字符中,vi就会自动的识别出关键字,字符串以及其他的一些语法元素,并以不同的颜色来显示出来。
2)自动缩进在vi中自动缩进的选项一般有以下的几种:autoindent: 在这种缩进形式中,新增加的行和前一行有相同的缩进形式。
smartindent: 在这种缩进模式中,每一行都和前一行有相同的缩进量,同时能够正确的识别出{和},当遇到右花括号(}),则取消了缩进形式。
写出linuxvi编辑文档的几个常用命令
写出linuxvi编辑文档的几个常用命令Linux vi 是一款强大的文本编辑器,是Linux系统中最常用的文本编辑器之一。
在使用vi编辑器时,有一些常用命令是必须掌握的,下面将介绍几个常用的vi命令。
1. 光标移动命令在vi编辑器中,我们需要经常移动光标来定位到需要编辑的位置。
以下是一些常用的光标移动命令:- h:向左移动一个字符- j:向下移动一行- k:向上移动一行- l:向右移动一个字符- 0:移动到行首- $:移动到行尾- gg:移动到文件的第一行- G:移动到文件的最后一行2. 插入和编辑命令在vi编辑器中,我们可以使用插入和编辑命令来输入和修改文本内容。
以下是一些常用的插入和编辑命令:- i:在当前光标位置前插入文本- a:在当前光标位置后插入文本- o:在当前行的下方插入新行并进入插入模式- x:删除当前光标所在位置的字符- dd:删除当前行- yy:复制当前行- p:粘贴复制的内容3. 保存和退出命令在编辑文档时,我们需要保存修改的内容并退出vi编辑器。
以下是一些常用的保存和退出命令:- :w:保存修改的内容,但不退出vi编辑器- :q:退出vi编辑器- :wq:保存修改的内容并退出vi编辑器- :q!:放弃修改的内容并强制退出vi编辑器4. 查找和替换命令当我们在编辑长文档时,经常需要查找和替换特定的文本。
以下是一些常用的查找和替换命令:- /pattern:在文档中向下查找指定的模式- ?pattern:在文档中向上查找指定的模式- n:继续查找下一个匹配项- :s/old/new/:将当前行第一个匹配到的old替换为new- :s/old/new/g:将当前行所有匹配到的old替换为new- :%s/old/new/g:将整个文档中所有匹配到的old替换为new5. 撤销和重做命令在编辑文档过程中,我们可能会犯一些错误,需要撤销前面的操作或者重做已经撤销的操作。
以下是一些常用的撤销和重做命令:- u:撤销前一次操作- Ctrl + r:重做上一次撤销的操作这些是在使用vi编辑器时经常使用的一些常用命令。
Vi指令集
Vi简介Vi是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序。
Vi不是排版程序,只是一个纯粹的文本编辑程序。
Vi是全屏幕文本编辑器,它没有菜单,只有命令。
Vi不是基于窗口的,所以,这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件。
Vi的功能十分强大,但是命令繁多,熟练掌握起来有一定难度。
Vi的发明者:bill joyVi的启动$ Vi filename 或者$ Vi如果filename已经存在,Vi会打开现存文件如果是一个新文件,Vi会创建它Vi的退出在命令行模式下输入:q,:q!,:wq或者:x,可以退出Vi:w 保存:w filename 另存为filename:wq! 保存并退出:wq! filename 以filename为文件名保存后退出:q! 不保存退出:x 保存并退出,功能和:wq!相同Vi的工作模式Vi有三种工作模式,分别为:命令模式、插入模式(编辑模式)和末行模式,三种模式分别进行不同的操作,它们之间可以进行切换。
命令模式:进入Vi后,首先进入的就是命令模式,等待用户输入编辑命令,此时输入的字母将作为编辑命令来解释。
插入模式:在命令模式下输入插入命令i、附加命令a、打开命令o等命令可以进入插入模式,在插入模式下,用户输入可以对文本进行编辑,输入的任何字符都被当作文件内容保存起来。
【Esc】键可以返回命令模式。
末行模式:在命令模式下,按【:】键可以进入末行模式,Vi光标会显示在窗口的最后一行,以“:”作为末行模式的提示符,等待用户输入命令。
末行命令执行后,Vi自动回到命令模式。
Vi命令大全1、移动光标h或者向左方向键:光标向左移动一个字符l或者向右方向键:光标向右移动一个字符k或者向上方向键:光标向上移动一个字符j或者向下方向键:光标向下移动一个字符【Ctrl】+f:屏幕“向下”移动一页,相当于【PageDown】【Ctrl】+b:屏幕“向上”移动一页,相当于【PageUp】0:数字0,移动到这一行的最前面一个字符处$:移动到这一行的最后一个字符处G:移动到这个文件的最后一行gg:移动到这个文件的第一行n【Enter】:n是一个数字,光标向下移动n行2、搜索与替换/str:从光标开始,向下寻找一个名为str的字符串。
VI常用命令和快捷键
语法]:vi [-wn] [-R] 文件…[说明]: vi 是一个基于行编辑器ex 上的全屏幕编辑器,可以在vi 中使用ex,ed的全部命令,vi选项中-wn 指将编辑窗口大小置为n行,-R 为将编辑的文件置为只读模式,vi 工作模式分为命令模式和输入模式,一般情况下在命令模式下,可敲入vi命令,进入输入模式下时可以编辑要编辑的文本,命令a A i I o O c C s S R 可进入输入模式,在输入模式下按ESC 键可推出输入模式,回到命令模式,在命令模式中敲入:命令,则可进入ex方式,在屏幕底部出现提示符:,此时可使用任意ex命令,屏幕底行也用来作/ ? ! 命令的提示行,大多数命令可以在其前面加数字,表示命令执行的重复次数,下面简单介绍一下vi 的命令集:^ 表示(CTRL)键^B 退回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行^D 在命令模式下,表示下滚屏幕的一半,在输入模式下,表示回退至左边的自动缩进处^E 显示屏幕底线之下的一行^F 前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行^G 显示当前文件名,当前行号和文件总行数,并用百分号当前行在整个文件中的位置^H(退格) 在命令模式下,光标左移一格;在输入模式下,删去前面的字符^I(TAB) 在输入模式下,产生一串空格^J(LF) 光标下移一行^L 刷新屏幕,即将屏幕重新显示^M(回车) 在命令模式下,光标移动至下行开头;在输入模式下,开辟一新行^N 光标下移一行^P 光标上移一行^Q 在输入模式下,将其后的非打印字符作为正文插入^R 刷新屏幕^U 屏幕上滚一半,前面加数字时表示上滚的行数,此数字对以后的^D ^U 命令有效^V 在输入模式下,将其后的非打印字符作为正文插入^W 在输入模式下,使光标回退一个字^Y 显示屏幕底线之上的一行^Z 暂停编辑,退回上层Shell^[(ESC) 退出输入模式,回到命令模式! 暂时退出编辑,执行Shell命令(双引号) 用于标志有名缓冲区,编号缓冲区1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文$ 将光标移动到当前行尾,前加数字则表示前移行数,如2$表示移动到下一行行尾% 将光标移动到配对的小括号()或大括号{}上去( 退回句子开头) 前移到句子开头- 退到上一行第一个非空格字符. 重复上一次改变缓冲区内容的命令/ 模式向前搜索模式,将光标移动到模式出现处,模式是一个正规表达式,(参看grep) :在屏幕底部提示:,其后可使用ex命令? 功能同/ ,但方向是向前查找[[ 光标回退至前一节分界处\ 转意符]] 光标前移至节分界处^(不是CTRL) 光标移至当前行第一个非空字符上‘ 连续两个'’表示将光标移至其移动前的位置,’后跟字母表示光标字母标记的行首(参看m 命令)A 在行尾插入正文,进入输入模式B 光标回退一个字C 替换光标后的内容D 删除光标后的内容E 光标前移到字尾F 字符在当前行向左查找指定字符G 光标移动到其前面数字指定的行,若未指定则移动到最后一行H 光标移动到屏幕顶行,若前面有数字,则移动到屏幕上该数字指定的行I 在行开头插入正文J 连接两行,若前面有数字则连接数字指定的行L 光标移动到屏幕底行,若前面有数字,则移动到屏幕底线往上数该数字指定的行M 光标移动到屏幕中线N 使用模式查找/或?时,重复找下一个匹配的模式,但方向与上次相反,其功能同n ,但方向相反O 在当前行上开辟一新行P 将上次被删除的正文插入光标前面,可在其前面加缓冲区编号,编号1-9用于保存被删去的正文,字母名缓冲区a-z供用户存放自定义的正文Q 从vi 推出进入ex命令状态R 替换字符串S 替换整行T 字符向左查找字符U 将当前行恢复至第一次修改前的状态W 光标移至下一个字首X 删除光标前的字符Y 将当前行存入无名缓冲区,前面加数字表示存入的行数,也可用有名缓冲区来保存,以后可用命令p或P将其取出ZZ 存盘退出via 光标后插入正文b 光标回退至上一个字首cw 替换当前字c) 替换当前句子dw 删除一个字dd 删除一行e 光标移到下一个字末f 字符在当前行向前查找字符h 光标左移一格i 在光标前插入正文j 光标下移一行k 光标上移一行l 光标右移一格m 字母用字母标记当前行,以后可用‘字母使光标移动到当前行,(参看’命令) n 重复上次/ 或? 命令o 在当前行下开辟一新行p 将用户缓冲区内容放到光标位置(参看P命令)r 替换当前字符s 用一串字符替换当前字符t 字符光标移动至字符前u 取消上次操作w 光标移至下一字首x 删除当前字符yw 将当前字存入无名缓冲区,前面可加x,表示存入名字为x的有名缓冲区(x为a-z),也可加数字表示存入的字数,以后可用P或p 命令取出yy 将当前行存入无名缓冲区,用法参看yw{ 光标移动至前一段开头| 光标移至行首,若前面加数字,则移到数字指定行的行首} 光标移至下一段开头在:提示符下,常用命令如下::w 当前文件存盘:w! 强制存盘:w 文件将内容写入指定文件:w! 文件强制写入指定文件:x,y w 文件将x至y 行写入指定文件中:r 文件将文件读到光标位置:r ! 命令将系统命令的输出读到光标位置:q 退出编辑:q! 强制退出:x 与命令ZZ相同:e 文件名编辑另一文件:e ! 重新编辑文件,放弃任何改变:sh 执行sh,结束后回到编辑:! 命令执行命令后回到编辑:n 编辑下一文件:n 文件表重新定义待编辑文件表:set 设置vi 的选项,例如set nu 表示每行前显示行号,在选项前加no则表示清除该选项,例如set nonu 表示每行前不显示行号,下面是一些常用的选项:ai 自动缩进aw 编辑下一文件前自动存盘ic 查找字符串时不区分大小写nu 每行前显示行号sm 输入)及}时显示与之配对的( 或{slow 插入时延迟屏幕刷新ws 使查找能绕过文件尾从头进行wa 写文件之前不作对文件的检查:s/old/new用new替换行中首次出现的old:s/old/new/g 用new替换行中所有出现的old:#,# s/old/new/g用new替换从第#行到第#行中出现的old:% s/old/new/g用new替换整篇中出现的old如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gcu 取消操作i插入命令a附加命令o打开命令c修改命令r取代命令s替换命令Esc退出命令G文件尾行1G文件首行#G 文件的#行:set nu :set nonu 显示行号不显示行号Vi 是一个历史悠久且功能强大的UNIX 文书编辑器。
vim常用快捷键和命令
vim常⽤快捷键和命令vim编辑器上古神器,不记两个快捷键和命令,都不好意思出来写bug~常⽤操作常⽤快捷键i或a //进⼊可编辑的状态p //粘贴u //撤销ctrl + r //反撤销yy //复制光标所在的整⾏dd //删除当前⾏dG //删除所有⾏ (注意是同时按住d_shift_g)shift+d //删除当前⾏光标后的内容gg //光标到第⼀⾏GG //光标到最后⼀⾏00 //快速到⾏⾸shift+6 //快速到⾏⾸shift+4 //快速到⾏尾ctrl-f //下⼀页(forward)ctrl-b //上⼀页(backward):⾏号 //定位到指定⾏:命令窗输⼊⾏号/关键字 // 模糊查询:命令窗输⼊斜杠后接关键字即可(n查看下⼀个匹配,N查看上⼀个):set number //显⽰⾏号:set nonumber //隐藏⾏号查询操作主要是操作光标,快速定位到你需要的位置gg //光标到第⼀⾏GG //光标到最后⼀⾏00 //快速到⾏⾸shift+6 //快速到⾏⾸shift+4 //快速到⾏尾:⾏号 //定位到指定⾏:命令窗输⼊⾏号/关键字 //模糊查询:命令窗输⼊斜杠后接关键字即可(按下⼩写n查看下⼀个匹配):set number //显⽰⾏号:set nonumber //隐藏⾏号ctrl-f //下⼀页(forward)ctrl-b //上⼀页(backward)ctrl-e //下⼀⾏ctrl-y //上⼀⾏ctrl+d //下翻半页ctrl+u //上翻半页zz //让光标所杂的⾏居屏幕中央zt //让光标所杂的⾏居屏幕最上⼀⾏ t=topzb //让光标所杂的⾏居屏幕最下⼀⾏ b=bottom拷贝和粘贴yy //拷贝当前⾏nyy //拷贝当前后开始的n⾏,⽐如2yy拷贝当前⾏及其下⼀⾏。
p //在当前光标后粘贴,如果之前使⽤了yy命令来复制⼀⾏,那么就在当前⾏的下⼀⾏粘贴。
vi命令大全(完整版)
vi命令大全(完整版)根据个人多年的vi编程经验,总结出的vi命令实用语句,适用于linu某学习者如下是个人总结的vi命令全集:进入vi的命令vifilename:打开或新建文件,并将光标置于第一行首vi+nfilename:打开文件,并将光标置于第n行首vi+filename:打开文件,并将光标置于最后一行首vi+/patternfilename:打开文件,并将光标置于第一个与pattern 匹配的串处vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename vifilename....filename:打开多个文件,依次进行编辑移动光标类命令h:光标左移一个字符l:光标右移一个字符pace:光标右移一个字符Backpace:光标左移一个字符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:在光标前根据个人多年的vi编程经验,总结出的vi命令实用语句,适用于linu某学习者I:在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行某或某:删除一个字符,某删除光标后的,而某删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索patternpattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1///p2/g:将文件中所有p1均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写lit:显示制表位(Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目tere:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NOwrite信息nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符nowrapcan:禁止vi在搜索到达文件两端时,又从另一端开始meg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2con3:将n1行到n2行之间的内容拷贝到第n3行下根据个人多年的vi编程经验,总结出的vi命令实用语句,适用于linu某学习者:n1,n2mn3:将n1行到n2行之间的内容移至到第n3行下:n1,n2d:将n1行到n2行之间的内容删除:w:保存当前文件:efilename:打开文件filename进行编辑:某:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi寄存器操作"nyy:将当前行及其下n行的内容保存到寄存器?中,其中为一个字母,n为一个数字"nyw:将当前行及其下n个字保存到寄存器?中,其中为一个字母,n为一个数字"nyl:将当前行及其下n个字符保存到寄存器?中,其中为一个字母,n为一个数字"p:取出寄存器?中的内容并将其放到光标位置处。
vi常用命令集锦
vi常⽤命令集锦vi编辑器有3种模式:命令模式、输⼊模式、末⾏模式。
掌握这三种模式⼗分重要: 命令模式:vi启动后默认进⼊的是命令模式,从这个模式使⽤命令可以切换到另外两种模式,同时⽆论在任何模式下只要按⼀下[Esc]键都可以返回命令模式。
在命令模式中输⼊字幕“i”就可以进⼊vi的输⼊模式编辑⽂件。
输⼊模式:在这个模式中我们可以编辑、修改、输⼊等编辑⼯作,在编辑器最后⼀⾏显⽰⼀个“--INSERT--”标志着vi进⼊了输⼊模式。
当我们完成修改输⼊等操作的时候我们需要保存⽂件,这时我们需要先返回命令模式,在进⼊末⾏模式保存。
末⾏模式:在命令模式输⼊“:”即可进⼊该模式,在末⾏模式中有好多好⽤的命令。
vim整理alias vi='vim'1)⽂件的打开与关闭vi filename : 打开或新建⽂件,并将光标置于第⼀⾏⾏⾸vi +n filename : 打开⽂件,并将光标置于第n⾏⾏⾸vi + filename : 打开⽂件,并将光标置于最后⼀⾏⾏⾸vi +/pattern filename: 打开⽂件,并将光标置于第⼀个与pattern匹配的串处vi -r filename : 在上次正⽤vi编辑时发⽣系统崩溃,恢复filenamevi filename...filename :打开多个⽂件,依次进⾏编辑:e filename : 打开filename编辑,编辑完后可⽤:hide退回之前编辑的⽂件:sav filename : 将当前⽂件另存为filename:w : 保存⽂件但不退出vi:w file : 将⽂件另存为file但不退出vi:wq或ZZ或:x : 保存⽂件并退出vi:q! : 不保存⽂件,退出vi:e : 放弃所有修改,从上次保存⽂件开始再编辑(重新载⼊⽂件,包含被其它编辑器修改过的):e! : 放弃所有修改,从上次保存⽂件开始再编辑:hide : 隐藏当前编辑的⽂件,回到上⼀次编辑的⽂件(在打开多⽂件时有效):b 2 : 在当前窗⼝切换到第⼆个打开的⽂件^w^w : 多窗⼝切换2)光标控制与屏幕调整h或^h : 将光标向左移⼀个字符j或^j或^n : 将光标向下移⼀⾏k或^p : 将光标向上移⼀⾏l或空格 : 将光标向右移⼀个字符0或| : 将光标移到当前⾏的第⼀列n| : 将光标移到当前⾏的第n列^ : 将光标移到当前⾏的第⼀个⾮空字符$ : 将光标移到当前⾏的最后⼀个字符n$ : 将光标移到当前⾏下第n-1⾏的最后⼀个字符+或return : 将光标移到下⼀⾏的第⼀个字符- : 将光标移到前⼀⾏的第⼀个⾮空字符gg : 将光标移动到⽂件第⼀⾏G : 将光标移到⽂件的最后⼀⾏nG或ngg或:n : 将光标移到⽂件的第n⾏w : 将光标移到下⼀个字的开头W : 将光标移到下⼀个字的开头,忽略标点符号b : 将光标移到前⼀个字的开头B : 将光标移到前⼀个字的开头,忽略标点符号e : 将光标移到下⼀个字的结尾E : 将光标移到下⼀个字的结尾,忽略标点符号L : 将光标移到屏幕的最后⼀⾏M : 将光标移到屏幕的中间⼀⾏H : 将光标移到屏幕的第⼀⾏H : 将光标移动到屏幕的顶⾏nH : 将光标移动到屏幕顶⾏下的第n⾏M : 将光标移动到屏幕的中间L : 将光标移动到屏幕的底⾏nL : 将光标移动到屏幕底⾏上的第n⾏( : 将光标移动到句⼦的开头) : 将光标移动到句⼦的结尾{ : 将光标移动到段落的开头} : 将光标移动到段落的结尾[[ : 将光标移动到函数(段落)开始处]] : 将光标移动到函数(段落)结尾处[{ : 将光标移动到块开始处}] : 将光标移动到块结束处m(a-z) : ⽤⼀个字母来标记当前位置,如⽤mz表⽰标记z'(a-z) : 将光标移动到指定的标记,如⽤'z表⽰移动到标记z处'' : 两个单引号,将光标移动到最近标记的位置`` : 两个反引号(Tab键上⾯那个),将光标移动到光标前⼀次停留的位置^e : 将屏幕上滚⼀⾏^y : 将屏幕下滚⼀⾏^u : 将屏幕上滚半页^d : 将屏幕下滚半页^b : 将屏幕上滚⼀页^f : 将屏幕下滚⼀页^l : 重绘屏幕z-return : 将当前⾏置为屏幕的顶⾏nz-return : 将当前⾏下的第n⾏置为屏幕的顶⾏z. : 将当前⾏置为屏幕的中央nz. : 将当前⾏上的第n⾏置为屏幕的中央z- : 将当前⾏置为屏幕的底⾏nz- : 将当前⾏上的第n⾏置为屏幕的底⾏3)插⼊⽂本a : 在光标后插⼊⽂本A : 在当前⾏尾插⼊⽂本i : 在光标前插⼊⽂本I : 在当前⾏前插⼊⽂本o : 在当前⾏的下边插⼊新⾏O : 在当前⾏的上边插⼊新⾏escape(Esc) : 回到命令模式^v : 切换到visual block模式,此时通过⽅向键选中block, 再按I,然后输⼊需要插⼊的字符,可以在选中块⾏⾸插⼊字符(同理可以将I换为X删除字符).4)修改⽂本rchar : ⽤char替换当前字符(r,即replace当前光标选中字符)Rtext escape : ⽤text替换当前字符直到换下Esc键(R,即进⼊Replace模式)stext escape : ⽤text代替当前字符(s,即删除当前光标选中字符,并进⼊插⼊状态)S或cctext escape : ⽤text代替整⾏(S,即删除当前光标选中⾏,并进⼊插⼊状态)cwtext escape : 将当前字改为text(cw,即删除当前光标后⼀个字,并进⼊插⼊状态)Ctext escape : 将当前⾏余下的改为text(C,即删除当前光标后字符直到⾏尾,并进⼊插⼊状态)cG escape : 修改⾄⽂件的末尾(cG,即删除当前光标后字符直到⽂件结束,并进⼊插⼊状态)ncw或cnw : 修改指定数⽬的字 (cnw,即删除当前光标后n个字符,并进⼊插⼊状态)nC : 修改指定数⽬的⾏ (nC,即删除当前光标后字符直到⾏尾,并删除之后的n-1⾏,并进⼊插⼊状态) ccursor_cmd text escape : 从当前位置处到光标命令位置处都改为text,如假设光标停留在u第10⾏,c5G text escape,即删除第5⾏到第10⾏,并进⼊插⼊状态,输⼊text,直到escape底⾏命令:n1,n2 co n3 : 将n1⾏到n2⾏之间的内容拷贝到第n3⾏下:n1,n2 m n3 : 将n1⾏到n2⾏之间的内容移⾄到第n3⾏下:n1,n2 d : 将n1⾏到n2⾏之间的内容删除:!command : 执⾏shell命令command:n1,n2 w!command : 将⽂件中n1⾏⾄n2⾏的内容作为command的输⼊并执⾏command:w!command : 将⽂件中的内容作为command的输⼊并执⾏之:r!command : 将命令command的输出结果放到当前⾏:1,10 w outfile : 保存⽂件第1⾏到第10⾏到outfile:1,10 w >> outfile : 将⽂件第1⾏到第10⾏追加到outfile⽂件结尾:r infile : 读取infile到当前光标下⼀⾏:nr infile : 读取infile到当前光标第n⾏的下⼀⾏J : 将下⼀⾏连接到当前⾏的末尾nJ : 连接后⾯n⾏5)删除⽂本x : 删除光标处的字符,可以在x前加上需要删除的字符数⽬nx : 从当前光标处往后删除n个字符X : 删除光标前的字符,可以在X前加上需要删除的字符数⽬nX : 从当前光标处往前删除n个字符dw : 删⾄下⼀个字的开头ndw : 从当前光标处往后删除n个字dG : 删除字符直到⽂件结束dd : 删除当前⾏ndd : 从当前⾏开始往后删除n⾏db : 删除光标前⾯的字ndb : 从当前⾏开始往前删除n字:n,md : 从第n⾏开始删除到第m⾏d$ : 从光标处删除到⾏尾dcursor_command : 删除⾄光标命令处,如dG将从当产胆⾏删除⾄⽂件的末尾dh : 删除光标前⼀个字符dl : 删除光标选中的那个字符dj : 删除光标选中⾏及下⼀⾏dk : 删除光标选中⾏及上⼀⾏dH : 从屏幕顶端删除⾄光标处dM : 删除屏幕中央⾏于光标之间的内容dL : 从光标处删除⾄屏幕末尾dk : 删除光标选中⾏及上⼀⾏dH : 从屏幕顶端删除⾄光标处^h或backspace : 删除前⾯的字符(插⼊状态下)^w : 删除前⾯的字(插⼊状态下)6)查找与替换:set ic : 查找时忽略⼤⼩写(ignorecase):set noic : 查找时对⼤⼩写敏感/text : 在⽂件中向前查找texttext : 在⽂件中向后查找text* : 在⽂件中向前查找当前光标选中的字n : 在同⼀⽅向重复查找N : 在相反⽅向重复查找fchar : 在当前⾏向前查找charFchar : 在当前⾏向后查找chartchar : 在当前⾏向前查找char,并将光标定位在text的第⼀个字符Tchar : 在当前⾏向后查找char,并将光标定位在text的第⼀个字符/\cstring : 查找STRING或string,⼤⼩写不敏感/jo[ha]n : 查找john或joan/\< the : 查找the,theatre或then等the开头的单词/the\> : 查找the或breathe等the结尾的单词/\< the\> : 查找 the(空格后紧跟the)/fred\|joe : 查找fred或joe/\<\d\d\d\d\> : 查找4个字符的单词/^\n\{3} : 查找连续3个空⾏:bufdo /searchstr/ : 在所有打开⽂件中查找bufdo %s/some/someelse/g : 在所有打开⽂件中查找some并⽤someelse代替& 重复最后的:s命令:g/text/command : 在所有包含text的⾏运⾏command所表⽰的命令:v/text/command : 在所有不包含text的⾏运⾏command所表⽰的命令:g/string/d : 删除所有包含string的⾏:v/string/d : 删除所有不包含string的⾏:g/text1/s/text2/text3 : 查找包含text1的⾏,⽤text3替换text2:v/text1/s/text2/text3 : 查找不包含text1的⾏,⽤text3替换text2:%s/old/new/g : 将⽂件中所有old替换为new(⼤⼩写敏感):%s/onward/forward/gi : 将⽂件中所有onward替换为forward(忽略⼤⼩写):%s/old/new/gc : 将⽂件中所有old替换为new,替换前需确认:%s/^/hello/g : 将⽂件中所有开头替换为hello:%s/$/Harry/g : 将⽂件中所有结尾替换为Harry:%s/ *$//g : 删除所有空格:%s/Bill/Steve/g : 将当前⽂件的所有Bill替换为Steve:%s/^M//g : 删除所有Dos回车符 (^M):%s/^M/\r/g : 删除所有Dos回车符转化成标准回车符:%s#<[^>]\+>##g : 删除所有HTML标记只留下内容:%s/^.∗\n\1$/\1/ : 删除重复⾏:s/Bill/Steve/ : 将当前⾏第⼀个Bill替换为Steve:s/Bill/Steve/g : 将当前⾏所有Bill替换为Steve:m,n s/Bill/Steve/ : 在m⾏和n⾏之间,将第⼀个Bill替换为Steve:m,n s/Bill/Steve/g : 在m⾏和n⾏之间,将所有Bill替换为Steve:2,35s/old/new/g : 将第2⾏到第35⾏之间所有old替换为new:5,$s/old/new/g : 将第5⾏到⽂件结尾之间所有old替换为newCtrl+a : 将光标选中的数字加1Ctrl+x : 将光标选中的数字减1ggVGg? : 将全⽂替换为回转13位⽂,变换2次可以回到原⽂.7)复制⽂本yw : 将光标后⼀个字放⼊临时缓冲区nyw或ynw : 将光标后n个字放⼊临时缓冲区y : 将当前⾏及下⼀⾏的内容放⼊临时缓冲区(命令模式下)y : 将当前光标选中的内容放⼊临时缓冲区(选择模式下)yy : 将当前⾏的内容放⼊临时缓冲区y$ : 将当前⾏光标之后的内容放⼊临时缓冲区D : 将当前⾏光标之后的内容剪切后放⼊临时缓冲区nyy : 将n⾏的内容放⼊临时缓冲区p : 将临时缓冲区中的⽂本粘贴在当前光标所在⾏下P : 将临时缓冲区中的⽂本粘贴在当前光标所在⾏上gh : 进⼊选择模式,通过光标选择内容,选择完毕后按y将选择内容删除并放⼊缓冲区,并插⼊y,进⼊插⼊模式gH : 进⼊选择模式,通过光标选择内容,选择完毕后按y将选择内容所在⾏删除并放⼊缓冲区,并插⼊y,进⼊插⼊模式gv : 进⼊选择模式,通过光标选择内容,选择完毕后按y将选择内容并放⼊缓冲区,不删除选择内容寄存器操作"(a-z)nyy : 复制n⾏放⼊名字为圆括号内的可命名缓冲区,省略n表⽰当前⾏"(a-z)ndd : 删除n⾏放⼊名字为圆括号内的可命名缓冲区,省略n表⽰当前⾏"(a-z)p : 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏后"(a-z)P : 将名字为圆括号的可命名缓冲区的内容放⼊当前⾏前8)撤消与重复u : 撤消最后⼀次修改U : 撤消当前⾏的所有修改^r : 重新执⾏最近⼀次被撤消的操作. : 重复最后⼀次操作5. : 重复最后⼀次操作5次, : 以相反的⽅向重复前⾯的f、F、t或T查找命令; : 重复前⾯的f、F、t或T查找命令"np : 取回最后第n次的删除(缓冲区中存有⼀定次数的删除内容,⼀般为9)n : 重复前⾯的/或?查找命令N : 以相反⽅向重复前⾯的/或?命令9)vim中的选项:set all : 打印所有选项:set nooption : 关闭option选项:set nu : 每⾏前打印⾏号:set nonu : 每⾏前不打印⾏号:set showmode : 显⽰是输⼊模式还是替换模式:set ic : 查找时忽略⼤⼩写(另⼀种设置见下⽂):set noic : 查找时不忽略⼤⼩写:set list : 显⽰制表符(^I)和⾏尾符号:set ts=4 : 为⽂本输⼊设置tab stops:set ws=4 : 为⽂本输⼊缩进设置4字符:set window=n : 设置⽂本窗⼝显⽰n⾏:syntax on : 打开语法⾼亮:syntax off : 关闭语法⾼亮:set syntax=erlang : 强制语法⾼亮,并按erlang语法显⽰⾼亮10)vim的状态:.= 打印当前⾏的⾏号:= 打印⽂件中的⾏数^g 显⽰⽂件名、当前的⾏号、⽂件的总⾏数和⽂件位置的百分⽐:l 使⽤字母"l"来显⽰许多的特殊字符,如制表符和换⾏符11)shell转义命令:!command : 执⾏shell的command命令,如:!ls:!! : 执⾏前⼀个shell命令:r!command : 读取command命令的输⼊并插⼊,如:r!ls会先执⾏ls,然后读⼊内容:w!command : 将当前已编辑⽂件作为command命令的标准输⼊并执⾏command命令,如:w!grep all:cd directory : 将当前⼯作⽬录更改为directory所表⽰的⽬录:pwd : 显⽰当前⼯作⽬录:so file : 在shell程序file中读⼊和执⾏命令:!pwd : 执⾏pwd命令,然后回到vi!!pwd : 执⾏pwd命令,然后插⼊其输出结果到当前⽂件,并替换光标所在⾏:sh : 将启动⼀个⼦shell,使⽤^d(ctrl+d)返回vi^d或$exit : 退出临时开启的终端并回到vi12)宏与缩写(PS:避免使⽤控制键和符号,不要使⽤字符K、V、g、q、v、*、=和功能键):map key command_seq : 定义⼀个键来运⾏command_seq,如:map e ea,⽆论什么时候都可以e移到⼀个字的末尾来追加⽂本:map : 在状态⾏显⽰所有已定义的宏:umap key : 删除该键的宏:ab string1 string2 : 定义⼀个缩写,使得当插⼊string1时,⽤string2替换string1。
VI命令详解
VI命令详解vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。
由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。
Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。
1、vi的基本概念基本上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,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。
2、vi的基本操作a) 进入vi在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:$ vi myfile不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。
初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!b) 切换至插入模式(Insert mode)编辑文件在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V I命令集精编
Document number:WTT-LKK-GBB-08921-EIGG-22986
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
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:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
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:取出寄存器中的内容并将其放到光标位置处。
这里可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
进入vi
vi?test
离开vi
:q!?离开vi,并放弃刚在缓冲区内编辑的内容。
:wq?将缓冲区内的资料写入磁盘中,并离开vi。
:ZZ?同wq
同wq
:w?将缓冲区内的资料写入磁盘中,但并不离开vi。
:q?离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容,此指令可与:?w?配合使用。
Vi?的操作模式
Vi?提供两种操作模式:
输入模式(insert?mode)
指令模式(command?mode)
当使用者进入vi后,既处于指令模式下,此刻键入任何字元皆被视为指令。
输入模式:a(append)?游标之后加入资料。
A?该行之末加入资料
i?(insert)?游标之前加入资料
I?该行之首加入资料
o?(open)?新增一行与该行之下供输入资料
O?新增一行与该行之上供输入资料
指令模式:B?移至该行第一个字符,若光标在该行第一字符则光标移至上一行第一字符。
b 由游标所在位置之前一个字串的第一个字元
cc?删除整行,修改整行的内容。
D?以行为单位,删除游标在内后面的所有字符。
db?删除该行光标前字符
dd?删除该行
de?删除自光标开始后面的字符
d加字符删除光标所在位置至字符之间的单
E 移至该行最后字符,若光标在该行最后字符则光标移至下一行最后字符
e 由游标所在位置至该字串的最后一个字元
G?移至该档案的最后一行
h?向前移一个字元
j?向下移一个字元
k?向上移一个字元
0?移至该行之首
M?移至视窗的中间那行
L?移至视窗的最后一行
l?向后移一个字符
0?由游标所在位置该行的第一个字元
nG?移至该档案的第n行
n+?自游标所在位置向后移n行至该行的第一字符
n-?自游标所在位置向前移n行至该行的第一字符
R?进入取代状态,直到《ESC》为止
s?删除游标所在字元,并进入取代模式直到《ESC》
S?删除游标所在之该行资料,并进入输入模式直到《ESC》w?由游标所在位置之下一个字串的第一个字元
x?删除游标所在该字元。
X?删除游标所在之前一字元。
r?用接于此指令之后的字元取代(replace)游标所在字元yy?yank整行,使游标所在该行复制到记忆体缓冲区
<ctrl><g>?显示该行之行号、档案名称、档案中最末之行号、游标所在行号占
总行号之百分比
$?由游标所在位置至该行的最后一个字元。
)?由游标所在位置至下一个句子的第一个字元。
(?由游标所在位置至该句子的第一个字元。
{?由游标所在位置至该段落的最后一个字元。
}?由游标所在位置至该段落的第一个字元
yank和delete可将指定的资料复制到记忆体缓冲区,而藉有put指令可将缓冲区内的资料复制到荧幕上
例如:搬移一行?:在该行执行dd
游标移至目的地
执行p
复制一行?:在该行执行yy
游标移至目的地
执行p
视窗移动:
<ctrl><f>?视窗往下卷一页
<ctrl><b>?视窗往上卷一页
<ctrl><d>?视窗往下卷半页
<ctrl><u>?视窗往上卷半页
<ctrl><e>?视窗往下卷一行
<ctrl><y>?视窗往上卷一行
删除、复制及修改指令介绍:
d(delete)、c(change)和y(yank)这一类的指令在vi?中的指令格式为:
operation+scope=command
(运算子)(范围)
运算子:
d?删除指令。
删除资料,但会将删除资料复制到记忆体缓冲区。
y?将资料(字组、行列、句子或段落)复制到缓冲区。
p?放置(put)指令,与d和y配合使用。
可将最后delete 或yank的资料放置于游标所在位置之行列下。
c?修改(change)指令,类似delete于insert的组合。
删除一个字组、句子等资料,并插入新键入的。