【问题标题】:vim 'imap' functionality in bashbash 中的 vim 'imap' 功能
【发布时间】:2014-07-03 00:47:58
【问题描述】:

有没有办法在 bash 中模拟 Vim 的 'imap' 功能?

例如,在 Vim 中,我使用 imap jj <ESC>imap kk <TAB> 作为快捷方式。对于不使用 Vim 的人来说,这意味着当你连续短时间键入 jj 时,就相当于按了转义键。

好处是可以从主行轻松访问两个非常常用的击键。

我意识到在 bash 中有一种方法可以将现有的键或键组合绑定到其他东西...但是有没有一种方法可以绑定单独按下的键序列?

【问题讨论】:

  • stackoverflow.com/questions/6839006/… 是您问题的答案吗? (“readline”是 bash 用来处理键盘交互的库)。
  • 查看 bash man 页面 (man bash),大约在第 1755 行左右,搜索 inputrc。您可能可以根据需要设置密钥。 (当然,bookkeeper 会很难输入 bash)
  • @CharlesDuffy 太棒了,谢谢。使用stackoverflow.com/questions/6839006/… 中的 inputrc 并在 vi-insert 的键盘映射中添加 "kk": "\t" 效果很好。
  • @user3799553,很高兴听到这有帮助;我试图提取相关部分作为答案。

标签: bash vim keyboard-shortcuts


【解决方案1】:

您可以使用文件~/.inputrc 来配置readline 库,bash 使用该库来处理输入。

考虑类似于以下内容:

$if mode=vi
    set keymap vi-insert
    "kk": "\t"
$endif

有关更完整的示例,请参阅 map jj to Esc in inputrc (readline)

【讨论】:

  • 注意,使用 'complete' 代替 '"\t"' 更好。
猜你喜欢
  • 2011-01-22
  • 1970-01-01
  • 2012-11-23
  • 2011-03-31
  • 1970-01-01
  • 2011-05-03
  • 2010-12-09
  • 2015-08-24
  • 2016-04-03
相关资源
最近更新 更多