<i id='zyufe'></i>
<acronym id='zyufe'><em id='zyufe'></em><td id='zyufe'><div id='zyufe'></div></td></acronym><address id='zyufe'><big id='zyufe'><big id='zyufe'></big><legend id='zyufe'></legend></big></address>

  • <i id='zyufe'><div id='zyufe'><ins id='zyufe'></ins></div></i>

    <code id='zyufe'><strong id='zyufe'></strong></code>
    <dl id='zyufe'></dl>

  • <tr id='zyufe'><strong id='zyufe'></strong><small id='zyufe'></small><button id='zyufe'></button><li id='zyufe'><noscript id='zyufe'><big id='zyufe'></big><dt id='zyufe'></dt></noscript></li></tr><ol id='zyufe'><table id='zyufe'><blockquote id='zyufe'><tbody id='zyufe'></tbody></blockquote></table></ol><u id='zyufe'></u><kbd id='zyufe'><kbd id='zyufe'></kbd></kbd>

      <ins id='zyufe'></ins>
    1. <span id='zyufe'></span><fieldset id='zyufe'></fieldset>

            linux下vi编辑器命令大全

            • 时间:
            • 浏览:5
            • 来源:124软件资讯网

                功效最强在的编辑器——vi

                vi是所有UNIX系统都市提供的屏幕编辑器  ,它提供了一个视窗装备 ,通过它可以编辑文件 。固然 ,对UNIX系统略有所知的人  ,

                或多或少都以为vi超级难用  ,但vi是最基本的编辑器  ,以是希望读者能好好把它学起来  ,以后在UNIX天下里必将畅行无阻、

                游刃有余  ,由于其他几种文本处置惩罚器并非UNIX尺度配备  。说不定别人的Linux机械没安装joe或pico  ,若是您不会vi  ,那您可能就没辄了  。

                vi的基本观点

                基本上vi可分为三种操作状态 ,划分是下令模式(Command mode)、插入模式(Insert mode)和底线下令模式(Last line mode)  ,

                各模式的功效区分如下:

                1. Comand mode:控制屏幕光标的移动  ,字符或光标的删除  ,移动复制某区段及进入Insert mode下  ,或者到Last line mode  。

                2. Insert mode:唯有在Insert mode下  ,才可做文字数据输入  ,按Esc等可回到Comand mode  。

                3. Last line mode:将储存文件或脱离编辑器  ,也可设置编辑情况  ,如寻找字符串、列出行号等  。

                不外可以把vi简化成两个模式  ,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode  。

                vi的基本操作

                ?进入vi

                在系统提醒符号输入vi及文件名称后 ,即可进入vi全屏幕编辑画面:

                $ vi testfile

                有一点要特殊注重 ,就是您进入vi之后是处于“Command mode”下  ,您要切换到Insert mode才气输入文字 。

                首次用vi的用户都市想先用上下左右键移动光标  ,效果电脑一直叫 ,把自己气个半死  ,以是进入vi后  ,先不要乱动 ,

                转换入Insert后再说  。?切换至Insert mode编辑文件在Command mode下按‘i’、‘a’或‘o’三键就可进入Insert mode  。

                这时间您就可以最先输入文字了  。

                i: 插入 ,从现在光标所在之处插入所输入的文字 。

                a: 增添 ,现在光标所在的下一个字最先输入文字 。

                o: 插入新的一行 ,从行首最先输入文字 。

                ?Insert的切换→Command mode  ,按Esc键

                您现在处于Insert mode ,您就只能一直打字  。如果您发现打错字了  ,想用光标键往回移动 ,将该字删除 ,

                就要按ESC键转换回Command mode ,再删除文字 。

                ?脱离vi及存文件

                在Command mode下  ,可按冒号“:”键入入Last line mode ,例如:

                :w filename (输入“w filename”  ,将文章存入指定的文件名filename)

                :wq (输入“wq”  ,由于进入之时已经指定文件名testfile  ,以是会写入testfile并脱离vi)

                :q! (输入“q!”  ,强制脱离并放弃编辑的文件)

                Command mode功效键列表

                在先容command mode指令的时后 ,指令后面加上“常用”字眼的功效键 ,表现比力常用的vi指令 ,

                请读者您一定要学会、记着  。

                (1)I、a、o切换进入Insert mode  。[超级常用]

                (2)移动光标

                vi可以直接用键盘上的光标键来上下左右移动  ,但正规的vi是用小写英文字母

                h、j、k、l  ,划分控制光标左、下、上、右移一格  。

                按Ctrl+B:屏幕往后移动一页  。[常用]

                按Ctrl+F:屏幕往前移动一页  。[常用]

                按Ctrl+U:屏幕往后移动半页  。

                按Ctrl+D:屏幕往前移动半页  。

                按 0 (数字零):移动文章的开头 。[常用]

                按 G:移动到文章的最后 。[常用]

                按 w:光标跳到下个word的开头  。[常用]

                按 e:光标跳到下个word的字尾  。

                按 b:光标回到上个word的开头 。

                按 $:移到光标所在行的行尾 。[常用]

                按 ^:移到该行第一个非空缺的字符 。

                按 0:移到该行的开头位置 。[常用]

                按 #:移到该行的第#个位置  ,例:51、121 。[常用]

                (3)删除文字

                x:每按一次删除光标所在位置的后面一个字符  。[超常用]

                #x:例如  ,6x 表删除光标所在位置的后面6个字符  。[常用]

                X:大字的X ,每按一次删除光标所在位置的前面一个字符  。

                #X:例如 ,20X 表删除光标所在位置的前面20个字符  。

                dd:删除光标所在行  。[超常用]

                #dd:例如  ,6dd表删除从光标所在的该行往下数6行之文字  。[常用]

                (4)复制

                yw:将光标所在处到字尾的字符复制到缓冲区中  。

                (想在和#x、#X的功效相反)

                p:将缓冲区内的字符粘贴到光标所在位置(指令‘yw’与‘p必须搭配使用)  。

                yy:复制光标所在行  。[超常用]

                p:复制单行到您想粘贴之处  。(指令‘yy’与‘p’必须搭配使用)

                #yy:如:6yy表现拷贝从光标所在的该行往下数6行之文字 。[常用]

                p:复制多行到您想粘贴之处 。(指令‘#yy’与‘p’必须搭配使用)

                “ayy:将复制行放入buffer a, vi提供buffer功效 ,可将常用的数据存在buffer

                “ap:将放在buffer a的数据粘贴  。

                “b3yy:将三行数据存入buffer b  。

                “b3p:将存在buffer b的资料粘贴

                (5)取代

                r: 取代光标所在处的字符:[常用]

                R:取代字符直到按Esc为止  。

                (6)回复(undo)上一个指令

                u:如果您误操作一个指令  ,可以马上按u  ,回复到上一个操作  。[超常用]

                .: .可以重复执行上一次的指令  。

                (7)更改

                cw:更改光标所在处的字到字尾$处  。

                c#w:例如 ,c3w代表更改3个字 。

                (8)跳至指定行

                Ctrl+G:列出光标所在行的行号 。

                #G:例如  ,15G  ,表现移动光标至文章的第15行行首  。[常用]

                Last line mode下指令简介

                读者您要使用Last line mode之前  ,请记得先按Esc键确定您已经处于Command mode下后  ,再按冒号“:”或“/”或“?”

                三键的其中一键进入Last line mode  。

                1.列出行号

                set nu: 输入“set nu”后  ,会在文章的每一行前面列出行号  。

                2.跳到文章的某一行

                #:井号代表一个数字  ,在Last line mode提醒符号“:”前输入数字 ,再按Enter就会跳到该行了  ,

                如:15[Enter]就会跳到文章的第15行  。[常用]

                3.寻找字符串

                /要害字:先按/  ,再输入您想寻找的字 ,若是第一次找的要害字不是您相尽可能的  ,可以一直按n会往下寻找到您要的要害字为止  。

                ?要害字:先按?  ,再输入您想寻找的字  ,若是第一次找的要害字不是您想要的  ,可以按n会往前寻找到您要的要害字为止 。

                4.取代字符串

                1  ,$s/string/replae/g:在last line mode输入“1  ,$s/string/replace/g”会将全文的string字符串取代为replace字符串  ,

                其中1,$s就是指征采区间为文章重新至尾的意思  ,g则是表现所有取代不必确认 。

                %s/string/replace/c:同样会将全文的string字符串取代为replace字符串  ,和上面指令差别的地方是  ,%s和1,$s是相同的功效 ,

                c则是表现要替换之前必须再次确认是否取代 。

                1,20s/string/replace/g:将1至20行间的string替换为relpace字符串  。

                5.存文件

                w:在last line mode提醒符号“:”前按w即可将文件存起来  。[超常用]

                #  ,# w filename:若是您想摘取文章的某一段 ,存成另一个文件  ,可用这个指令#代表行号  ,例如30,50 w nice  ,

                将您正在编辑文章的第30~50行存成nice这个文件  。

                6.脱离

                q:按q就脱离  ,有时若是无法脱离vi  ,可搭配“!:强置脱离vi  ,如“q!”

                qw:一样平常建议脱离时  ,搭配w一起使用  ,云云脱离时还可存文件

                进入vi的下令

                vi filename :打开或新建文件  ,并将光标置于第一行首

                vi +n filename :打开文件  ,并将光标置于第n行首

                vi + filename :打开文件 ,并将光标置于最后一行首

                vi +/pattern filename:打开文件  ,并将光标置于第一个与pattern匹配的串处

                vi -r filename :在上次正用vi编辑时发生系统瓦解  ,恢复filename

                vi 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:从光标最先处向文件首搜索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的使用

                --------------------------------------------------------------------------------

                一、插入文本

                ┌──┬────────────┐

                │下令│形貌          │

                ├──┼────────────┤

                │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的所有内容 。

                ---- 我们还可以使用以下要领删掉文件中所有的空行及以#最先的注释行 。

                ---- #cat squid.conf.default | grep -v ^$ | grep -v ^#

                ---- 2.在打开一个文件编辑后才知道登录的用户对该文件没有写的权限  ,不能存盘  ,需要将所做修改存入暂时文件  。

                ---- vi file

                ---- :w /tmp/1 生存所做的所有修改  ,也可以将其中的某一部门修改生存光临时文件  ,例如仅仅把第20~59行之间的内容存盘成文件/tmp/1  ,我们可以键入如下下令  。

                ---- vi file

                ---- :20,59w /tmp/1

                ---- 3.用VI编辑一个文件  ,但需要删除大段的内容 。

                ---- 首先使用编辑下令“vi file”打开文件  ,然后将光标移到需要删除的行处按Ctrl+G显示行号 ,再到末端处再按Ctrl+G ,显示文件末端的行号  。

                ---- :23,1045d 假定2次获得的行号为23和1045  ,则把这时代的内容全删除 ,也可以在要删除的最先行和竣事行中用ma、mb下令标志 ,然后使用“:a,bd”下令删除 。

                ---- 4.在整个文件的各行或某几行的行首或行尾加一些字符串  。

                ---- vi file

                ---- :3,$s/^/some string / 在文件的第一行至最后一行的行首插入“some string”  。

                ---- :%s/$/some string/g 在整个文件每一行的行尾添加“some string”  。

                ---- :%s/string1/string2/g 在整个文件中替换“string1”成“string2”  。

                ---- :3,7s/string1/string2/ 仅替换文件中的第3行到第7行中的“string1”成“string2”  。

                ---- 注重: 其中s为substitute  ,%表现所有行 ,g表现global  。

                ---- 5.同时编辑2个文件 ,拷贝一个文件中的文本并粘贴到另一个文件中 。

                ---- vi file1 file2

                ---- yy 在文件1的光标处拷贝所在行

                ---- :n 切换到文件2 (n=next)

                ---- p 在文件2的光标所在处粘贴所拷贝的行

                ---- :n 切换回文件1

                ---- 6.替换文件中的路径  。

                ---- 使用下令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin 。也可以使用下令“:%s//usr/bin//bin/g”实现  ,其中“”是转义字符  ,讲明厥后的“/”字符是具有现实意义的字符  ,不是分开符  。