zoukankan      html  css  js  c++  java
  • Vim 操作命令不完全汇总

    1. .命令:“重复上次修改”;
    2. x命令:删除光标下的字符;
    3. u命令:撤销上次修改;
    4. dd命令:删除整行;
    5. >G命令:增加从当前行到文档末尾处的层级缩进;
    6. $命令:把光标移至行尾;
    7. a命令:在光标之后添加内容;
    8. A命令:在当前行的结尾添加内容;
    9. f{char}命令:让Vim查找下一处指定字符出现的位置,如果找到了,就直接把光标移到那里;
    10. ;命令:重复查找上次f命令所查找的字符;
    11. *命令:光标会调到下一个匹配项上,所有出现这个词的地方都会被高亮显示出来;
    12. n命令:跳到下一个匹配项;
    13. cw命令:删除从光标位置到单词结尾见的字符,并进入插入模式;

    理想的模式:用一键移动,另一键执行。

    停顿时请移开画笔

    普通模式是Vim的自然放松状态,在普通模式中,我们有众多工具可以使用。

    把撤销单元切成块

    在Vim中,我们自己可以控制撤销的粒度。
    o 命令: 另起一行并进入插入模式。

    构造可重复的修改

    db 命令:删除从光标起始位置到单词开头的内容;
    dw 命令:删除整个单词;
    daw 命令:删除一个文本对象;

    能够重复,就别用次数

    d2w 命令:删除两个单词; is not better than dw . 命令;

    操作符 + 动作命令 = 操作

    操作符命令 动作命令
    c 修改 l 一个字符
    d 删除 aw 一个完整单词
    y 复制到寄存器 ap 一个段落
    g~ 反转大小写
    gu 转换为小写
    gU 转换为大写
    > 增加缩进
    < 减少缩进
    = 自动缩进
    ! 使用外部程序过滤{motion}所跨越的行

    在插入模式中可即时更正错误

    <C-h> 删除前一个字符
    <C-w> 删除前一个单词
    <C-u> 删除至行首

    返回普通模式

    <ESC> 切换到普通模式
    <C-[> 切换到普通模式
    <C-o> 切换到插入-普通模式

    zz 重绘屏幕

    不离开插入模式,粘贴寄存器中的文本

    <C-r>{register} 粘贴单词

    随时随地做运算

    <c-r>= 访问及表达式寄存器

    用字符编码插入非常用字符

    <C-v>{code} 以十进制字符编码插入字符
    <C-v>u{code} 以十六进制字符编码插入字符
    <C-v>{nondigit} 按原义插入非数字字符
    <C-k>{char1}{char2} 插入以二合字母{char1}{char2}表示的字符

    用替换模式替换已有文本

    R 进入替换模式
    gR 进入虚拟替换模式,会把制表符当做一组空格进行处理 ;在此替换模式中,我们是按屏幕上实际显示的宽度来替换字符的,而不是按文件中所保存的字符进行替换。这会减少意外情况的发生。
    r{char} 单次替换模式
    gr{char} 单次虚拟替换模式

    Vim具有3种不同的可视模式,分别用于操作字符文本、行文本或块文本。

    选择高亮选区

    1. 激活可视模式

    v 激活面向字符的可视模式;
    V 激活面向行的可视模式;
    <C-v> 激活面向列块的可是模式;
    gv 重选上次的高亮选区;

    1. 切换选区的活动端

    b 跳转单词词首
    e 跳转单词词尾
    o 切换活动的端点

    : 进入命令行模式

    :[range]delete [x] 删除指定范围的行 [到寄存器x中]
    :[range]yank [x] 复制指定范围的行 [到寄存器x中]
    :[line]put [x] 在指定行后粘贴寄存器x中的内容
    :[range]copy {address} 把指定范围内的行拷贝到{address}所指定的行之下
    :[range]move {address} 把指定范围内的行移动到{address}所指定的行之下
    :[range]join 连接指定范围的行
    :[range]normal {commands} 对指定范围内的每一行执行普通模式命令 {commands}
    :[range]subsitute/{pattern}/{string}/[flags] 对指定范围内出现{pattern}的地方替换为{string}
    [range]global/{pattern}/[cmd] 对指定范围内匹配{pattern}的所有行,在其上执行Ex命令{cmd}

    在一行或多个连续行上执行命令

    1. 用地址指定一个范围
      :{start},{end}
      . 代表当前行的地址
      % 代表当前文件中的所有行
      1 文件的第一行
      $ 文件的最后一行
      0 虚拟行,位于文件第一行上方

    2. 复制行,移动行
      :6t 把第6行复制到当前行下方
      :t6 把当前行复制到第6行下方
      :t. 为当前行创建一个副本
      :t$ 把当前行复制到文本结尾
      ’<, ‘>to 把高亮选中的行复制到文件开头

    :[range]move {address}

  • 相关阅读:
    【luogu P1307 数字反转】 题解
    【luogu P1111 公路修建】 题解
    字符串与正则运算
    Java 正则表达式的总结和一些小例子
    js -history.back(-1)和history.go(-1) 区别
    js
    html _ 提取html片段内的纯文本
    vue-x action 的相互调用
    java通过过滤器 设置跨域允许
    git-搭建企业git服务器
  • 原文地址:https://www.cnblogs.com/libinfs/p/7999606.html
Copyright © 2011-2022 走看看