zoukankan      html  css  js  c++  java
  • Vim简本

    参考链接:http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

    本文将更简化,只保留其中的精华部分。

    Level One —— Survive


    ♦ 键入i进入Insert模式;输入ESC返回Normal模式。

     x  删除光标下的字符。

    ♦ :wq ↘ 保存并退出,其中w为保存(write),而q为退出(quit)。

    ♦ dd ↘ 删除并复制当前行。

     p ↘ 复制(Paste)。

    ♦ hjkl ↘ 左下上右,移动光标。j看起来像一个向下的箭头。

    ♦ :help <command> ↘ 显示关于该命令的帮助。使用:q退出。

    Level Two —— Feel comfortable


    ① 更多插入模式

    ♦ a ↘ 在光标之后插入。

     o ↘ 在当前行后插入新行。

     O ↘ 在当前行前插入新行。

     cw ↘ 替换光标当前位置到当前单词末尾的内容。

      Change Delete Yank(Copy)
    Line cc dd yy
    Letter cl dl yl
    Word cw dw yw

    ② 光标的基本移动命令

     0 ↘ 这里是零,移动光标到第一列。

    ♦ ^ ↘ 移动光标到当前行第一个非空字符。

     $ ↘ 移动光标到当前行行尾。

    ♦ g_ ↘ 移动光标到当前行最后一个非空字符。

    ♦ /pattern ↘ 按pattern向后进行搜索。

      ?pattern ↘ 按pattern向前进行搜索。

    ③ 拷贝与复制

    ♦ p ↘ 小p,在当前位置后插入。

    ♦ P ↘ 大p,在当前位置前插入。

    ♦ yy ↘ 拷贝当前行,等价于ddP。

    ④ 撤消与重做

    ♦ u ↘ 撤消(undo)。

    ♦ Ctrl+r ↘ 重做(redo)::

    ⑤ 加载/保存/退出/改变文件(Buffer缓冲区)

     :e <path to file>↘ 打开文件。

     :w ↘ 保存文件。

     :saveas <path to file> ↘ 保存当前文件到<path to file>中。

     :x,ZZ或:wq ↘ 保存并退出(:x仅在需要时保存,而ZZ则不需要输入冒号)。

    ♦ :q! ↘ 退出但不保存。

    ♦ :qa! ↘ 无论文件是否正在编辑(修改还在Buffer中),都强制退出。

     :bn (:bp) ↘ 当打开多个文件时,使用这两个命令切换至下一个或上一个文件。

    Level Three —— Better & Stronger & Faster


     ① Better

     . ↘  (dot) 重复最后一条执行的命令。

     N. ↘ 重复最后一条命令N次。 

    ♦ N<command> ↘ 重复该命令N次。

     Ndd ↘ 删除N行。

     Np ↘ 粘贴N次。

    ♦ Nidesu [ESC] ↘ 写"desu“N次。

    ② Stonger

    ♦ NG ↘ 跳转到第N行。

    ♦ gg ↘ 它是1G的缩写,跳转到文件的初始位置。

    ♦ G ↘ 跳转到最后一行。

    默认时,单词由字母和下划符。

    ♦ w ↘ 跳转到接下来单词的开始位置。

     e ↘ 跳转到当前单词的结束位置。

    假设你认为单词是有blank字符作为分隔符,那么你需要使用大写的E和W(编程的时候用)。

    ♦ ↘ 在新规则下,跳转到接下来单词的开始位置。

    ♦ E ↘ 在新规则下,跳转到当前单词的结束位置。

    ♦ % ↘ 跳转到对应的(,{,[。

    ♦ *# ↘ 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)。

    ③ Faster

    Vim中大多数命令都可以以下边的格式来使用:

    <start position><command><end position>

    For example:

     0y$ ↘  跳转到当前行的起始位置, 从当前位置复制到当前行的结束。

    ♦ ye ↘ 从当前位置复制到当前行末尾。

     y2/foo ↘ 从当前位置复制到第2个出现的”foo“。

    同理,由y可以推理到d(删除)和v(虚拟选择),以及gU(大写化)和gu(小写化)。

    Level 4 —— Vim Superpowers

    ①当前行上的光标移动

    ♦ 0 ↘ 将光标移动到第一列。

    ♦ ^ ↘ 将光标移动到当前行的第一个字符上。

    $ ↘ 将光标移动到当最后一列。

    g_ ↘ 将光标移动到当前行的最后一个字符上。

     fa ↘ 将光标移动到下一个为a的字符处。这里的a是泛指任意字符。同理,你也可以用fb将光标移动下一个字符b上。

     t, ↘ 向前移动光标到,(逗号)之前。逗号也可被其它符号替换,比如,分号”;“。

    ♦ T, ↘ 向后移动光标到,(逗号)之前。

    ♦ 3fa ↘ 向前查找在当前行出现的第三个a字符。

    ♦ 3Fa ↘ 向后查找在当前行出现的第三个字符。

     dt" ↘ 删除当前位置到"之间的一切。

    ② 区域选择

    这些命令只能被用于visual模式下,且在一个操作符之后。

    Ctrl + v进行矩形块选择。

    主要格式:<action>a<object> 和 <action>i<object>

    这里的action可以是任意action。如,d(删除),y(复制),v(选择visual模式)。

    这里的object可以是:w代表word,W代表WORD(扩展word),s代表句子,p代表段落。

    假设由如下文字,且光标在第一个o上:

    使用vi“的效果如下:

    使用va"的效果如下:

    使用vi)

     使用va)的效果如下:

    使用v2i)的效果如下:

    使用v2a)的效果如下:

    ③ 自动补全命令

     Ctrl + p和Ctrl + n,这里的n是next的意思。

    ④ 宏

    qa将你的actions记录在寄存器a中。@a会重新执行保存在寄存器a中的宏。@@是一个快捷键,用以执行最近一次被执行的宏。

    qaYp<Ctrl + a>q

    qa开始记录

    Yp重复当前行

    Ctrl + a增量当前数字

    q结束记录

    ⑤ Visual选择

    Ctrl + v,v 和V

    J 整合所有行

    < (>) 向左缩进(向右缩进),用得较多的自然是向右缩进。

    = 自动缩进

    A 插入

    ⑥分割

    :split 水平分割

    :vsplit 垂直分割

    :e <文件> 打开文件

    Ctrl + w切换窗口

    Ctrl + + 增大窗口

    Ctrl + - 减少窗口

    Ctrl + / 增大当前窗口

    Ctrl+w+hjkl跳转窗口

    :close 关闭串口

    :only 关闭其它所有窗口 

    :qall 全部窗口退出

    :wall 全部保存。

    vim -o 文件1 文件2 ... 分屏打开文件

  • 相关阅读:
    高精度
    eps取值
    QtCreator常用快捷键
    C++11 麻辣烫
    谈一些关于华为鸿蒙的看法
    Termux新手基础+进阶学习笔记(间断更新)
    分享互联网2021年最新Java面试题汇总整理-附详细答案解析
    2021年面试,整理全网初、中、高级常见Java面试题附答案
    JS中使用map
    springboot整合MongoDB4.0多数据源实现事务
  • 原文地址:https://www.cnblogs.com/AmitX-moten/p/4593663.html
Copyright © 2011-2022 走看看