【发布时间】:2010-10-15 09:25:33
【问题描述】:
有没有办法在滚动时在 Vim / gVim 中保持光标位置不在屏幕上?类似于许多 Windows 编辑器。
我知道标记,并且确实使用它们。我也知道'。标记(最后编辑位置),但正在寻找其他想法。
我问这个是因为有时我想将光标保持在某个位置,使用鼠标滚轮滚动到另一个位置,然后只需按箭头键或其他东西就可以让我回到那个位置。
【问题讨论】:
标签: vim
有没有办法在滚动时在 Vim / gVim 中保持光标位置不在屏幕上?类似于许多 Windows 编辑器。
我知道标记,并且确实使用它们。我也知道'。标记(最后编辑位置),但正在寻找其他想法。
我问这个是因为有时我想将光标保持在某个位置,使用鼠标滚轮滚动到另一个位置,然后只需按箭头键或其他东西就可以让我回到那个位置。
【问题讨论】:
标签: vim
没有。 vim 是一个控制台应用程序,因此将光标置于屏幕外并没有什么意义(这是可能的,但会令人困惑)
另一种解决方案,转述this thread from comp.editors 的帖子:
Ctrl+o 转到上一个光标位置,Ctrl+i 转到下一个位置(如动作的撤消/重做)
标记似乎是另一种解决方案..
另外,使用标记。标记以字母命名。例如输入 ma 记得 标记 a 下的当前位置。要跳转到包含标记 a 的行, 键入'a。到确切的位置使用`a。
小写字母标记是每个文件的。大写字母标记是全局的; `A 将切换到包含标记 A 的文件,到确切的位置。
基本上ma,左右移动,然后`a 跳回来。
Paul 建议的另一种选择,
gi命令将 Vim 切换到插入模式,并将光标放在上次插入模式停止的位置。
【讨论】:
为什么不拆分窗口,看你想看的,然后关闭拆分呢?
:split
或
:vsplit (if you want to split vertically)
【讨论】:
我在 Vim 中发现的唯一类似行为:
zt 或 zENTER "在不移动光标的情况下尽可能向下滚动屏幕"
zb“尽可能向上滚动”。
Ctrl+E "如果可能,向下滚动一行"
Ctrl+Y"如果可能,向上滚动一行"
【讨论】:
z-Enter 与z-t 相同
有时你可以避免在输入文本之前跳转到标记处——gi 命令将 Vim 切换到插入模式,并将光标放在上次插入模式停止的位置。
【讨论】:
U 绑定到重做,因此撤消/重做非常快:uU。
''(2x 单引号)和 ``(2x 反引号)也非常有用。 前者跳回到您上次跳转之前所在的行(例如,向下一页)。 后者跳回到上次跳转之前所在的行 and 列。
【讨论】:
Google 说光标(以及当前行)必须在 Vi 中可见,因此您必须使用标记。
【讨论】: