• 【vim】插入模式与常用编辑操作


    vim不像很多编辑器那样一启动便可以直接编辑文本,需要在普通模式按下i, a等键才会进入插入模式进行文本编辑。

    如何进入插入模式

    以下的命令都会让vim从普通模式切换到插入模式,但命令执行后的字符插入位置有所不同。

    命令 执行后的字符插入位置
    i  当前字符之前
    I  当前行首第一个非空白字符之前 
    a  当前字符之后
    A  当前行尾
    s  删除当前字符,光标停留在下一个字符处
    S  删除当前行,光标停留在行首
    o  在当前行的下方插入一个新行,光标停在新行行首
    O  在当前行的上方插入一个新行,光标停在新行行首

    常用编辑操作

    上一篇文章《vim】正常模式下的一般操作》已经提到过,vim中的很多操作都可以指定数量、范围和方向等,编辑操作也不例外。为了简洁,下表不会和上一篇一样根据动作范围不同分类(如单词操作只给出w,不给出W,e,E,b,B等),而是只给出几个经典操作,排列组合的举例在下一小节介绍一些,具体的多种变化还是需要自己在实际使用中尝试和练习。

    类型
    命令 说明
    复制 yw  复制光标后的一个单词
    yy  复制当前行
    <n>yy  复制以下n行
    yG  复制当前行到文件末尾的内容
    y%、ya{  光标放在{上,复制{}及其内部中的内容
    剪切/删除 x  剪切当前字符,相当于dl
    X  剪切前一个字符,相当于dh
    dw、cw  剪切光标后的一个单词,d和c的区别是c会进入插入模式,下同
    D、C  剪切到行尾,相当于d$,c$
    dd、cc  剪切当前行
    <n>dd、<n>cc  剪切以下n行
    dG  剪切当前行到文件末尾的内容
    J  在上一行中任意位置按J,将会把下一行合并到这行末尾(Join)
    粘贴 p  将剪切板中的内容粘贴到光标后
    P  将剪切板中的内容粘贴到光标前
    替换 r  按下后,再输入字符将替换当前字符
    R  按下后,进入替换模式,将依次替换之后字符
    撤销 u  
    重做 <Ctrl>+r  
    缩进 >>   当前行向右缩进
    <<  当前行向左缩进
    <n>>>  以下n行向右缩进
    <n><<  以下n行向左缩进
    ==  自动调整当前行的缩进,使之与上下文
    <n>==  自动调整以下n行的缩进
    gg=G  自动调整文件所有行的缩进
    转换大小写  ~  转换当前字符的大小写
    guw  将光标后的单词全部变为小写
    gUw  将光标后的单词全部变为大写
    guu  将当前行全部变为小写
    gUU  将当前行全部变为大写
    块注释* 注释

     假如要将第8行到第16行的内容用//注释掉,步骤是
     1. 光标定位到第8行行首
     2. 按<Ctrl>+v进入可视模式(Visual Block)
     3. 按j或向下箭头,定位到第16行行首
     4. 按<Shift>+i,输入//
     5. 按一次或两次<Esc>

    取消注释

     假如要将第8行到第16行用//注释的内容取消注释,步骤是
     1. 光标定位到第8行行首
     2. 按<Ctrl>+v进入可视模式(Visual Block)
     3. 按j或向下箭头,定位到第16行行首,按l或向右箭头,选中//
     4. 按d或x,删除//

     *其中块注释用到了可视模式的操作,这本应该在后面某篇中介绍的,但这个操作很重要,所以在这里介绍一下。取消注释第3步中定位到第16行行首和向右移动选中//两个操作,可以互换。

    组合命令示例

    y3w  复制光标后3个单词
    d2$  剪切光标到下面第2行的末尾
    >}  将当前行到下一个空行之间的内容向右缩进
    =%  光标放在{或}上,执行后自动缩进{}中间的内容
    3gUU  将以下3行全部变为大写
    dt<c>  在当前行内,删除从光标处到后面第1个字符<c>的内容

    不常用的编辑操作

    .  (小数点) 可以重复上一次的命令
    <n><Command>  重复某个命令n次
    :r!date  插入日期

  • 相关阅读:
    Flink学习四:Flink运行架构
    Flink学习三:Flink安装
    Flink学习二:Flink基本架构
    进程的作业
    并发编程
    粘包解决模板
    网络下载作业
    网络通信远程操控
    网络编程套接字
    网络编程基础之网络协议篇
  • 原文地址:https://www.cnblogs.com/zzqcn/p/4660572.html
Copyright © 2020-2023  润新知