在vim中更改默认键绑定

时间:2014-06-25 19:20:07

标签: vim

尝试多次使用vim后,我总是被其默认的键绑定所拖延。经过一些研究,我决定将默认密钥重新映射到更理智的密钥(至少对我的口味而言)。我有一些关于更改绑定的问题,我无法通过Google找到答案。

  1. 有没有办法将键映射到动作而不是而不是另一个键。例如:
    :noremap a h
    将绑定a键以向左移动光标。是否有类似的东西 :noremap a move-cursor-left

    :noremap a :move-cursor-left<Enter>
    所以我之后可以读取我的配置文件?

  2. 有没有办法取消绑定所有默认的键绑定?我已经尝试:mapclear但它似乎不起作用,虽然它可能只是清除非默认绑定。手动取消映射每个键不是一个选项。如果可能的话,我想将默认值导出到文件中,以便我可以根据需要对其进行编辑。

  3. 除了v​​im-script之外,还有其他语言可以用来为vim编写我自己的命令吗?我实际上并没有那么多地研究这个。如果我可以将外部可执行文件绑定到命令,那就足够了。

  4. 我还没有放弃vim,虽然我想问一下是否有类似vim的替代品。我的谷歌搜索没有积极开发。如果无法完成上述任务或合理攻击,我想找到一个完全可配置的模态命令行文本编辑器,可以。

2 个答案:

答案 0 :(得分:6)

vi / Vim的命令集有40年的智慧编码;完全改变它是一个坏主意。我只能在评论中重复提及this answer;这应该说服你(接受这个,或选择其他编辑)。

再试一次默认命令。这需要一些时间来习惯,但大多数Vim用户都会发誓这些。对“个人风格”进行微调是很好的:细心的进化,但不是革命。此外,一些奇怪的键盘布局(如 Dvorak Colemak )交换了几个键以方便使用。

move-cursor-left只是h;在出色的:help的帮助下,您应该能够“阅读”您的重新映射。

一般来说,尽管可以使用Perl,Python,Ruby等集成语言编写扩展/插件(基于对它们的编译为Vim二进制文件的支持),但您无法学习一些关键的Vim内部和Vimscript的部分内容。如果您对此感到不舒服,我建议您使用其他编辑器。遗憾的是,根据您对完全可扩展性的要求(可能还有广泛的接受度和平台支持),只有一个严肃的选择:Emacs(它不仅可以变成厨房水槽以外的所有东西,而且也可以变成模态编辑器)。

答案 1 :(得分:0)

(我知道这个问题很老)

你可以通过覆盖它们来重置绑定

在 vim 上你可以使用很多 (idk the name)
例如
<向上> = 向上箭头键
= Ctrl, f
= Alt,向下箭头键
= 退出键

可以像这样将 hjkl 键重新映射到 wasd:

nmap w <Up>
nmap a <Left>
nmap s <Down>
nmap d <Right>