我的箭头键在家中的插入模式下无法在 vi 中使用,它们只是每个都插入一个换行符和一个大写字母,例如“A”。有没有办法解决这个问题?
12 回答
我假设您使用的是 vim,因为它被标记为 Linux。尝试:
:set nocompatible
(你可能想通过添加这个命令来配置你的 .vimrc 。如果你的主目录中不存在一个新的 .vimrc 文件,请运行echo $HOME
以检查主目录路径。)
Ubuntu 默认附带vim-tiny
,它没有 vim 的所有花里胡哨。
快速sudo apt-get install vim
了解每个人都在谈论的所有有趣的功能。
:set term=builtin_ansi
为我修好了。您可以在转义模式下(哔声模式)将其粘贴到 vim 中,也可以将其添加到 ~/.vimrc 的末尾而不带前导“:”
vi 不支持插入模式下的箭头键。使用 vim。尽管您的 vi 可能只是到 vim 的链接,但它可能被配置为表现得像“原始”vi,从而禁用箭头键。直接调用 vim 就可以了。
另一个变体:在一些 .vimrc 更改后,这个问题出现在我身上。一致的搜索最终表明,我在正常模式下巧妙地重新映射 ESC 并不是一个好主意。删除它解决了问题:
" this is NOT something you want in .vimrc:
" In normal mode, hitting Esc turns off search highlights:
nmap <ESC> :nohl<CR> " Do NOT add this to .vimrc
唯一对我有用的是 ":set term=ansi"
我在使用箭头键时遇到了同样的问题,但是当我使用设置 nocp 或 nocompatible 时,我的退格键无法正常工作
出于某种原因,当我安装 vim 时
sudo apt-get install vim
,vi 不再有箭头或退格的任何问题
切换到在 .vim 中使用 git 后,我只是遇到了箭头键的问题。
我已经安装了这个 repo - https://github.com/sunaku/.vim
在挖了一个小时后,我发现 AutoClose 插件(无论如何都不喜欢)破坏了箭头键。
插件文档建议应该设置 set ttimeoutlen=100,但这对我不起作用!(使用 urxvt+screen 或 urxvt,甚至使用 xterm)
所以我最后删除了插件。
在 VS Code 上的 WSL 集成终端中,更新包并安装为我工作的完整 vim 包。
sudo apt-get update
sudo apt-get install vim
但是,要使箭头键在我使用 conemu 时起作用,我必须:set term=builtin_ansi
添加~/.vimrc
echo ':set term=builtin_ansi' >> ~/.vimrc
您可能还想尝试“noesckeys”
我在带有 Cygwin 的 Windows 8.1 中使用 vim 时遇到了同样的问题。
对我有用的解决方案是,只需在 Cygwin 终端中运行以下命令:
cp vimrc_example.vim ~/.vimrc
在命令行中写下:
EXINIT="set nocompatible"; export EXINIT