vi操作

合集下载

vi操作

vi操作

(1)撤消前一个命令:在最后一个命令之后立即输入u来撤消该命令
(2)重复某个命令:“.”
(3)撤消对一行的更改:输入U来撤消你对一行所做的所有更改,这个命令只有在你没将光标移动到该行以外时才生效。
4、删除文本
(1)删除一个字符:
(3)删除一行:将光标放置到该行的任意处并输入dd
(4)删除多行:ndd
(5)删除行的部分内容:将光标放置到该行要保存部分的右边,并输入D。为删除光标左边的所有内容,须将光标放置到该行要删除部分的右边,并输入d0(d-零)。
(6)删除到文件的结尾:为删除从当前行到文件结尾的所有内容,需输入dG
vi的三种模式
vi编辑器的启动与退出
1. vi的启动
输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。
(1) vi
进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。
(2) vi file1
vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)。
3、末行模式(last line mode)—执行待定命令
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,就是将末行模式(last line mode)也算入命令行模式command mode)。
vi编辑器的三种模式
1、命令模式(command mode)—执行命令
在该模式中,可以输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

vi使用技巧

vi使用技巧

vi使用技巧Vi是一款经典的文本编辑器,常被程序员和系统管理员使用。

下面是一些Vi使用的技巧,可以提高编辑效率和操作体验。

1. 模式切换:Vi有两种模式,命令模式和插入模式。

命令模式下可以进行复制、粘贴、删除等操作,插入模式下可以输入文字。

在命令模式按下 "i" 键进入插入模式,在插入模式按下"Esc" 键返回命令模式。

2. 光标移动:使用 "h"、"j"、"k"、"l" 键(分别对应左、下、上、右)可以在命令模式下移动光标。

使用 "gg" 和 "G" 键可以分别跳到文件开头和结尾。

使用 "0" 键可以跳到行首,使用"$" 键可以跳到行尾。

3. 复制和粘贴:在命令模式下将光标移到要复制的地方,按下"yy" 键复制当前行,或者按下数字 + "yy" 键复制多行。

然后将光标移到要粘贴的位置,按下 "p" 键粘贴。

4. 删除和撤销:在命令模式下按下 "dd" 键可以删除当前行,或者按下数字 + "dd" 键删除多行。

按下 "u" 键可以撤销最后的操作。

5. 查找和替换:在命令模式下按下 "/" 键可以进行查找操作,输入要查找的关键词并按下 "Enter" 键。

按下 "n" 键可以跳转到下一个匹配项。

按下 ":%s/old/new/g" 可以替换整个文件中的 "old" 字符串为 "new" 字符串。

6. 多文件编辑:使用 "vi filename" 的方式可以打开指定的文件。

linux文件编辑vi的常见操作命令

linux文件编辑vi的常见操作命令

linux文件编辑vi的常见操作命令vi是一款常用的文本编辑器,在Linux系统中被广泛使用。

下面将介绍vi的常见操作命令,帮助初学者快速掌握vi的基本使用。

1. 打开文件:使用vi命令加上要编辑的文件名,例如`vi filename`。

如果文件不存在,则会创建一个新文件。

2. 保存文件:在正常模式下,按下`:w`命令可以将文件保存。

如果文件是新创建的,需要指定文件名,例如`:w newfilename`。

3. 退出vi:在正常模式下,输入命令`:q`可以退出vi。

如果文件有未保存的修改,vi会提示保存或放弃修改。

如果想强制退出vi,可以使用命令`:q!`。

4. 插入文本:在正常模式下,按下`i`命令可以进入插入模式,在光标位置前插入文本。

按下`a`命令可以在光标位置后插入文本。

按下`o`命令可以在下一行插入新行并进入插入模式。

5. 删除文本:在正常模式下,按下`x`命令可以删除光标所在位置的字符。

按下`dd`命令可以删除整行。

按下`dw`命令可以删除一个词。

按下`d$`命令可以删除光标位置到行尾的内容。

6. 复制和粘贴文本:在正常模式下,按下`yy`命令可以复制整行。

按下`yw`命令可以复制一个词。

按下`p`命令可以粘贴复制的内容。

7. 撤销和重做:在正常模式下,按下`u`命令可以撤销上一步操作。

按下`Ctrl + r`命令可以重做被撤销的操作。

8. 查找和替换:在正常模式下,按下`/text`命令可以向下查找匹配的文本。

按下`?text`命令可以向上查找匹配的文本。

按下`:%s/old/new/g`命令可以替换全文中的old为new。

9. 移动光标:在正常模式下,按下`h`命令可以将光标向左移动一个字符。

按下`j`命令可以将光标向下移动一行。

按下`k`命令可以将光标向上移动一行。

按下`l`命令可以将光标向右移动一个字符。

按下`gg`命令可以将光标移动到文件开头。

按下`G`命令可以将光标移动到文件末尾。

Vi基本操作

Vi基本操作

Vi基本操作首先看一下vi的三种模式的转换图:编辑模式下想进入命令模式,则需要先按Esc进入普通模式,这按“:”即进入了命令模式.再命令模式下想进入编辑模式,则需要先按Esc键,然后再按“i,a,o,O,s,S”等进入编辑模式.三种模式的简单说明:1、普通模式:使用Vi打开一个文件后,默认是普通模式,即不能进行输入,仅可以执行一些操作命令;2、编辑模式:在此模式下可以进行常规的输入操作,可以在左下角看到插入的标记“-- 插入--”或“-- INSERT --”;3、命令模式:在命令模式下,主要是执行保存、退出、搜索、替换等操作,则左下角可以看到“:”,并有光标闪烁等待输入命令.普通模式:普通模式转为编辑模式0:在光标所在行的上一行新增一行o:在光标所在行的下一行新增一行a:从当前光标所在的位置的下一个字符开始输入i:在光标所在的位置插入新输入的字符s:删除光标后的一个字符,然后进入插入模式;S:删除光标所在的行,然后进入插入模式;移动h:将光标向左移动一格l:将光标向右移动一格j:将光标向下移动一格k:将光标向上移动一格$:将光标移到当前行的最后面数字0:将光标移到当前行的最前面G :将光标移到最后一行的开头gg:将光标移到首行开头w或W:将光标移到下一个字e或E:将光标移到本单字的最后一个字符;如果光标所在位置为本单子的最后一个字符,则跳到下一个单字的最后一个字符.b:将光标移到本单词的第一个字符;如果光标所在位置为本单词的第一个字符,则跳到上一个单字的第一个字符.翻页ctrl+b:将页面向前卷动一页ctrl+f:将页面向后卷动一页ctrl+u:将光标向前移动半页ctrl+d:将光标向右移动半页ctrl+e:屏幕向下卷动一行,也可以说文章和光标向上卷动一行ctrl+y:屏幕向上卷动一行,也可以说文章和光标向下卷动一行复制文字yy:可将光标目前所在位置的正行复制,复制时不会将文字反白显示nyy:其中n为数字键,表示要复制的行数,若按3yy,则连同光标所在的位置的一行,与下面2行一起复制yw:可复制光标所在位置到整个单词结束的字符nyw:n表示要复制的单词数目,若按3yw,则会将目前光标所在位置到单词结束,以及后面的2个字一起复制p:可将复制的文字粘贴到当前光标所在的位置.若复制的是整行文字,则会将整行内容粘贴在光标所在位置的下一行shift+p 在光标之前粘帖删除文字d:先按d键,放开后按←键,可将光标位置前一个字符删除;按→键,则会将光标位置的字符删除;按↑键,可将当前光标所在的行与前一行一并删除.按↓键,可将当前的光标所在的行与下一行删除.D:可删除一行中光标所在位置之后的所有字符.dd:连续按2次d键可删除光标所在的那一行.dw:将光标停在某个字的第一个字符,按dw键时,会将此字整个删除.如将光标置在某个字中间的字符上,则会将此字中光标后面的字符删除.nd:n为数字,如按3d,再按下↑键,则删除光标上方的3行,再包括本身1行,共删除4行.若按下↓键,则删除光标下方3行再包括本身1行,共4行.ndd:若按3dd键,表示删除当前光标位置的1行和下面的2行. x:删除光标所在位置的字符X:删除光标所在位置的前一个字符,与d+←键一样nx:按4x键,表示删除光标位置后的3个字符和光标本身所在的字符nX:按4X键,表示删除光标位置之前的4个字符不包括光标的字符J:清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起;命令行:欲进入命令模式,需要先进入普通模式,然后输入“:”即可w:保存文件q:退出wq:保存并退出q:不保存,强制退出wq ----强制保存退出x ----- 作用和:wq 一样ZZ ---- 作用和:wq一样,注意Z是大写的,并且不是在命令模式查找及替换文字/或:当药搜索文章中的某一个字符串时,可输入“/”或“”,然后在输入要查找的字符串.例如输入“/kuka”,然后按回车键,vim就会把所有的gz字符串标记起来,并自动将光标移到第一个找到的字符串上.n:将光标移到下一个找到的字符串上N:将光标移到上一个找到的字符串上r:替换光标所在的位置的字符.修改内容不一定要进入insert mode,在normal mode中,只要将光标移到要更改的字符上,然后按R键,就可以输入要查找的字符了.R:连续替换光标所在的位置的字符,按Esc键停止替换cc:按cc键可以替换光标所在的那一行替换字符串:当要将文章中的某一个字符串全部替换时例如将所有的temp替换成tmp,使用“:g/temp/s//tmp/g”或“:1,$stemp/tmp /g”命令,可立刻将所有的“temp”替换成“tmp”字符串.如果不是所有的“temp”字符串都要替换时,可用“:g/temp/s//tmp /gc”或“:1/,$stemp/tmp/gc”命令.则找到每一个“temp”字符串时,都会将整行显示在屏幕的下方,可输入“y”或“n”决定是否要替换.显示光标所在的行数、移到指定的行数^g、^G:按次组合键,则会在最下方处显示光标所造位置的行数,以及文章的总行数.nG 或 ngg:n为数字,若按下20G,则可将光标移到第20行.撤销和还原^u:按此键就是在执行undo命令,可取消前一次的操作^r:按此键就是执行redo命令,可以恢复刚才undo的操作注:^ 代表 ctrl 键.。

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次。

vi操作

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操作说明

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操作

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退出,则其余行的第一列的#将显示出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

进入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:取出寄存器?中的内容并将其放到光标位置处。

这里?可以是一个字母,也可以是一个数字ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

一、插入文本┌──┬────────────┐│命令│描述│├──┼────────────┤│i │在当前字符前插入文本│├──┼────────────┤│I │在行首插入文本│├──┼────────────┤│a │在当前字符后添加文本│├──┼────────────┤│A │在行末添加文本│├──┼────────────┤│o │在当前行后面插入一空行│├──┼────────────┤│O │在当前行前面插入一空行│├──┼────────────┤│R │以改写方式输入文本│└──┴────────────┘二、移动光标┌─────┬───────────┐│命令│描述│ ├─────┼───────────┤│j或下箭头│向下移动一行│ ├─────┼───────────┤│k或上箭头│向上移动一行│ ├─────┼───────────┤│h或左箭头│左移一个字符│ ├─────┼───────────┤│l或右箭头│右移一个字符│ ├─────┼───────────┤│w │右移一个词│ ├─────┼───────────┤│W │右移一个以空格分隔的词│ ├─────┼───────────┤│b │左移一个词│ ├─────┼───────────┤│B │左移一个以空格分隔的词│ ├─────┼───────────┤│0 │移到行首│ │Ctrl-F│向前翻页│├─────┼───────────┤│Ctrl-B│向后翻页│ ├─────┼───────────┤│nG│到第n行│ ├─────┼───────────┤│G │到最后一行│ └─────┴───────────┘三、替换文本┌─────┬──────┐│命令│描述│├─────┼──────┤│$ │到行尾│├─────┼──────┤│( │到句子的开头│├─────┼──────┤│) │到句子的末尾│├─────┼──────┤│{│到段落的开头│├─────┼──────┤│}│到段落的末尾│└─────┴──────┘四、删除文本┌───┬───────────┐│命令│描述│├───┼───────────┤│r │替换一个字符│├───┼───────────┤│c │修改文本直到按下Esc健│├───┼───────────┤│cw│修改下一个词│├───┼───────────┤│cnw│修改接下来的n个词│└───┴───────────┘五、文本编辑┌──┬──────────────────────┐│命寺│描述│├──┼──────────────────────┤│yy│将一行文本移到缺省缓冲区中│├──┼──────────────────────┤│yn│将下一个词移到缺省缓冲区中│├──┼──────────────────────┤│ynw │将后面的n个词移到缺省缓冲区中│├──┼──────────────────────┤│p │如果缺省缓冲区中包含一行文本,则在当前│││行后面插入一个空行井将缺省缓冲区中的声│││容粘贴到这一行中;如果缺省缓冲区中包含│││多个词,把这些词粘贴到光标的右边.│├──┼──────────────────────┤│P │如果缺省缓冲区中包含一行文本,则正当前││ │行前面插入一个空行井将缺省缓冲区中的内│││容粘贴到这一行中;如果缺省缓冲区中包含││ │多个词,把这些词粘贴到光标的左边│└──┴──────────────────────┘六、保存退出┌───────────┬───────────────┐│命令│描述│ ├───────────┼───────────────┤│zz│保存并退出│ ├───────────┼───────────────┤│:w filename│写入文件│ ├───────────┼───────────────┤│:W│写入文件│├───────────┼───────────────┤│:x│保存(如果当前文件修改过)并退出│├───────────┼───────────────┤│:q!│不保存文件,直接退出│├───────────┼───────────────┤│:q│退出vi│└───────────┴───────────────┘VI常用技巧VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法。

本文旨在介绍VI的一些最常用命令和高级应用技巧。

一、基本命令介绍---- 1.光标命令k、j、h、l——上、下、左、右光标移动命令。

虽然您可以在Linux中使用键盘右边的4个光标键,但是记住这4个命令还是非常有用的。

这4个键正是右手在键盘上放置的基本位置。

nG——跳转命令。

n为行数,该命令立即使光标跳到指定行。

Ctrl+G——光标所在位置的行数和列数报告。

w、b——使光标向前或向后跳过一个单词。

---- 2.编辑命令i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。

cw、dw——改变(置换)/删除光标所在处的单词的命令(c=change、d=delete)。

x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。

---- 3.查找命令---- /string、?string——从光标所在处向后或向前查找相应的字符串的命令。

---- 4.拷贝复制命令---- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。

二、常见问题及应用技巧---- 1.在一个新文件中读/etc/passwd中的内容,取出用户名部分。

---- vi file---- :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd---- :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。

---- 您也可以在指定的行号后读入文件内容,例如使用命令“:3r /etc/passwd”从新文件的第3行开始读入/etc/passwd的所有内容。

相关文档
最新文档