【问题标题】:Vim langmap breaks plugin (bépo)Vim langmap 中断插件 (bépo)
【发布时间】:2012-09-16 21:17:44
【问题描述】:

我正在使用 bépo 键盘映射 (http://bepo.fr) 并寻求完美的 vim 映射。

到目前为止,我使用了long list of noremap,但是对于许多绑定(例如,动作awCtrl+r),第一次击键很好重新映射但不是其他的,我认为这是预期的行为,但这不是我需要的。

理想情况下,我会将我的键盘完全重新映射到更高级别(在map 命令之前),除非在键入文本时(在插入模式下和键入替换示例时)。我正在寻找的似乎是langmap,但我在使用它时遇到了问题。

我添加了this langmap to my .vimrc,它看起来很完美,但它破坏了我的一些插件。 SuperTab 现在在插入模式下按 Tab 时插入 <Plug>SuperTabForward,按 Enter 时我有 t<SNR>24_SelectCompletion(1)

有人知道如何解决此语言映射问题或重新映射我的键盘的更好方法吗?

【问题讨论】:

  • 类似问题的答案:stackoverflow.com/questions/7889080/…
  • @XavierT。这确实是同一个问题,但是唯一的“解决方案”有一个对我不起作用的解决方法,因为我重新映射了 every 键。事实上,我认为 langmap 更适合用于映射诸如俄语字符之类的东西,我会接受一个回答说“langmap 不适合这种用法”,但这绝不是该问题的答案。同时,我还有我的一百个noremap :D
  • 重新映射整个键盘是一个愚蠢的想法:b 不是b,因为b 键的任何物理属性;它是b,因为bbeginning 的第一个字母。几乎每个命令也是如此。你不仅强迫自己将几十个和几十个字母映射到其他字母,完全失去了它们的助记性,而且你还在用甚至不起作用的肮脏黑客与 Vim 作斗争。 bb,无论它在键盘的哪​​个位置。
  • 这不是正在发生的事情。例如,当我键入 e 动作(这是 bépo 中的 p 键)时,我认为“e”,而不是“p”,并且“e”仍然是我键盘上打印的内容。但这样做的真正原因是我真的想使用 hjkl 键来移动,在 bépo 中,这就像使用(分别)不可用的 .pbo 一样。但如果重新映射,我使用ctsr 键,然后需要重新映射这些键。我只能重新映射真正有问题的键,但只重新映射一半的键似乎是一个更糟糕的主意。
  • 我认为这是一个错误并请 Bram 给clarify

标签: vim keymapping supertab


【解决方案1】:

这是一个已知的错误,之前已经讨论过。我已经制作了一个补丁(请参阅以 here 开头的线程),希望 Bram 会尽快包含此更改。

2014 年 11 月 5 日更新
这已由patch 7.4.502 修复。使用langnoremap 选项来解决这个问题。

【讨论】:

  • (抱歉反应迟了)。感谢您开始一个新线程并制作补丁!我对其进行了测试,但是当我点击tab 时,仍然会插入超级标签消息。我应用了补丁,运行./configure --prefix=$HOME/.local --with-vim-name=vim-test --with-features=huge,然后运行makemake install,并使用~/.local/bin/vim-test 在C++ 文件上进行了测试。我是不是做错了什么?
  • 我不确定,你用的是哪个补丁。最新的一个引入了'langnoremap' 选项。默认情况下是关闭的,您需要明确设置它。顺便说一句:如果您使用它并且它有效,请在提到的线程中报告。
  • 呃……抱歉,我看到了,然后忘了。有进化,现在点击标签插入`SuperTab('n')`(仍然不是自动完成)。是的,当它工作时,我会在邮件列表上发布!
  • 你能找出是你的哪个语言映射导致了这种情况吗?到目前为止,我还无法复制它。
  • 谢谢。我稍后会看看。看起来像第 297 期 (code.google.com/p/vim/issues/detail?id=297)
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
相关资源
最近更新 更多