【问题标题】:Arrow keys in vim (linux) in insert mode broken for me插入模式下vim(linux)中的箭头键对我来说坏了
【发布时间】:2012-06-15 04:37:02
【问题描述】:

当我在插入模式下使用 vim 中的箭头键时,我会插入字母而不是移动。

  • 向上产生一个A
  • 羽绒产生 B
  • 留下产品一个 D
  • Right 产生一个 C

有谁知道这是什么原因造成的?

提前致谢

【问题讨论】:

  • 您的终端/shell 看起来有些问题。
  • Ubuntu 12.04 w/zsh @balki - 它们在正常模式下工作正常
  • this previous answerthis one(两个矿)。它看起来与一些插件/$TERM 组合相关联。

标签: vim


【解决方案1】:

如果这些键在正常模式下工作正常,但在插入时不能正常工作,那么您必须对前一个或两个字符有一些映射(通常 <Up><Esc>[A(使用 CSI 的终端)或 <Esc>OA (xterm))。尝试检查输出

verbose imap <Esc>

,在插入模式下应该没有太多以&lt;Esc&gt; 开头的映射(例如,我没有)。我可以说,箭头键在插入模式下正常工作,使用

inoremap <Esc> <Esc>

产生的行为与您遇到终端识别问题或设置了“兼容”时完全相同。

【讨论】:

    【解决方案2】:

    您的vim 似乎以vi 兼容模式启动。这样做

    • 打开 Vim 编辑器,
    • 输入 :echo $HOME 获取主目录的路径
    • 检查$HOME位置是否有.vimrc文件(如果没有创建)
    • 将以下行添加到.vimrc文件 :set nocompatible

    为同一问题找到更多解决方案here(特别是如果您的问题与终端相关,重新映射密钥解决方案可能对您有用)

    【讨论】:

      【解决方案3】:

      以下内容对我有用。把它放在你的 .vimrc 中

      :set term=cons25
      

      【讨论】:

        【解决方案4】:
        1. 打开 Vim 编辑器。
        2. 通过键入::echo $HOME 获取主目录的路径。
        3. 检查 $HOME 位置是否有 .vimrc 文件,如果没有创建它。
        4. 将以下行添加到 .vimrc 文件::set nocompatible

        参考:http://vim.wikia.com/wiki/Fix_arrow_keys_that_display_A_B_C_D_on_remote_shell

        【讨论】:

        • 您可以在参考页面上尝试其他解决方案。
        【解决方案5】:

        这里没有一个答案对我有用。我在 Linux 中,使用 konsole/yakuake 终端和 tmux。此修复适用于我:

        nnoremap <silent> <ESC>OA <ESC>ki
        nnoremap <silent> <ESC>OB <ESC>ji
        nnoremap <silent> <ESC>OC <ESC>hi
        nnoremap <silent> <ESC>OD <ESC>li
        inoremap <silent> <ESC>OA <ESC>ki
        inoremap <silent> <ESC>OB <ESC>ji
        inoremap <silent> <ESC>OC <ESC>hi
        inoremap <silent> <ESC>OD <ESC>li
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-11-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多