zoukankan      html  css  js  c++  java
  • vim 第三章 插入模式

    vim 第三章  插入模式

    在普通模式下可以删除  复制   及粘贴的命令   
    在插入模式下也存在以中方便快捷的方式    能够粘贴寄存器中文本  
    两种方式来插入键盘上不存在的非常用字符
    替换模式是插入模式的一种特例,它会提花文档中已有的字符
    子模式     :插入-普通模式   可以让我们执行一个普通模式命令,之后马上又回到插入模式
    自动不全是插入模式中才能使用的高级功能
    技巧13 在插入模式中可即时更正错误
     
    除了退格键   另外的一些命令
    在插入模式下的动作组合键
    按键操作  用途
    ctrl-h 删除前一个字符   同退格键
    ctrl-w 删除前一个单词
    ctrl-u 删除至行首
    上面的组合键  不是在插入模式独有    也不是在vim独有      在vim的命令行模式中   以及在bash shell中也可以同样使用他们
     
     
    技巧 14 返回普通模式
    插入模式仅仅专注做一件事    输入文字    介绍这两种模式间的切换   
    <ESC>键子远   可以用ctrl-[  组合键来代替   前面的键
    <ESC>  切换到普通模式
    <C-[> 切换到普通模式
    <C-o> 切换到插入-普通模式
    当处于插入模式时,想运行一个普通模式命令   然后马上糊掉原来的位置继续输入会用到插入-普通模式
    此模式为普通模式的一个特例,它能让我们执行一个普通模式命令 。我们可以执行一个普通模式命令 ,执行完后,马上就又返回到插入模式。
    <C-o>zz   在插入-普通模式中触发这条命令    操作完成后直接回到插入模式   因此可以不受中断地继续打字
     
    技巧15 不离开插入模式  粘贴寄存器中的文本
    vim的复制和粘贴操作一般都在普通模式中执行,不过有时我们也许想不离开插入模式 就能往文档里粘贴文本
    *重新映射大小写转换键 CapsLock     普通模式时   j k命令为移动光标      而J命令用来把当前行和下一行连接在一起
    K命令用与查看处于光标之下的那个单词的手册页。
    如果修改大小写映射   需要在系统级别去修改,这样不仅vim会改变   系统其他地方也会改变
     
    例题:
    Practical Vim,by Drew Neil
    Read Drew Neil's
    将第一行的书名插入到最后一行,补全该行
    1. yt 当前光标位于第一行行首    复制“Practical Vim”到专用寄存器中
    2. jA空格 调整光标位置  第二行的行尾  并且输入空格
    3. <C-r>0 将刚才复制的文本粘贴到光标所在的位置
    4. .<ESC> 输入.    并退出到普通模式
    针对上面的第3条命令
    <C-r>{register} 后面的为寄存器的名字、
    <C-r><C-p>{register}更加只能   会按愿义插入寄存器内的文本  并修正任何不必要的缩进
    技巧16 随时随地做运算
    表达式寄存器允许我们做一些运算,并把运算结果直接插入到文档中  
    此寄存器是个另类  可以用来执行一段vim脚本  并且返回其结果。
    =指明使用表达式寄存器   在插入模式中  输入<C-r>=即可访问  在屏幕下方的提示符后输入   <CR>     
    vim会把执行的结果插入到文档的当前位置。
            例如:
    33 55 2 相乘得
    1. A 调整光标到最后 并输入
    2. <C-r>=33*55*2<CR> 使用表达式寄存器  计算结果
     
    技巧17 用字符编码插入非常用字符
    非键盘上的字符 输入方法
    <C-v>{code} 后面的code为字符的编码 ascII unicode
    3位数子 大写字母A
    <C-v>065
    超过3位数的字符 可以用4位16进制编码来输入
    <C-v>u{1234}

    如果想知道文档中任意字符的编码   仅需要将光标移到它上面并按ga命令即可

    <C-v>命令后面跟一个非数字键 会插入这个按键本身所代表的字符
    按键操作 用途
    <C-v>{123} 以十进制字符编码插入字符
    <C-v>u{1234} 十六进制字符编码插入字符
    <C-v>{nondigit} 按愿义插入非数字字符
    <C-k>{char1}{char2} 插入以二合字母{char1}{char2}表示的字符
    技巧18 用二合字母插入非常用字符
    为便于记忆  用二合字符输入代表的字符
    例如 ?I 表示的“ ?”字符
    <C-k>?I   就可以输入后面的倒问号
    选择二合字母时尽量使之具有描述性    这样更容易记忆   
    《》分别以<<    >>表示
    1/2   1/4   分别以12     14  来表示
    :h digraphs-default 缺省二合字母集依从一定的惯例
    :digraphs 查看可用的二合字母列表
    :h digraph-table 查看另一个更为有用的列表
    技巧19 用替换模式替换已有文本、
    在替换模式中输入会替换文档中已有文本   除此之外  该模式与插入模式完全相同
    例题:
    asdf.But in asjdfl
    laskdjflj
    将上面的两句话合并成一句话    需要将.改为,并且将B该为b
    1. f. 移动光标找.
    2. R, b<ESC> 将.替换为, b   然后回到普通模式
     
     
    注意
    虚拟替换模式替换制表符
    某些字符会使替换模式变得复杂化   tabstop设置宽度
    :h 'tabstop'
    当光标位于制表符上时      假设当前宽度为8    进入替换模式  输入的下一个字符将会替换制表符  也就是将8个字符替换为一个字符   会缩短当前行的长度
    此时出现了另外一种替换模式  成为虚拟替换模式   由gR命令触发   将制表符当成一组空格进行处理    光标位于制表符上  然后切换到虚拟替换模式  在输入前7个字符时  每个字符都会被插入到制表符之前   最后第8个字符会替换制表符
    在此模式中    会按照屏幕上的实际宽度来替换字符  而不是文件中所保存的字符进行替换   这样会减少意外的发生  
    所以尽量采用虚拟替换模式
    单次版本的替换及虚拟替换
    r{char}和gr{char}命令允许我们覆盖一个字符   之后马上又回到普通模式
  • 相关阅读:
    上周热点回顾(12.1212.18)
    上周热点回顾(11.2111.27)
    上周热点回顾(11.1411.20)
    博客园电子期刊2011年11月刊发布啦
    “CDN加速”测试
    上周热点回顾(11.2812.4)
    上周热点回顾(12.1912.25)
    上周热点回顾(12.512.11)
    提醒:安装MS11100 .NET Framework高危漏洞补丁一定要所有服务器一起安装
    郑州公积金
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7902537.html
Copyright © 2011-2022 走看看