3

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

  • 向上产生一个 A
  • Down产生B
  • 左产品 ​​a D
  • 右产生一个 C

有谁知道这会导致什么?

提前致谢

4

5 回答 5

7

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

verbose imap <Esc>

,以插入模式开始的映射应该不多<Esc>(例如,我没有)。我可以说,箭头键在插入模式下正常工作,使用

inoremap <Esc> <Esc>

产生与终端识别有问题或设置“兼容”相同的行为。

于 2012-06-12T10:22:40.133 回答
6

vim似乎是在vi兼容模式下启动的。做这个

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

在这里找到相同问题的更多解决方案(特别是如果您的问题与终端相关,重新映射键解决方案可能对您有用)

于 2012-06-12T10:01:43.077 回答
4

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

:set term=cons25
于 2013-10-31T03:11:48.567 回答
2
  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

于 2012-06-12T10:01:36.977 回答
1

这里没有一个答案对我有用。我在 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
于 2015-10-17T12:29:16.037 回答