Skip to content

Latest commit

 

History

History
84 lines (74 loc) · 3.35 KB

2014-06-22 Vim 中光标的移动.md

File metadata and controls

84 lines (74 loc) · 3.35 KB
  • tags: tech
  • date: 2014-06-22

Vim 中光标的移动

基本移动

以下移动都是在普通模式下:

  • h 或 退格:左移一个字符

  • l 或 空格:右移一个字符

  • j:下移一个字符

  • k:上移一个字符

  • gj:移动到一段内的下一行

  • gk:移动到一段内的上一行

    • 或 Enter:把光标移至下一行第一个非空白字符
  • -:把光标移至上一行第一个非空白字符

  • w: 前移一个单词,光标停在下一个单词开头;

  • W: 移动下一个单词开头,但忽略一些标点;

  • e: 前移一个单词,光标停在下一个单词末尾;

  • E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点;

  • b: 后移一个单词,光标停在上一个单词开头;

  • B: 移动到上一个单词开头,忽略一些标点;

  • ge: 后移一个单词,光标停在上一个单词末尾;

  • gE: 同 ge,不过‘单词’包含单词相邻的标点。

  • (: 前移1句。

  • ): 后移1句。

  • {: 前移1段。

  • }: 后移1段。

  • fc: 把光标移到同一行的下一个c字符处

  • Fc: 把光标移到同一行的上一个c字符处

  • tc: 把光标移到同一行的下一个c字符前

  • Tc: 把光标移到同一行的上一个c字符后

  • ;: 配合 f t 使用,重复一次

  • ,: 配合 f t 使用,反向重复一次

    上面的操作都可以配合n使用对操作加上次数参数,比如在正常模式下输入3h, 则光标向左移动3个字符。

  • g0: 移到光标所在屏幕行行首。

  • ^: 移动到本行第一个非空白字符。

  • g^: 同 ^,但是移动到当前屏幕行第一个非空字符处。

  • $: 移动到行尾。

  • g$: 移动光标所在屏幕行行尾。

  • n|: 把光标移到递n列上。

  • nG: 到文件第n行。

  • :n 移动到第n行。

  • :$ 移动到最后一行。

  • H: 把光标移到屏幕最顶端一行。

  • M: 把光标移到屏幕中间一行。

  • L: 把光标移到屏幕最底端一行。

  • gg: 到文件头部。

  • G: 到文件尾部。

翻屏

  • ctrl+f: 下翻一屏。
  • ctrl+b: 上翻一屏。
  • ctrl+d: 下翻半屏。
  • ctrl+u: 上翻半屏。
  • ctrl+e: 向下滚动一行。
  • ctrl+y: 向上滚动一行。
  • n%: 到文件n%的位置。
  • zz: 将当前行移动到屏幕中央。
  • zt: 将当前行移动到屏幕顶端。
  • zb: 将当前行移动到屏幕底端。

标记

使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退和 前进。

  • m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。
  • m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。
  • `{a-z}: 移动到标记位置。
  • '{a-z}: 移动到标记行的行首。
  • `{0-9}:回到上[2-10]次关闭vim时最后离开的位置。
  • : 移动到上次编辑的位置。'也可以,不过`精确到列,而'精确到行 。如果想跳转到更老的位置,可以按,跳转到更新的位置用`。
  • `": 移动到上次离开的地方。
  • `.: 移动到最后改动的地方。
  • :marks 显示所有标记。
  • :delmarks a b -- 删除标记a和b。
  • :delmarks a-c -- 删除标记a、b和c。
  • :delmarks a c-f -- 删除标记a、c、d、e、f。
  • :delmarks! -- 删除当前缓冲区的所有标记。
  • :help mark-motions 查看更多关于mark的知识。"'''`