FinalHome

最初的梦想

spacemacs 下 vim 基本命令

spacemacs 使用的是 emacs: evil 插件。主要是以 vim 光标移动为主,向导可以参考 vimtutor, 或者 evil-tutor 进行学习。

vim 模式

普通模式(normal-mode)

Vim启动后的默认模式, 主要移动光标,和对字符删除与替换。通过 i 等命令进入插入模式。

插入模式(insert-mode)

在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。在插入模式中,可以按ESC键回到普通模式。

可视模式(visual-mode)

这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的”文本对象”也能和移动命令一样用在这个模式中。

选择模式(select-mode)

这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。

命令模式(command-mode)

在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(”:”键),搜索(”/“和”?”键)或者过滤命令(”!”键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

EX-模式(ex-mode)

这和命令行模式比较相似,在使用”:visual”命令离开Ex模式前,可以一次执行多条命令。

vim 基本命令

  • :: 进入命令模式
  • esc: 返回普通模式
  • Ctrl-o: 进入衍生模式,比如插入模式下,ctrl-o 输入一个普通模式下的命令,执行完毕后,自动返回 插入模式。

光标移动

  • h,j,k,l: 普通模式下,光标移动,左,下,上,右。(逆时针)
  • 5h: 重复执行5次h, 光标左移5位
  • 0: 行首
  • ^: 行首第一个非空白字符
  • $: 行尾
  • g_: 行尾最后一个非空白字符

  • w,e,b: 普通模式下,光标以单词纬度移动。

  • W,E,B: 同上,但是移动的单词可以包含标点。比如连字符-

  • Ctrl-d, Ctrl-u: 半个屏幕向下,向上滚动。

  • Ctrl-B, Ctrl-F: 滚动一个屏幕,通常会被我覆盖,我用来定义 emacs 光标移动方式。
  • zt,zz,zm: 使当前行,处于屏幕的顶部,中间,底部。
  • H,M,L: 光标定位到当前屏幕的,顶部,中间,底部。

  • gg: 定位到文本开始处

  • G: 定位到文本最后一行
  • 5G: 移动到第五行
  • :5: 同上,移动到指定行
  • gd: 找到当前变量定义处。

  • %: 跳转匹配的括号, (,{,[,],},)

  • (): back, forword
  • {}: back,forword paragraph
  • [{,]}: back, forword block

  • fx,Fx: x是一个字符,向后跳到x字符出现的位置

  • tx,Tx: x是一个字符,向前跳到x字符出现的位置
  • *: 向后跳转到当前字符相同处, spacemacs 中无效
  • #: 向前跳转到当前字符相同处,spacemacs 中无效

编辑模式

  • i: 当前光标前插入
  • a: 当前光标后插入
  • I: 当前行首插入
  • A: 当前行尾插入
  • o: 当前行后插入
  • O: 当前行前插入
  • wi, bi, ea: 下一个单词前,单词后插入

  • r: 重写当前一个字符

  • R: 重写多个字符,需要手动退出

  • J: 何必当前行和下一行

  • xp: 交换当前和下一个字符位置

  • u: undo

  • Ctrl+r: redo
  • .: repeat last command, 可用于 redo

复制,粘贴,裁切

  • x: 删除当前光标字符
  • X: 删除当前光标前字符
  • D: 删除当前行后字符
  • C: 重写当前行后字符,就是执行了 Da
  • cc: 重写当前行,相当于 dd, i
  • cw: 重写当前词,相当于 dw, i
  • s: 重写当前字符
  • S: 相当于 cc
  • d: 执行关于删除的引导键, 比如 d0, d$
  • dd: 删除当前行
  • dw: 向后删除当前词
  • db: 向前删除当前词
  • ndw: n表示重复执行

  • yy: yank 就是拷贝的意思,拷贝当前行

  • yw: 复制当前光标到当前词尾的字符
  • yb: 复制当前光标到当前词首的字符

  • p: 当前光标后粘贴

  • P: 当前光标前粘贴

  • v: 进入 visual 模式

  • V: 进入visual 模式,选取单位位行
  • Ctrl+v: 进入 visual 模式,选取单位为块
  • <: 进入 visual 模式后, 向左进行 index
  • >: 进入 visual 模式后, 向右进行 index
  • y: 进入 visual 模式后,复制选中字符
  • x: 进入 visual 模式后, 裁切选中字符
  • d: 进入 visual 模式后,删除选中字符, 效果同上
  • ~: 进入 visual 模式后,将选中字符大小写交换

小技巧

  • 插入3个 go, 可使用 3i go {esc}
  • 查找当前光标后,第三个s, 可使用 3fs

Proudly powered by Hexo and Theme by Hacker
© 2016 Leo Hui