【问题标题】:Vim keep cursor location while scrollingVim 在滚动时保持光标位置
【发布时间】:2010-10-15 09:25:33
【问题描述】:

有没有办法在滚动时在 Vim / gVim 中保持光标位置不在屏幕上?类似于许多 Windows 编辑器。
我知道标记,并且确实使用它们。我也知道'。标记(最后编辑位置),但正在寻找其他想法。 我问这个是因为有时我想将光标保持在某个位置,使用鼠标滚轮滚动到另一个位置,然后只需按箭头键或其他东西就可以让我回到那个位置。

【问题讨论】:

    标签: vim


    【解决方案1】:

    没有。 vim 是一个控制台应用程序,因此将光标置于屏幕外并没有什么意义(这是可能的,但会令人困惑)

    另一种解决方案,转述this thread from comp.editors 的帖子:

    Ctrl+o 转到上一个光标位置,Ctrl+i 转到下一个位置(如动作的撤消/重做)

    标记似乎是另一种解决方案..

    另外,使用标记。标记以字母命名。例如输入 ma 记得 标记 a 下的当前位置。要跳转到包含标记 a 的行, 键入'a。到确切的位置使用`a。

    小写字母标记是每个文件的。大写字母标记是全局的; `A 将切换到包含标记 A 的文件,到确切的位置。

    基本上ma,左右移动,然后`a 跳回来。

    Paul 建议的另一种选择,

    gi 命令将 Vim 切换到插入模式,并将光标放在上次插入模式停止的位置。

    【讨论】:

    • "vim 是一个控制台应用程序" - 是的 gVim/MacVim 是 GUI 应用程序,但它们是控制台 vim 的端口/扩展,并不能真正改变太多
    • 还应该在下面添加 Paul 的回复。
    • @trusktr 我的意思是它在技术上是可能的(例如like this).. 我想您可能会编写一个vim脚本来拥有离屏光标(例如vim-multicursor会创建假光标-也许可以隐藏他们,伪造屏幕外光标?)
    • @truskt 有进展吗?我想我会经常使用它。我真的不喜欢这样的哲学,因为 gVim 是从 Vim 出来的,它应该以愚蠢的方式忠于终端世界。
    • @KyleStrand 实际上还没有,但请查看 github 上的 NeoVim 项目。已讨论在此处添加此功能。
    【解决方案2】:

    为什么不拆分窗口,看你想看的,然后关闭拆分呢?

    :split
    

    :vsplit (if you want to split vertically)
    

    【讨论】:

    • ...可以简写为:sp和:vs
    • 我其实更习惯使用 Ctrl+W,S 和 Ctrl+W,V 而不是命令...
    【解决方案3】:

    我在 Vim 中发现的唯一类似行为:

    ztzENTER "在不移动光标的情况下尽可能向下滚动屏幕"

    zb“尽可能向上滚动”。

    Ctrl+E "如果可能,向下滚动一行"

    Ctrl+Y"如果可能,向上滚动一行"

    【讨论】:

    • 虽然这个答案与问题正文不匹配,但它与问题标题完全匹配,这正是我所需要的。谢谢你。我想补充一下:z-Enterz-t 相同
    【解决方案4】:

    有时你可以避免在输入文本之前跳转到标记处——gi 命令将 Vim 切换到插入模式,并将光标放在上次插入模式停止的位置。

    【讨论】:

    • 我不知道这个,但它让我想起了我使用的另一个,在此处给出的各种方法中:您可以进行行编辑,然后撤消它,然后环顾四周,然后再次重做/撤消编辑,重做会将您翻转回编辑所在的位置。我猜这就像一个标记,但你不必记住一个字母。我还将U 绑定到重做,因此撤消/重做非常快:uU
    【解决方案5】:

    ''(2x 单引号)和 ``(2x 反引号)也非常有用。 前者跳回到您上次跳转之前所在的行(例如,向下一页)。 后者跳回到上次跳转之前所在的行 and 列。

    【讨论】:

      【解决方案6】:

      Google 说光标(以及当前行)必须在 Vi 中可见,因此您必须使用标记。

      【讨论】:

      • 我也是这么想的,但只是想从其他 vimers 中确认一下。
      • 编程一切皆有可能。 :D
      猜你喜欢
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多