vim学习攻略

    2016年02月01日 doc shell 字数:1025

vim用了很久,但是娴熟度还不够,用小伙伴的话来说,就还是记事本水平。这把真得好好总结下。本文根据个人情况来总结,分几个阶段。

我目前很娴熟的

  • i → Insert 模式,按 ESC 回到 Normal 模式.
  • :wq → 存盘 + 退出 (:w 存盘, :q 退出)
  • dd → 删除当前行,并把删除的行存到剪贴板里
  • p → 粘贴剪贴板
  • u → 撤销上次操作
  • x → 删当前光标所在的一个字符。
  • gg → 跳转到文本开头
  • G → 跳转到文本结尾
  • = → 指定范围内文本对齐
  • set enc → 查看文本编码
  • set fenc → 查看文件编码
  • o → 在当前行后插入一个新行
  • /pattern → 搜索 pattern 的字符串,如果搜索出多个匹配,可按n键到下一个,N键到上一个
  • ctrl+d 向下移动
  • ctrl+b 向上移动

我目前知道但不娴熟的

  • O → 在当前行前插入一个新行
  • 0 → 数字零,到行头
  • ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
  • $ → 到本行行尾
  • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)。ZZ和x用的较少
  • N< command > → 重复某个命令N次

重要且不知道的

  • a → 在光标后插入
  • ctrl+r 和u这个操作相反,u是指undo,该命令是指 redo
  • cw → 替换从光标所在位置后到一个单词结尾的字符
  • :e path/to/file → 打开一个文件
  • :saveas path/to/file → 另存为 path/to/file
  • :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件,配合:e来
  • e和w,我的理解就是 e就是光标移到所有的单词末尾,w是光标移到所有的单词开头。
  • % : 匹配括号移动,包括 (, {, [. (前提:你需要把光标先移到括号上)
  • 字符* 和 #: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
  • y可以拥有各种组合。比如说ye:从当前位置拷贝到本单词的最后一个字符。 y$:从当前位置拷贝到本行的最后一个字符。
    • . → (小数点) 可以重复上一次的命令

vim超能力

  • 0 → 到行头
  • ^ → 到本行的第一个非blank字符
  • $ → 到行尾
  • g_ → 到本行最后一个不是blank字符的位置。
  • fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。
  • t, → 到逗号前的第一个字符。逗号可以变成其它字符。
  • 3fa → 在当前行查找第三个出现的a。
  • F 和 T → 和 f 和 t 一样,只不过是相反方向。
  • 输入一个词的开头,然后按 < C-p >或是< C-n >,自动补齐功能就出现了。
  • :split → 创建分屏 (:vsplit创建垂直分屏)
  • < C-w >< dir > : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
  • gu /gU 配合位置动词使用,比如说 guw-将整个单词变为小写 gggUG 将全文转化为大写。