zoukankan      html  css  js  c++  java
  • VsVim的快捷键

    VsVim - Shortcut Key (快捷键)

    Enable / Disable

    还可以通过 Ctrl+Shift+F12 在 Visual Studio 中实现 Enable / Disable。

    vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模式。

    vim一共有4个模式:

    • 正常模式 (Normal-mode) 
    • 插入模式 (Insert-mode)
    • 命令模式 (Command-mode)
    • 可视模式 (Visual-mode)

    正常模式

    启动vim后默认处于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)都会进入正常模式。

    插入模式

    在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。

    命令模式

    在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。

    常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。

    可视模式

    在正常模式中按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。

    1.插入命令(可配合数字使用)
         i                               在当前位置前插入
         I                               在当前行首插入
         a                               在当前位置后插入
         A                               在当前行尾插入
         o                               在当前行之后插入一行
         O                               在当前行之前插入一行
         ni/a/o/I/A/O<Esc>               插入n个字符

    2.移动命令(可配合数字使用)
         h                               左移单个字符
         l                               右移单个字符
         k                               上移单个字符
         j                               下移单个字符
         nh/l/k/j                        移动n个字符
         gg                              移动到文件头
         G / shift+g                     移动到文件尾
         (:n<Enter>)/(nG)                跳到第n行
         ''                              回跳刚才的出发点
         m(a...z)                        给当前行标记
         'a                              跳转到标记a的行
         :marks                            查看当前所有标记
         :delm!                            删除所有标记
         (n)w                            向前移动(n / )一个单词
         (n)b                               向后移动(n / )一个单词

    3.删除命令(可配合数字使用)
         x                               删除单个字符
         X                               删除当前字符的前一个字符
         nx                              删除n个字符
         dj                              删除下一行
         dk                              删除上一行
         dd                              删除(剪切)当前行
         D                               删除当前字符至行尾

    4.撤销重做命令
         u                               撤销
         Ctrl+r                          重做(撤销的撤销)VsVim不可用

        5.缩进命令
         shift+v                         选择当前行,可以在输入移动指令来继续移动
         >                               右缩进
         <                               左缩进
         n>/<                            缩进n个tab

    5.替换命令
         ra                              将当前字符替换为a
         :s/old/new/                     用old替换new, 替换当前行的第一个匹配
         :s/old/new/g                    用old替换new, 替换当前行的所有匹配
         :%s/old/new/                    用old替换new, 替换所有行的第一个匹配
         :%s/old/new/g                   用old替换new, 替换整个文件的所有匹配

    6.交换命令
         ddp                             交换当前行和其下一行
         xp                              交换当前字符和其后一个字符

    7.剪切命令
         (n)dd                           剪切当前行(及之后的n行)
         :n1,n2d                         将n1 - n2行剪切。可用p命令将剪切内容进行粘贴
         :n1,n2mn3                       将n1 - n2行剪切粘贴至n3之后

    8.其他基础命令
         %                               括号匹配(以匹配一个括号为目的移动)
         / text                          查找text,按n查找下一个,按N查找前一个
         dd                              删除(剪切)当前行
         yy                              复制当前行
         p                               在当前行下一行粘贴
         shift+p                         在当前行前一行粘贴

    移动光标类命令

    支持

    h
    光标左移一个字符

    l
    光标右移一个字符

    k
    光标上移一行

    j
    光标下移一行

    space
    光标右移一个字符

    Backspace
    光标左移一个字符

    Enter
    光标下移一行

    w or W
    光标右移一个字至字首

    b or B
    光标左移一个字至字首

    e or E
    光标右移一个字至字尾

    nG
    光标移至第 n 行首 (会多移一行)

    0
    (注意是数字零) 光标移至当前行首

    ^
    光标移至当前行首

    $
    光标移至当前行尾

    不支持

    e or E
    光标标右移一个字至字尾

    nG
    光标移至第 n 行首 (会多移一行)

    H
    光标移至屏幕顶行

    M
    光标移至屏幕中间行

    L
    光标移至屏幕最后行

    查找类命令

    支持

    # or *
    查找当前单词

    不支持

    f
    查找当前行

    插入文本类命令

    支持

    i
    在光标前

    I
    在当前行首

    a
    光标后

    A
    在当前行尾

    o
    在当前行之下新开一行

    O
    在当前行之上新开一行

    r
    替换当前字符

    s
    从当前光标位置处开始,以输入的文本替代指定数目的字符

    S
    删除指定数目的行,并以所输入文本代替之

    ncw or nCW
    修改指定数目的字

    nCC
    修改指定数目的行

    不支持

    R
    替换当前字符及其后的字符,直至按 ESC 键

    删除命令

    支持

    ndw or ndW
    删除光标处开始及其后的 n-1 个字

    d$
    删至行尾

    ndd
    删除当前行及其后 n-1 行

    x 或 X
    删除一个字符,x 删除光标后的,而 X 删除光标前的

    不支持

    d0
    删至行首

    其它

    支持

    c
    改写命令 (cw,caw 等)

    y
    复制命令 (yw,yaw,nyy 等,并支持寄存器)

    z
    滚屏,zz,zb,zt 等

    1,dw,这是在此之前我用的对做的也几乎是唯一掌握的一个操作技巧。从光标当前的位置开始删除,直到删到单词最后。

          2,daw,算是1的属性扩充版,这个命令可以直接删除光标所在的一个单词。为了方便记忆,可以记忆为deletea word缩写。

          3,bdw,这也是一个复合命令。B可以让光标回退到单词开头的位置,而dw则是第1个描述过的命令。

          4,另外再有就是删除一个字符,操作为x。

  • 相关阅读:
    深入研究Servlet线程安全性问题
    Sun公司java语言编码规范
    JAVA的内省机制(introspector)与反射机制(reflection)[转]
    Oracle的悲观锁和乐观锁
    java中120个经典问题
    自定义Java异常
    Java事务处理总结
    Tomcat内存溢出的三种情况及解决办法分析
    .net基础
    C#.Net中的转义
  • 原文地址:https://www.cnblogs.com/xpvincent/p/9294728.html
Copyright © 2011-2022 走看看