• Vim编辑器操作技巧


    Vim编辑器

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文本编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。
    Vim是从 vi 发展出来的一个文本编辑器,具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
    基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)

    1.命令模式

    用户刚刚启动 vi/vim,便进入了命令模式。
    此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

    复制粘贴删除命令

    d 	删除字符,单个d本身没有任何涵义,但是它可以跟其他命令组合,完成一些快速操作。
    x 	删除当前字符(del键同此操作,X删除光标前一字符)
    dd 	删除当前行
    dw 	从光标开始删除整个单词(delete word)
    db 	从光标往前删除到单词开头
    d$ 	删除光标后面至行尾
    d^ 	删除光标前面至行首
    ndd n	删除光标所在行往后n行(包括光标行)
    yy	拷贝光标所在行
    nyy n 	拷贝光标所在行起往后n行(包括光标行)	
    p	粘贴yy所复制内容到光标下一行
    u	撤销上一步操作,可连续撤销
    gg&*yG  复制所有行
    

    全局移动

    # 注意:命令模式下,Backspance相当于←,Delete是删除光标字符
    h   向左移动 ←(Backspace同此)
    j   向下移动 ↓
    k   向上移动 ↑
    l   向右移动 → (注意是L)
    gg 	 移动到首行
    G 	 移动到末行
    Ctrl+f   向下翻页,即PageDown翻页
    Ctrl+b   向上翻页,即PageUp翻页
    

    行内移动

    w    或者 W 移动到下一个单词(word)
    b    或者 B 移动到上一个单词
    e    移动下一个单词结尾
    ^    移动到当前行第一个非空字符
    0    移动到行首(数字0)
    $    移动到行尾
    n<space>   按下数字后再按空格键,向后移动n个字符
    f{char}    光标移动到后面最近一个char字符(char为单个字符)
    F{char}    光标移动到前面最近一个char字符
    

    搜索替换

    /word	在光标之后搜索word字符串
    ?word	在光标之前搜索word字符串
    n	跳到上一个搜索结果(字符n)
    N	跳到下一个搜索结果
    :1,$s/word1/word2/g	  从首行到末行搜索word1,并替换成为word2
    :1,$s/word1/word2/gc      从首行到末行搜索word1,并替换成为word2,替换前需确认
    :n1,n2s/word1/word2/g     从n1行到n2行搜索word1,并替换成为word2
    

    进入插入模式

    # 要想编写文本内容,还必须在插入模式下进行操作,以下命令由命令模式进入到插入模式
    i   在当前光标前插入
    o   在当前光标下面新建空白行插入
    a   在光标后面插入字符(append)
    I   在行首插入, i^ => I
    A   在行尾插入,a$ => A
    O   在光标上面新建空白行插入
    s   删除当前光标字符,进入插入模式 
    r   进入单次字符替换模式(不提示,只替换光标字符一次)
    R   进入字符替换模式(一直替换光标字符)    
    

    2.插入模式

    插入模式下只只专注于输入文字信息。如需移动光标可退出插入模式到命令模式或使用箭头的方向按键。
    以下是一些插入模式下的常用命令:

    复制删除

    Ctrl+h	删除光标前一个字符,相当于Backspace按键
    Ctrl+w	删除光标前一个单词(如果光标在单词中间,删除光标前的单词字符)
    Ctrl+u	删除光标前至行首字符
    Ctrl+y	复制光标上一行的同列字符
    Ctrl+e	复制光标下一行的同列字符
    

    调整缩进

    Ctrl+t	增加缩进
    Ctrl+d	减少缩进
    

    3.底线模式

    随时按下esc可以退出底线命令模式回到命令模式

    写入退出

    :w		写入
    :w!		强制写入
    :q		退出
    :q!             强制退出(修改后但不想保存)
    :wq		写入退出
    :wq!            强制写入退出
    :w [filename]		  将编辑的数据保存另一个文件(默认使用当前路径)
    :n1 n2 w [filename]	  将n1至n2行的内容保存到另一个文件
    :! command	          暂时离开vi到终端执行command的显示结果
    

    vim环境变更

    :set nu 	显示行号
    :set nonu 	取消显示行号
    :n		跳到第n行  
    

    4.可视模式

    可视模式(VISUAL):主要用于选中一块编辑区域,然后在上面执行一些操作,比如删除、替换、注释、改变大小写等。可视模式下可使用命令模式下的移动光标命令去进行移动。

    激活方法

    # 按Esc键或Ctr+c键退出可视模式
    v	    激活可视字符(VISUAL)模式,用于逐个字符选择文本
    V	    激活可视行(VISUAL LINE)模式,用于逐行选择文本
    Ctrl+v	    激活可视块(VISUAL BLOCK)模式,用于块方式选择文本
    

    批量注释

    Ctrl+v进入可视块模式,然后移动光标选中你要注释的行,再按大写的I进入行首插入模式,输入注释符号如//或#,输出完毕后,按两下Esc键,Vim会自动将你选中的所有行首加上注释,保存退出完成注释

    取消注释

    Ctrl+v进入可视块模式,然后选中每行你要删除的行首的注释符号(注意//要选中两个),选好之后按d即可删除注释,Esc保存退出。

    代码对比

    vimdiff <file> <file>
    vim -d <file> <file>
    
    Ctrl+W Ctrl+W    # 切换左右窗口
    

    参考:

    [1] https://juejin.im/post/5d40349ee51d4561b76c73fa

    [2] https://blog.csdn.net/ii1245712564/article/details/46960387

  • 相关阅读:
    java.lang.OutOfMemoryError: bitmap size exceeds VM budget
    安装 android apk 提示应用程序未安装
    android Dialog去掉标题栏 和边框
    sqlite 中判断插入还是修改 REPLACE
    JAVA unicode转换成中文
    android listview button和EditText
    activity 接回返回值
    ActivityGroup 单击meun键没反应
    android.os.NetworkOnMainThreadException 异常处理
    android EditText或AutoCompleteTextView setOnKey事件问题
  • 原文地址:https://www.cnblogs.com/sincere-ye/p/14008793.html
Copyright © 2020-2023  润新知