【问题标题】:Vim - how to remap "jump to next/previous paragraph"Vim - 如何重新映射“跳转到下一个/上一个段落”
【发布时间】:2021-08-11 10:50:41
【问题描述】:

在 vim 中,您可以使用 {} 在段落之间跳转。

有人可以帮我更改这些按键吗?我正在尝试分别使它们成为Alt-DownAlt-Up

到目前为止我已经尝试过了:

map <ALT-DOWN> <S-{>
map <ALT-DOWN> <S-[>
map <ALT-DOWN> {

但没有运气。

我希望该快捷方式可以在所有 vim 模式下工作,包括编辑模式。

【问题讨论】:

  • 来自:help key-notationAlt 键由&lt;M-...&gt; 表示。但是我尝试了一些事情,但我的 Alt 键似乎只与终端菜单栏上的项目相关,而不是被 vim(我在终端中运行)拾取...
  • 这个问题似乎有点棘手:vi.stackexchange.com/questions/9072/…,但它可能是可行的:vi.stackexchange.com/questions/2350/how-to-map-alt-key
  • 感谢发帖!实际上设法使它工作(尽管不是在插入模式下)。您想添加一个实际答案,我会将其标记为正确吗?对于任何感兴趣的人,最终的配置行是:map 和 map
  • 啊酷 - 对于插入模式,您是否尝试过使用 imap 而不是 map? (或inoremap?)。我不会给出答案,因为我认为我不太了解这种情况......但您可以自己回答并将其标记为正确,以供未来的谷歌员工使用。
  • 好主意。刚试了一下,可惜没用。它只是打印“{”或“}”而不是移动光标。原因是,我认为,在插入模式中 shift-{ 和 shift-} 最初并未映射到跳转段落,因此重新映射不起作用。 Tbh 现在这个解决方案对我来说已经足够好了。再次感谢。

标签: vim keyboard-shortcuts neovim


【解决方案1】:

上面@mattb 取自 cmets,(部分)有效的解决方案是:

#all modes except insert
map <M-DOWN> <S-}>
map <M-UP> <S-{>

#insert mode
imap <M-UP> <esc><S-{>i
imap <M-DOWN> <esc><S-}>i

在 neovim 上注意这一点,而不是 vim。

以上的 PS 功劳是马特的。提供的相关链接:

【讨论】:

  • 哦,也许你可以使用插入模式ctrl+o + },它会跳出插入模式,正常模式}会跳转,然后回到插入模式吗?可能是这样的:imap &lt;M-UP&gt; &lt;ctrl-o&gt;&lt;S-{&gt;?
  • 关闭!你的想法奏效了,但我不得不稍微修改一下,见上文。非常感谢老兄!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多