Linux vi 箭头键在插入模式下损坏

问题描述 投票:0回答:13

我的箭头键在家里的插入模式下的 vi 中不起作用,它们只是插入一个换行符和一个大写字母,例如“A”。有办法解决吗?

linux vim vi
13个回答
124
投票

我猜你正在使用 vim,因为它被标记为 Linux。尝试:

:set nocompatible

(您可能想通过添加此命令来配置您的 .vimrc。如果您的主目录中尚不存在,请创建一个新的 .vimrc 文件,运行

echo $HOME
检查主目录路径。)


87
投票

Ubuntu 默认附带

vim-tiny
,它没有 vim 所具有的所有功能。

快速完成

sudo apt-get install vim
以获得每个人都在谈论的所有有趣功能。


44
投票

:set term=builtin_ansi

为我修好了。您可以在转义模式(哔声模式)下将其粘贴到 vim 中,或者将其添加到 ~/.vimrc 的末尾,而不带前导“:”


18
投票

vi 在插入模式下不支持箭头键。使用vim。尽管您的 vi 可能只是 vim 的链接,但它可能被配置为像“原始”vi 一样运行,从而禁用箭头键。直接调用vim就可以了。


8
投票

还有另一种变化:在对 .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

7
投票

唯一对我有用的是“:set term=ansi”


5
投票

我在使用箭头键时遇到了同样的问题,但是当我使用设置 nocp 或 no兼容时,我的退格键无法正常工作

由于某种原因,当我安装 vim 时

sudo apt-get install vim
,vi 不再有任何箭头或退格键问题


2
投票

在 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

1
投票

在 .vim 中切换到使用 git 后,我刚刚遇到了方向键问题。

我已经安装了这个仓库 - https://github.com/sunaku/.vim

经过一个小时的研究,我发现 AutoClose 插件 (反正不喜欢)把方向键弄坏了。

插件文档建议应该设置 set ttimeoutlen=100,但是 那对我不起作用! (使用 urxvt+screen 或 urxvt,甚至 xterm)

所以我最后删除了插件。


0
投票

您可能还想尝试“noesckeys”


0
投票

我在 Windows 8.1 和 Cygwin 中使用 vim 时遇到了同样的问题。

对我有用的解决方案是,只需在 Cygwin 终端中运行以下命令:

cp vimrc_example.vim ~/.vimrc

0
投票

为了支持 vi 和 vim,我在用户主文件夹 (~) 的 .vimrc 文件中至少使用了以下内容:

set nocompatible
set term=ansi
set backspace=indent,eol,start

-1
投票

在命令行中写下:

EXINIT="set nocompatible"; export EXINIT
© www.soinside.com 2019 - 2024. All rights reserved.