vim 怎样自定义mode, 及该mode下的key-map?

发布于 2022-09-04 00:27:28 字数 482 浏览 15 评论 0

面临的问题:

在使用gitgutter插件时, 可以通过下列命令在多个修改处间跳转

- GitGutterNextHunk
- GitGutterPrevHunk
- GitGutterPreviewHunk

如果给每个命令做个映射 <leader>j/k/p or \j/k/p..., 这些映射还有别的插件要用的,快捷键不够用啊。
但如果 \gj, \gk, \gp 操作起来嫌慢。

启发

i3wm 可以自定义 mode, 及mode下的按键映射


如题的效果,vim 是否可以实现,给个实现思路?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

第七度阳光i 2022-09-11 00:27:28

多年以后,我无意间碰到这个插件 vim-submode

配置如下

let g:submode_always_show_submode = 1
let g:submode_timeout = 0
let g:submode_keyseqs_to_leave = ['<Esc>', '<C-[>']

" nav git hunk
call submode#enter_with('nav_git_hunk', 'n', '', 'g@')
call submode#map('nav_git_hunk', 'n', '', 'j', ':GitGutterNextHunk<Enter>')
call submode#map('nav_git_hunk', 'n', '', 'k', ':GitGutterPrevHunk<Enter>')

操作流: nomal mode: g@jjjjjkkkkkkj<Esc>;还是很流畅的,谢谢插件作者

我的黑色迷你裙 2022-09-11 00:27:28

这种不常用的插件功能,做个快捷键我都嫌多余,你倒好,想要一个自定义模式

i3wm 试用过一次,不太熟,我觉得作为窗口管理器的所谓模式,可以相互切换

但是Vim 的模式,有一个中心点:Normal

按照你的思路,切换到自定义模式,跳转到你想要去的地方,再Esc切换回Normal模式,再进入Insert 模式,累不累?

再说,你看了GitGutter插件的说明了吗?

Hunks

You can jump between hunks:

  • jump to next hunk (change): ]c

  • jump to previous hunk (change): [c.

https://github.com/airblade/v...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文