• linux下vi命令


    Vi共分三种模式,分别是“一般模式”、“编辑模式”与“命令行命令模式”。

    1.一般模式:vi处理文件时,一进入该文件就是一般模式。在这个模式中,可以使用“上下左右”键来移动光标,可以使用“删除字符”或“删除整行”来处理文件内容,也可以用“复制、粘贴”来处理文件数据。

    2.编辑模式:在一般模式中可以进行删除、复制、粘贴等操作,却无法进行编辑操作,要等到按下“i、I、o、O、a、A、r、R”等字母后才会进入编辑模式。注意,通常在Linux中,按下上述字母时,画面左下方会出现“INSERT或REPLACE”的字样,才可以输入字符到文件中。回到一般模式时,则按下ESC键即可退出编辑模式。

    3. 命令行命令模式:在一般模式中,输入“:或/或?”就可以将光标移到最下面的一行,在这个模式中,你可以搜索数据,而且读取、存盘、大量删除字符、离开vi、显示行号等操作都是在此模式中实现。

    1、 使用vi进入一般模式

    [root@linux]# vi test.txt

    直接输入“vi+文件名”即可进入vi一般模式

    2、 按下i进入编辑模式

    在编辑模式中画面左下方会出现“INSERT”的字样。

    3、按下【ESC】键回到一般模式

    按下【ESC】键后马上就会发现画面左下角的—INSERT—不见了。

    4、 退出vi编辑器

    在一般模式中按下“:wq”为存储后离开vi,按下“:q”为不保存编辑离开vi。注退出时出现“只读”类的提醒时,可以在命令后加上“!”表示“强制”的意思。

    vi filename :打开或新建文件,并将光标置于第一行首
    vi +n filename :打开文件,并将光标置于第n行首
    vi + filename :打开文件,并将光标置于最后一行首
    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
    vi filename....filename :打开多个文件,依次进行编辑

    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   │替换一个字符      │
    ├───┼───────────┤
    │cw  │修改下一个词      │
    ├───┼───────────┤
    │cnw  │修改接下来的n个词   │
    └───┴───────────┘

    四、删除文本 
    ┌───┬─────────────┐ 
    │命令 │描述            │ 
    ├───┼─────────────┤ 
    │x   │删除当前光标下的字符    │ 
    ├───┼─────────────┤ 
    │dw   │删除光标之后的单词剩余部分│ 
    ├───┼─────────────┤ 
    │d$  │删除光标之后的该行剩余部分│ 
    ├───┼─────────────┤ 
    │dd   │删除当前行        │ 

    ├───┼─────────────┤ 
    │c   │功能和d相同区别在于完成删 │

    │   │ 除操作后进入INSERT MODE │ 
    ├───┼─────────────┤ 

    │cc  │也是删除当前行,然后进入  │

    │   │ INSERT MODE             │ 

    └───┴─────────────┘ 
    五、文本编辑 
    ┌──┬──────────────────────┐ 
    │命令│描述                    │ 
    ├──┼──────────────────────┤ 
    │yy │将一行文本移到缺省缓冲区中          │ 
    ├──┼──────────────────────┤ 
    │yn │将下一个词移到缺省缓冲区中          │ 
    ├──┼──────────────────────┤ 
    │ynw │将后面的n个词移到缺省缓冲区中        │ 
    ├──┼──────────────────────┤ 
    │p  │如果缺省缓冲区中包含一行文本,则在当前   │ 
    │  │行后面插入一个空行井将缺省缓冲区中的声   │ 
    │  │容粘贴到这一行中;如果缺省缓冲区中包含   │ 
    │  │多个词,把这些词粘贴到光标的右边.     │ 
    ├──┼──────────────────────┤ 
    │P  │如果缺省缓冲区中包含一行文本,则正当前    │ 
    │   │行前面插入一个空行井将缺省缓冲区中的内    │ 
    │  │容粘贴到这一行中;如果缺省缓冲区中包含    │ 
    │   │多个词,把这些词粘贴到光标的左边          |  

    └──┴──────────────────────┘ 

    六、保存退出 
    ┌───────────┬───────────────┐ 
    │命令         │描述             │ 
    ├───────────┼───────────────┤ 
    │zz          │保存并退出          │ 
    ├───────────┼───────────────┤ 
    │:w filename      │写入文件            │ 
    ├───────────┼───────────────┤ 
    │:W          │写入文件           │ 
    ├───────────┼───────────────┤ 
    │:x          │保存(如果当前文件修改过)并退出│ 
    ├───────────┼───────────────┤ 
    │:q!          │不保存文件,直接退出      │ 
    ├───────────┼───────────────┤ 
    │:q          │退出vi            │

    └───────────┴───────────────┘ 

    七、替换与查找

    1)        /word → 向光标之下查找一个名称为 word 的字符串。如想查找 eric4ever 字符串,输入 /eric4ever 即可

    2)        ?word → 向光标之上查找一个名称为 word 的字符串

    3)        n → 『重复前一个查找的动作』

    4)        N → 与 n 刚好相反,为『反向』进行前一个查找动作

    5)        :n1,n2s/word1/word2/g → n1 与 n2 均为数字。在第 n1 与 n2 行之间查找 word1 字符串,并将该字符串替换为 word2。如:在 1 到 9 行之间查找       eric4ever 并替换为 ERIC4EVER 则:『:1,9s/eric4ever/ERIC4EVER/g』

    6)        :1,$s/word1/word2/g → 从第一行到最后一行查找 word1 字符串,并将该字符串替换为 word2

    7)        :1,$s/word1/word2/gc → 从第一行到最后一行查找 word1 字符串,并将该字符窗替换为 word2,替换前显示提示对话框是否确认替换

     

  • 相关阅读:
    solr和mongodb比较
    IKAnalyzer原理分析
    maven项目java包名的路径问题
    solr的EmbeddedSolrServer原理深入探讨
    团队冲刺第二阶段06
    构建之法读书笔记06——敏捷流程
    团队冲刺第二阶段05
    团队冲刺第二阶段04
    团队冲刺第二阶段03
    团队冲刺第二阶段02
  • 原文地址:https://www.cnblogs.com/lclq/p/5757392.html
Copyright © 2020-2023  润新知