zoukankan      html  css  js  c++  java
  • linux vi文本编辑器三种模式切换及常用操作

    初学者刚进入vi不要乱点键盘,vi的三种模式和各种命令很容易弄混@@

    vi编辑器是Unix系统最初的编辑器。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。

    vi共分为三种模式:命令模式,编辑模式,末行模式

    (1)命令模式

    命令模式为vi的初始模式。在普通权限下键入“”$ vi 文件名 “”或 临时root用户下键入 “# vi 文件名”(例:root@XXX-virtualBox:/ect# vi vsftpd.conf),则初始进入vi的命令模式。  编辑模式下按esc进入命令模式。网上很多写在末行模式按esc可进入命令模式,我的电脑进入末行模式后几乎所有按键都是输入,输入esc显示“^[”而不会退回到命令模式。所以如果有情况和我相同进入末行模式不能转换模式的,不要乱按回车键(我回车换行后退出不了。。结果按截屏键退到桌面强制退出vi@@)。

    命令模式中:

    ZZ:退出vi

    h或<-左键:左移一个字符

    j或下键:下移一行

    k或上键:上移一行

    l或右键:右移一个字符

    pageDown(或ctrl+F):下翻一屏

    pageUp(或ctrl+B):上翻一屏

    G:移动到缓冲区的最后一行

    num G:移动到缓冲区中第num行

    gg:移动缓冲区的第一行

    x:删除当前光标所在位置的字符

    dd:删除当前光标所在行

    dw:删除当前光标所在位置的单词

    d$:删除当前光标所在位置至行尾的内容

    J:删除当前光标所在行行尾的换行符(拼接行)

    u:撤销前一编辑命令

    a:在当前光标后追加数据

    A:在当前光标所在行行尾追加数据

    r char:用char替换当前光标所在位置的单个字符

    R text:用text覆盖当前光标所在位置的数据,直到按下ESC键

    很容易误按的一个命令:qq:左下角会出现“recording@”这个标识。这是vim的一个强大的功能。它可以录制一个宏,参考

     http://www.netingcn.com/vim-recording-function.html
    按q可停止宏录制
     
     
    (2)编辑模式
    在命令模式中按下【i,I,o,O,a,A,r,R】等字母之后进入编辑模式。按下上述的字母时,画面的左下方可能会出现【--INSERT--或--插入--】的字样,可以做文字数据输入。各个按键含义如下:
    a:在光标后开始插入
    A:在行尾开始插入
    i:从光标所在位置前面开始插入
    I:从光标所在列的第一个非空白字元面前开始插入
    o:在光标所在列下新增一列并进入输入模式
    O:在光标所在列上方新增一列并进入输入模式
     
    ESC:返回命令模式
     
    (3)末行模式
    网上很多说在命令模式中输入【:】会进入末行模式,我的电脑:没有效果。需要在大写模式(按CapsLock键)再按q键最末行会出现:,注意这时不能再切换回其他模式(如果可以请留言我修改,谢谢)。可在:后输入命令
    :q 如果有未修改缓冲区数据,退出。
    :q! 取消所有对缓冲区数据的修改并退出【不保存直接退出】
    :w filename 将文件保存到另一个文件中
    :wq将缓冲区数据保存到文件中并退出
    :sp上下分屏
    :vsp左右分屏
    ctrl+w+w切换屏
     
    有些资料写命令模式中输入【/】进入末行模式,和:的命令不同,/后可输入查找内容或一些命令。如果/后输入错误的命令会自动回到命令模式
     
  • 相关阅读:
    Spring Boot 自定义属性 以及 乱码问题
    IDEA 修改文件编码
    Gojs简单例子
    无法转换json问题 Error: Model.nodeDataArray value is not an instance of Array or NodeList or HTMLCollection
    java json转换
    git设置HTTP代理
    thymeleaf中的日期格式化
    thymeleaf:字符串Strings常见的使用方法
    thymeleaf+bootstrap,onclick传参实现模态框中遇到的错误
    Thymeleaf教程 (十二) 标签内,js中使用表达式
  • 原文地址:https://www.cnblogs.com/tangtangde12580/p/8027639.html
Copyright © 2011-2022 走看看