vi编辑器命令详解
Vi编辑器的基本使用方法
Vi编辑器的基本使用方法vi 分为三种状态:命令模式(Command mode):控制光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式和底行模式;插入模式(Insert mode):只有在此模式下才可以做文字输入,按「ESC」回到命令行模式;底行模式(Last line mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。
进入vi:在系统提示符号$下输入vi myfile,就进入vi 全屏幕编辑画面。
初态为:命令模式。
只有插入模式才能够输入文字。
1、插入模式的命令简介在「命令模式」下:按「i」切换进入插入模式后从光标当前位置开始输入文字;I 从光标所在的列的第一个非空白字符前面开始插入文字。
按「a」进入插入模式后从光标所在位置的下一个位置开始输入文字;A 从光标所在列最后面的地方开始新增资料。
按「o」进入插入模式后并插入新的一行,从行首开始输入文字;O 从光标所在列上方新增1 列并进入插入模式。
在「插入模式」下只能一直输入文字,如果输错了字则只能按「ESC」转到「命令模式」来删除。
2、命令模式的命令简介移动vi 用小写英文字母「h」、「j」、「k」、「光标移到该行的第#个位置,如:5l, 56l 删除「x」:每按一次,删除光标所在位置的“后面”一个字符「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符「dd」:删除光标所在行「#dd」:从光标所在行开始删除#行复制「yw」:将光标所在之处到字尾的字符复制到缓冲区中「#yw」:复制#个字到缓冲区「yy」:复制光标所在行到缓冲区「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字「p」:将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能替换「r」:替换光标所在处的字符「R」:替换光标所到之处的字符,直到按下「ESC」键为止恢复「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。
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次。
vi编辑器及常用命令ls pwd cd cat
(3)使用命令历史功能。用户最近输入的命令都保存在系统中一个文件
中,使用↑和↓可调出历史命令,加快输入的速度;另外,可使用历史命令 history显示输入的历史命令。
• (4)复制与粘贴功能。按住鼠标左键选择要复制的区域,使其反白显 示,按鼠标中键就可以将复制的内容粘贴到光标所在的区域。
• (5)man获取命令帮助。有些命令有很多的选项,每个选项执行时都
有不同的功能,在linux下,使用命令可获取外部命令的帮助。
3. ls命令
• 命令格式: ls [选项] [目录名] • 命令功能: 列出目标目录中所有的子目录和文件。 • 常用选项:
选项 -a,--all -A -l -R, --recursive -i, --inode -k --help --version -t -S -X -u -r, --reverse
第二讲 vi 编辑器及常用命令 ls pwd cd cat
一、VI的工作方式
• VI编辑器有三种工作方式, 即命令方式、输入方式及ex 转义方式。
• 1.命令方式
• 当用户在终端中输入命令vi或vi 文件名便进入编辑器,处于vi的命令
方式。此时,从键盘上输入的任何字符都被作为编辑命令来解释。
• 2.输入(插入)方式
• 通过输入vi的插入命令(i)、附加命令(a)、打开命令(o)、替 换命令(s)、修改命令(c)或取代命令(r),即可以从命令方式 进入到输入方式。
• 3.ex 转义方式
• vi编辑器有一个专门的“转义”命令,可访问很多面向行的ex命令。可输入一个冒号 (:)使用ex 转义方式,通常在屏幕最下一行。按下“中断”键(通常是Del 键)可 终止正在执行的命令。
• 2.相关命令操作提示 (1)使用通配符。通过使用“*”(与0个或多个任意字符相匹配)、“?” (只与一个任意的字符匹配)、“[]”(只与方括号中字符之一匹配,-:表 示范围,!:表示否定)来代表某些字符,提高输入的速度。
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命令详解
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。
由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。
Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。
1、vi的基本概念基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:1) 命令行模式(command mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insertmode下,或者到last line mode。
2) 插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last linemode)也算入命令行模式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)」,这时候你就可以开始输入文字了。
vi编辑器的使用命令及方法
UNIX操作系统及应用第四章—文本编辑器viLi Yinonghoplee@内容简介目录1进入vi1 2vi的工作方式1 3基本编辑命令2 4高级命令4 5vi的配置55.1行方式下的设置 (5)5.2永久设置方式 (6)6vim和gvim的高级特色6 7小结6 1进入vi进入vi•vi是一个较大的UNIX命令,在启动的时候也有它自己的选项和参数•基本语法:vi[-options][+[n]][file]•常用选项:-r用于恢复系统突然崩溃时正在编辑的文件-R用于以只读方式打开文件+n用来指明进入vi后直接位于文件的第n行,如果不指定n,则位于最后一行2vi的工作方式vi的工作方式vi一共有三种工作方式:命令方式、插入方式和行方式:1.命令方式1•无论用户处于什么状态,按Esc键或组合键Ctrl+[就可以进入命令方式。
当用户初始进入vi时,也处于这个状态。
•用户在命令方式下可以输入各种合法的vi内部命令,这些命令不会回显,而且不需要回车就会被执行2.文本插入方式•在命令方式下使用某些命令会导致vi马上进入文本插入方式,这些命令包括:i,I,a,A,o,O等•在这种方式下用户的任何输入都被当作是文件的内容看待,并将其显示在屏幕上。
3.最后行方式•行方式又称为最后行方式,通过在命令方式下键入冒号可进入这个方式,在这种方式下vi会在屏幕的最后一行显示一个冒号并等待用户输入命令•行方式下用户输入的命令将回显在最后一行上,并且直到用户输入回车vi才会去执行它•命令执行完毕后,vi自动进入命令状态,或者在输入命令时敲Esc键或组合键Ctrl+[、或用退格键删除所有的输入之后再按一下退格键回到命令方式3基本编辑命令基本编辑命令•移动光标(cursor movement)Bksp左移一个字符Space右移一个字符Enter,+下移一行h左移一个字符l右移一个字符j下移一行k上移一行•vi中“字”的概念:广义:两个空格之间的任何内容为一个字狭义:空格是“字”的定界符,并且所有标点和非字母字符均被当成一个“字”•例:printf("Hello,world\n");广义时为两个字,狭义时为11个字。
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 将临时缓冲区中的文本放入光标后
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 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编辑器常⽤命令(核⼼版)模式转换:正常模式=>命令模式,按键:正常模式=>可视模式,按键v正常模式=>编辑模式,按键i # 插⼊模式(insert)# 或者r,replace模式光标移动1. 移动光标(⽅向键、或者h j k l 左下右上四个字母键(命令模式下))。
2. 翻页(Page Down、Page Up)。
3. 移动到该⾏⾸字符处(数字0或者Home);移动到该⾏最后(End)。
4. G:移动到⽂本最后⼀⾏。
查找1. 向下查找(/word),继续向下查找(n)。
2. 向上查找(?word),继续向上查找(N)。
删除、复制、粘贴1. 删除(x);删除n个字符(nx);退格按键(X)2. 剪切整⾏(dd);剪切n⾏(ndd)。
3. 复制整⾏(yy);复制n⾏(nyy)。
4. 粘贴(p)。
5. 恢复上⼀操作(u)。
6. 重做(Ctrl+r)。
7. 重复上⼀个操作(.)。
进⼊编辑(插⼊、替换)、退出编辑(Esc)1. 插⼊(i)。
2. 替换(r)。
进⼊可视模式(v)1. 复制(y):复制选中内容。
2. 删除/剪切(d):删除选中内容。
注:字符可视(v);块可视模式(Ctrl + v);⾏可视模式(shift+v)。
命令⾏模式1. 保存(:w);强制保存(:w!)。
2. 退出vi(:q);强制退出(:q!)。
3. 保存后退出(:wq);强制保存后退出(:wq!)。
4. 显⽰⾏号(:set nu);取消⾏号显⽰(:set nonu)。
5. 暂时退出vi到命令⾏(:! command)。
例如:“:! ls /home”,即可在vi中执⾏ls的命令。
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。
Vi编辑器命令大全
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:取出寄存器?中的内容并将其放到光标位置处。
写出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编辑器时经常使用的一些常用命令。
Linux命令:vi编辑器
Linux命令:vi编辑器Linux命令: vi编辑器vi编辑器(1)》vi是Unix世界中最通⽤的全屏编辑器, Linux中⽤的是vi的加强版vim, vim同vi完全兼容.(当然如果系统中没有安装vim,则可以通过apt-get install vim-gtk 或者[sudo apt-get install vim-gtk] 进⾏安装)》在Linux系统中,vi和vim是完全等价的两个命令,都可以启动vi编辑器。
》vi编辑器的运⾏状态共有三种模式。
》⼀般模式(Normal mode):输⼊vi命令进⼊vi⽂本编辑器的时候,就是⼀般模式了,该模式将⽤户的输⼊看作命令,这个模式允许⽤户移动游标,且允许搜索⽂本功能。
》插⼊模式(Instert mode):从⼀般模式按下I, o, a等字幕都可以进⼊编辑模式,在此模式下,vi将⽤户的输⼊插⼊到当前光标位置,修改暂时保存到缓冲区,按Esc按钮则从编辑模式退回到⼀般模式。
》命令模式(command mode):可输⼊(:、/、?)进⼊到命令模式)输⼊:wq(当⽂件权限位为:444即-r--r--r--时,需要使⽤:wq! 来强制写⼊并保存退出)保存当前⽂件,或者输⼊:q!直接退出。
vi编辑器模式切换图⽰(摘⾃⽹络):1. vi 编辑器(写⽂件/程序) 编写java程序1. vi filename.filetype(如:vi Hello.java)2. 输⼊i (⼩写I)[进⼊插⼊模式i/I、r/R、a/A]开始写java类3. 输⼊esc键[进⼊到命令模式]4. 输⼊: (冒号) [wq表⽰退出并保存, q!退出不保存]5. 编译⽂件: javac Hello.java(若没有jdk包,控制台会提⽰你需要安装jdk, apt-get install jdk包)6. 6. 运⾏java程序:java Hello1. vi 编辑器(写⽂件/程序) 编写C/C++程序1. 输⼊vi Hello.cpp2. 输⼊i(输⼊C/C++程序)3. 输⼊esc退出插⼊模式进⼊命令模式4. 4. 输⼊:wq退出并保存⽂件5. 5. 编译(C/C++程序) 输⼊: gcc –o Hello Hello.cpp或者gcc Hello.cpp(使⽤gcc Hello.cpp编译,系统会默认⽣成可执⾏⽂件a.out,为避免覆盖掉之前有可能存在a.out的⽂件应该使⽤gcc –o Hello Hello.cpp, 此时会编译出⼀个Hello的可执⾏⽂件)6. 6. 运⾏: ./Hello或者./a.outvi编辑器(2)》vi编辑器提供了强⼤的搜索和替换功能》⾸先按下斜杠键(/), 光标会⾃动移动到vi编辑器下⽅的命令⾏,⽤户输⼊待搜索的字符串,按下Enter键开始搜索, vi编辑器可能⽤三种⽅式响应⽤户的搜索。
Vi的编辑命令
Vi的编辑命令Unix及其相似的操作系统中,为方便各种用户在各个不同的环境中使用,提供了一系列的编辑器,包括ex,edit,ed和vi,其中ex,edit,ed都是行编辑器,现在已很少有人使用,vi是linux中的全屏幕编辑器,其地位如同dos中的edit一样,它可以执行输出、删除、查找、替换、块操作等众多文本操作,它是一个文本编辑程序.Red hat Linux9中提供的是vim,vi是vim的一个符号链接.(8)vi的进入和退出建立新文件:输入命令vi,然后输入内容,最后存盘退出,给出文件名,使用命令:“:wq 文件名”输入命令“vi 文件名”,然后编辑内容,最后存盘退出编辑文件:输入命令“vi 文件名”,此文件已存在,编辑后存盘退出退出命令:存盘退出“:wq”,不存盘退出“:q”注意:vi有两种模式:指令模式和编辑模式,进入后为指令模式,此时输入相关编辑命令,即进入编辑模式,编辑完后按Esc即回到指令模式.(8)进入输入模式、删除和修改指令模式指令:a――从光标所在位置后面开始输入新文本A――从光标所在行的行尾开始输入新的文本i――从光标所在位置前面开始插入数据I――从光标行的第一个非空格字符前面开始插入文本o――在光标所在行下新增一行并进入输入模式O――在光标所在行上方新增一行并进入输入模式删除与修改:x――删除光标处的一个字符dd――删除光标所在行r――修改光标所在字符,r后接着要修正的字符R――进入替代状态,输入的文本会覆盖原来的数据s――删除光标所在字符,并进入输入模式S――删除光标所在的行,并进入输入模式(8)光标的移动光标除可以用方向键进行光标逐字符的移动外,同方向键等同的光标移动命令为h――左移一列, l――右移一列k――上移一列, j――下移一列,如果要快速移动光标,可以在移动命令前加数字,如:3j,6k,10l,3h以单词为单位进行移动:w――将光标移动到下一个单词的开头b――将光标向后移动到一个单词的开头,与w功能相反e――将光标移到下一个单词的末尾最后一个字符处可以在这些命令前加上数字,使光标进行多个单词的移动行内光标的快速移动:$――将光标移动到当前行的行末0――将光标移动到当前行的行首n|――将光标移动到当前行的第n个字符上fm――将光标移动到文本的下一个字符m上使用行号定位::set number――使编辑器显示行号:set nonumber――使编辑器不显示行号nG――将光标移动到第n行G――将光标移动到最后一行:n回车――将光标移动到第n行:$回车――将光标移动到文件的最后一行将光标移动到当前屏幕的某些位置:L――将光标移动到屏幕的最下面一行M――将光标移动到屏幕的中间一行H――将光标移动到屏幕的最上面一行将光标返回到原来位置:‘’――两个单引号,即击单引号两次,用于在一处进行修改后要返回原来的位置让屏幕显示文件的指定位置翻屏: ctrl+d――屏幕定位到文件的下半屏文本ctrl+u――屏幕定位到文件的上半屏文本ctrl+f――屏幕定位到文件的下一屏文本ctrl+b――屏幕定位到文件的上一屏文本(8)字符的查找从文件头向文件尾查找字符串:/字符串回车从文件头向文件尾查找下一个指定字符串: n 从文件尾向文件头反向查找字符串: 字符串回车从文件尾向文件头反向查找下一个指定字符串: N(8)文本的删除命令删除字符: x――删除光标处的一个字符3x――删除从光标开始的3个字符删除行: dd——删除当前行,光标移到下一行,并成为当前行10dd――删除当前行开始的10行,光标移到下一行,并成为当前行删除单词: dw——删除光标处的一个单词,也可以使用数字来扩充该命令注意:如果将光标定位在一个单词的中间某个字符上,使用dw 命令后,vi将删除从光标开始和空格字符结束的所有字符在vi中,所有除空格以外的非字母数字字符,都将视为一个单词.如果当前行的当前光标到行末的单词数不够删除时,vi将删除下一行的单词.删除一行的一部分内容: D――将光标置于一行的中间,输入D,则将删除从光标开始到行末的所有文字.不是整行删除光标至某一个字符之间的文本:dfm——该命令删除从光标到第一个m之间的所有文本包括光标处字母和字母m使用行号删除文本行: :5d——删除第5行的文本:5,10d——删除第5至10行的文本:3dd——删除从光标开始的3行内容:10,$d——删除从第10行开始到行末的内容6文本添加命令:i——在光标的左侧添加文本a——在光标的右侧添加文本I——将光标移到当前的行首,并切换到添加模式A——将光标移到当前的行尾,并切换到添加模式O--在光标的上方插入一个新行o——在光标的下方插入一个新行7撤消和重复命令对于Vi来说,它只能撤消最后一次操作,而vim是它的增强,因此它可以进行多次撤消.撤消命令: u--撤消最后一次修改U——撤消对当前行的所有修改,前提是光标没有移出当前行重复命令:.——英语的点命令“.”,它可以重复执行最后一次文本修改命令.(8)vi的替换命令文本替换命令:①替换字符: r——输入r后,不用切换到编辑模式,紧接着输入你用于替换的字符②逐字符替换文本: R——可以逐字符替换光标后面的文本③多个字符替换单个字符: s——实现删除光标处的一个字符,然后可以插入多个字符,相当于光标后添加,不会替换后面的字符④多个单词替换单个单词: cw——可以删除光标处的一个单词,并进入添加模式.⑤行替换: cc--删除当前行的所有字符,然后切换到插入模式.⑥修改行的剩余部分: C——删除从光标开始到行末的所有字符,进入添加模式删除和替换命令的对照命令类型删除替换字符x r单词dw cw行dd cc从光标到行尾之间的部分D C从光标到字符m之间的部分dfm cfm全局替换命令:①搜索当前行的第一个实例: :s——查找和替换命令:s/字符串——查找文本中的所有字符串:s/字符串1/字符串2——在文本中搜索字符串1,并将光标所在行的第一个字符串1替换成字符串2②搜索指定范围内的第一个实例::1,10s/字符串1/字符串2——搜索第1至10行,将每行内的第一个字符串1替换成字符串2③设置过滤条件进行搜索: :g/过滤条件/s/字符串1/字符串2——将文本内符合过滤条件的行的第一个字符串1替换成字符串2④在同一行中替换所有实例: :s/字符串1/字符串2/g――将光标所在行的所有字符串1替换成字符串2 :1,$s/字符串1/字符串2g ——将全文范围内所有行的字符串1替换成字串2注意:前面1-3命令都只能搜索和替换第一个实例,命令4因为加了参数g,它在末尾,可以替换范围内的所有实例9 移动和复制文本复制是指先将要复制的文本复制到缓冲区,再使用粘贴命令进行粘贴.复制和粘贴行: yy――将光标所在行复制到缓冲区p――将缓冲区的内容粘贴到光标所在位置,可以多次使用p命令将缓冲区内的文本进行粘贴到目标位置P——将复制的行粘贴到光标位置的上一行,而p命令是将复制的行粘贴到光标位置的下一行,总之这两个命令都不会粘到光标当前行剪切和粘贴行: 当删除文本行之后,相当于执行了“剪切”命令,然后再使用p或P命令进行文本粘贴复制字符和单词: yw——复制从当前光标到该单词结束的文字到缓冲区yl——复制当前光标处所在的一个字符到缓冲区yfm——复制当前光标处到第一个字符m处的文字到缓冲区包括m复制文本块: :行号,行号 copy 行号——将第一到第二行的文本复制到第三个行号指定行的后面将文本块复制到第三行号指定行的下面移动文本块: :行号,行号 move 行号——将第一到第二行的文本移动到第三个行号指定行的后面将文本块复制到第三行号指定行的下面注意:在文本块的复制和移动命令中,“.”表示当前行,“$”表示文件尾,“0”表示文件头.10 文件保存命令Vi不仅提供了文件存盘命令,用户也可以使用vi的放弃文件保存命令,或者在已有的文件尾添加内容的命令①保存对文件的修改不退出: :w②保存对文件的修改后退出编辑器::wq③保存新版本文件另存为: :w 文件名——将当前文件另存为文件名所指定的副本④取消对文件的修改: :q或者:q⑤保存文本块: :行号,行号 write 文件名――将指定范围内的文本块保存到一个新文件中,命名为指定的文件名注意:如果要保存到的新文件已存在,要进行覆盖,可在命令后加一个叹号“”⑥向文件追加文本: :行号,行号 write >>文件名――将文本块追加到一个文件的末尾.11vi编辑器和shell的交互①读入文本文件:在编辑文件时,经常需要读入另外一个文件的内容.格式: :行号 read 文件名――将指定的文件的内容读入到当前vi编辑器指定行号的下面②在vi中运行子shell:格式: :命令——在编辑中运行“”后指定的命令,将结果显示在vi中,按回车键后清屏,不影响原来的编辑③读入shell命令行的输出:前面的命令将结果输出到屏幕上,并不影响当前被编辑的文件,也可以将shell命令的输出读入到当前被编辑的文件中.格式: :行号 read 命令——将“”后的命令执行,将结果读入到指定的行后面。
写出linuxvi编辑文档的几个常用命令
写出linuxvi编辑文档的几个常用命令Linux中的vi编辑器是一款功能强大的文本编辑工具,它常被用于在终端中编辑各种文档文件。
本文将介绍几个vi编辑器中常用的命令,帮助读者更好地掌握vi的使用。
1. 插入文本命令在vi编辑器中,按下i键可以进入插入模式,此时可以在光标所在位置开始输入文本。
在插入模式下,可以使用各种编辑命令对文本进行修改。
插入模式下,按下Esc键可以退出插入模式,返回到命令模式。
2. 删除文本命令在vi编辑器中,删除文本可以使用多种命令。
在命令模式下,按下x键可以删除光标所在位置的字符;按下dd命令可以删除光标所在行的整行文本;按下dw命令可以删除一个单词;按下d$命令可以删除光标位置到行尾的文本。
3. 复制和粘贴命令在vi编辑器中,复制文本可以使用y命令。
在命令模式下,按下yy命令可以复制光标所在行的整行文本;按下yw命令可以复制光标所在位置到下一个单词的文本。
要粘贴复制的文本,可以在命令模式下按下p键。
4. 查找和替换命令在vi编辑器中,查找特定文本可以使用/命令。
在命令模式下,输入/,然后跟上要查找的文本,按下Enter键即可。
如果要替换文本,可以使用:s/old/new/g命令,将文本中的所有old替换为new。
5. 移动光标命令在vi编辑器中,移动光标可以使用多种命令。
在命令模式下,按下h键可以将光标向左移动一个字符;按下l键可以将光标向右移动一个字符;按下k键可以将光标向上移动一行;按下j键可以将光标向下移动一行。
6. 保存和退出命令在vi编辑器中,保存文档可以使用:w命令,在命令模式下输入:w,按下Enter键即可。
要退出vi编辑器,可以使用:q命令,输入:q,按下Enter键即可。
如果修改了文档但未保存,可以使用:q!命令来强制退出vi编辑器。
7. 撤销和重做命令在vi编辑器中,撤销上一步操作可以使用u命令,在命令模式下按下u键即可。
如果想要重做上一步撤销的操作,可以使用Ctrl + r 命令。
VI编辑器常用命令
VI编辑器命令——天天笑笑整理三种工作模式,命令模式、插入模式和试图模式(老版本vi没有试图模式)命令模式下输入插入类命令或替换命令(cw)进入插入模式。
插入模式下按ESC或ctrl+[进入命令模式命令模式下输入v进入视图模式。
1.打开文件命令:vi filename打开或新建文件,并将光标置于第一行首2.退出命令:q直接退出:q!不保存退出:wq保存退出:w保存当前文件3.光标移动命令(命令模式下):h光标左移一个字符l光标右移一个字符j光标下移一行k光标上移一行w光标右移一个字至字首b光标左移一个字至字首e光标右移一个字至字尾0光标移至当前行首^光标移至当前行首$光标移至当前行尾n+光标下移n行n-光标上移n行H光标移至屏幕顶行M光标移至屏幕中间行L光标移至屏幕最后行ctrl+g显示当前行号n shift+g跳转到第n行4.屏幕翻滚类命令Ctrl+u向文件首翻半屏Ctrl+d向文件尾翻半屏Ctrl+f向文件尾翻一屏Ctrl+b向文件首翻一屏5.插入类命令i在光标前a光标后I在当前行首A在当前行尾o在当前行之下新开一行O在当前行之上新开一行6.删除替换字符dw删除单词ndw删除n个单词dd删除当前行ndd删除n行d$删除至行尾d^或d0删除至行首cw删除单词,并进入插入状态ncw删除n个单词,并进入插入状态cc删除当前行,并进入插入状态ncc删除n行,并进入插入状态c$删除至行尾,并进入插入状态c^或c0删除至行首,并进入插入状态R替换当前字符及其后的连续多个字符,直至按ESC键r用输入的字符替换当前字符x x删除光标后的一个字符X x删除光标前的一个字符7.复制黏贴撤销y1将光标处的一个字符复制到缓冲区yw复制当前单词到缓冲区nyw复制n个单词到缓冲区yy复制当前行到缓冲区nyy复制n行到缓冲区y$复制当前位置至行尾到缓冲区y^或y0复制当前位置至行首到缓冲区p将缓冲区的信息粘贴到光标的后面将光标移到复制的首位置,按下v进入试图模式,用hjkl移动,按y复制,按p粘贴u撤消最后执行的命令Ctrl+R恢复命令,也就是撤消掉撤消命令。
linux vi 编辑器的三种模式和常用命令
linux vi文本处理器(模式转换,常用命令)vi分三种模式:一般模式,编辑模式,命令行模式。
1. 一般模式,一般在进入文件时就是该模式,在此模式中,可以通过上下左右键移动光标,可以删除字符或是删除整行,可以复制粘贴,但不能编辑。
2. 编辑模式:一般模式可以复制粘贴删除,但要编辑,需按下i,I,o,O,a,A,r,R等字母,才会进入编辑模式,按下按钮后,屏幕左下方会出现INSERT或REPACE等字样,如果要回到一般模式,按Esc键。
3. 命令行模式,在一般模式下输入“:”或“/”就可以将光标移到末行,在此模式中,可以搜寻数据,读取,存盘,大量字符替换,退出vi,显示行号等。
常用指令简介一般模式1. 光标:h 方向左键j 方向下键k 方向上键l 方向下键ctrl+f 向前翻动一页ctrl+b 前后翻动一页0 移动到此行的一个字符处$ 移动到此行的最后一个字符n《enter》光标下移n行2. 查找替换/word 在光标之后查找一个word的字符串?word 在光标之前查找一个word的字符串:n1,n2s/word1/word2/g 在第n1行和n2行之间查找word1,并将word1替换为word2 :1,$s/word1/word2/g 从第一行到最后一行查找word1并替换为word2:1,$s/word1/word2/gc 从第一行到最后一行查找word1并替换为word2,在替换前显示提示符,让用户确认3. 删除复制粘贴x,X x向后删除一个字符X向前删除一个字符nx 向后删除n个字符dd 删除光标所在的整列ndd 删除光标所在列的向下n列yy 复制光标所在行nyy 复制光标所在行的向下n行p ,P p复制的数据粘贴在光标下一行,P上一行u 恢复上一个动作编辑模式i ,I 插入:在当前光标所在处插入输入的文字,已存在的字符会向后退a,A 添加:由当前光标所在处的下一个字符开始输入,已存在的字符向后退o ,O 插入新的一行,从光标所在处的下一行行首开始输入r,R 替换:r会替换光标所指的那一个字符,R会一直替换光标所指的文字,知道案下escesc 返回一般模式命令行模式:w 保存:w!若文件为只读,强制写入:q 推出vi:wq 保存推出:w [filename]保存为另一文件。
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
vi编辑器命令详解
vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。
若在vi执行时
没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件。
若指定的文件不存在,
那么就按指定的文件名创建一个新的文件。
若对文件的修改不保存的话,v i命令并不改变原
来文件的内容。
注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后
保存的文件版本将被保留。
下面是vi命令使用的一些选项及含义:
-c sub-command 在对指定的文件编辑前,先执行指定的命令sub-command .
-r filename 恢复指定的文件filename .
-R 将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修改。
-y number 将编辑窗口的大小设为number行。
下面是vi编辑所处的三种模式:
.命令模式进入vi时所处的模式。
在此模式下用户可输入各种子命令对进行*作,如删除行、
粘贴行、移向下一个字、移向不同行等。
.文本输入模式在此模式下可以修改一行的内容并增添新行。
在命令模式下键入a 、i 或
c键可进入文本输入模式,按Escape键可返回命令模式。
.命令项模式在此模式下,可以通过子命令输入更多的参数。
如:w子命令要求输入一文
件名,"/"子命令要求输入一个查找项。
用户使用Escape键返回命令模式。
下面是自命令模式下执行的,在同一行上移动的自命令:
h 将光标左移一格。
l 将光标右移一格。
j 将光标下移一格。
k 将光标上移一格。
w 将光标移到下一个小字的前面。
W 将光标移到下一个大字的前面。
b 将光标移到前一个小字的前面。
B 将光标移到前一个大字的前面。
e 将光标移到下一个小字的后面。
E 将光标移到前一个大字的后面。
fc 把光标移到同一行的下一个c字符处。
Fc 把光标移到同一行的前一个c字符处。
tc 把光标移到同一行的下一个字符c的前一格。
Tc 把光标移到同一行的前一个字符c的后一格。
number| 把光标移到递number列上。
下面是命令模式下在行间移动的子命令:
+或Enter 把光标移至下一行第一个非空白字符。
- 把光标移至上一行第一个非空白字符。
0 把光标移到当前行的第一个字符处。
$ 把光标移到当前行的最后一个字符处。
H 把光标移到屏幕最顶端一行。
L 把光标移到屏幕最底端一行。
M 把光标移到屏幕中间。
下面是命令模式下改变屏幕显示的子命令:
z- 把当前行作为屏幕的最后一行,并重新显示屏幕。
z. 把当前行作为屏幕的中间一行,并重新显示屏幕。
Ctrl+l 重新显示屏幕当前内容。
/pattern/z- 寻找pattern的下一个位置,并把所在行设为屏幕的最后一行。
下面是在命令模式下用来显示页面的子命令:
Ctrl + f向后滚一页。
Ctrl + d向后滚半页。
Ctrl + b向前滚一页。
Ctrl + u向前滚半页。
Ctrl + e屏幕向下滚一行。
Ctrl + y屏幕项上滚一行。
下面是在命令模式下用来查找字符串所使用的子命令:
/pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。
?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。
n 在上次指定的方向上,再次执行上次定义的查找。
N 在上次指定的方向的相反方向上,再次执行上次定义的查找。
/pattern/+number 将光标停在包含pattern的行后面第number行上。
/pattern/-number 将光标停在包含pattern的行前面第number行上。
% 移到匹配的"()"或"{}"上。
下面是在文本输入模式下用来输入文本的子命令(用户可在任何时候按Escape返回到命令模式):
a 在光标之后开始输入文本。
A在行尾开始输入文本。
i在光标之前开始输入文本。
I在行首第一个非空白字符前输入文本。
o在光标所在行后插入一空行。
O在光标所在行前插入一空行。
下面是在命令模式下改变文本所使用的子命令(用户可在任何的时候按Escape键返回到命令模式):
cc或S 修改一整行。
C 改变一行光标位置以后的部分。
cw 改变光标所在单词。
dd删除当前行。
D 删除光标所在行光标后面的内容。
dw删除光标所在的单词。
J 把下一行内容加到本行行尾。
rc把光符所在字符替换成c .
R 覆盖本行内容。
u恢复上一次的修改。
x删除光标所在的字符。
~ 改变光标所在出字符的大小写。
. 重复上一个*作。
>把当前行移到右边。
下面是用于文件中拷贝文本的字命令:
p 将缓冲区内容取到光标所在行的下面一行。
P 将缓冲区内容取到光标所在行的上面一行。
"bd 将文本删除至有名缓冲区b .
"bp 张贴有名缓冲区b中内容。
yy把当前行放入缓冲区。
Y 把当前行放入缓冲区。
Yw把光标所在的单词放入缓冲区。
下面是用于保存文件的子命令:
:w 回写修改后的文件。
:w filename 当filename不存在时,把修改后的文件存为文件filename ,当文件filename
存在时,报错。
!w filename 如果文件filename存在时,把修改后的文件保存为文件filename . 下面列出了在vi编辑的多个文件之间切换所用的子命令:
:n开始编辑vi激活的文件列表中的下一个文件。
:n filenames 指定将被编辑的新的文件列表。
下面列出了用于在当前文件和另外一个文件间切换的子命令:
:e filename 使用filename激活vi (在vi中装入另一个文件filename)。
e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动。
:e+filename 使用filename激活vi ,并从文件尾部开始编辑。
:e+number filename 使用filename激活vi ,并在第number行开始编辑。
:e# 开始编辑另外一个文件。
下面是在本文件中加入其他文件代码所使用的子命令:
:r filename读取filename文件,并将其内容加到当前文件后。
:r ! command执行command文件,并将其输出加到当前文件后。
下面是vi中其他的子命令:
ctrl+g 取得正在编辑文件的有关信息。
:sh启动sh ,从sh中返回可用exit或ctrl+d .
:! Command 执行命令command .
!!重新执行上次的:! Command子命令。
:q退出vi ,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出。
:q!退出vi而不管是否对文件有改动。
ZZ或:wq 保存对文件的修改并退出vi .
用户可在一个特殊的文件.exrc中定义特殊的vi命令。
在vi中使用这些命令时,必须在该
命令前加上一个冒号( :) 。
命令状态:
2007-06-05 15:37命令状态:
j,k,h,l:上下左右
0:行首
$: 行尾
i,I :插入命令,i 在当前光标处插入I 行首插入
a,A:追加命令,a 在当前光标后追加,A 在行末追加
o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行
r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换
数字s: 替换指定数量字符
x: 删除光标处字符
dd: 删除当前行
d0: 删除光标前半行
d$: 删除光标后半行
ctrl+f :后翻页
ctrl+b:前翻页
G : 文件尾
数字G: 数字所指定行
/string 查找字符串
n 继续查找
N 反向继续查找
% 查找对应括号
u 取消上次操作
ex命令状态
:set number 显示行号
:set smd 显示显示状态
:0 文件首
:1,5 copy 7 块拷贝
:1,5 del 块删除
:1,5 move 7 块移动
:1,$s/string1/string2/g 全文件查找string1并替换为string2
:wq! 存盘退出。