为什么 vi 在 Ubuntu 中的行为与 CentOS 中不同?
题
我每天都越来越习惯使用 vi,但困扰我的一件事是,当我在 Ubuntu 上使用它时,它的行为与我在 CentOS(可能还有其他地方)上使用它时的行为不同。事实上我更喜欢它在 CentOS 中的工作方式。
以下是 Ubuntu 上真正困扰我的三件事:
在 CentOS 插入模式下,底部有一个很大的粗体通知,表明我处于插入模式,但在 Ubuntu 中没有通知,所以我永远无法判断我处于哪种模式。
在CentOS插入模式下,我可以按向上/向下键,光标将上下移动。但是当我在 Ubuntu 中时,按向上和向下键会分别在新行中插入字母 A 和 B。
在 CentOS 插入模式下,我可以使用退格键,它将删除光标之前的字符,但在 Ubuntu 中,我只听到嘟嘟声,什么也没有发生。我可以在命令模式下按删除键,但我宁愿能够按退格键。
这些差异是我必须忍受的还是很容易解决的?
解决方案
在ubuntu中,默认的vim安装来自包 vim-tiny
, ,这还不是全部。
您可能想要:
apt-get install vim
或者
apt-get install vim-full
您的其他一些问题听起来像是退格键和其他问题。获得完整版本的 vim 后,尝试将这些添加到您的 .vimrc 中:
set nocompatible
set t_kb=^H
fixdel
(重要的提示:^H 是一个文字 ctrl-H 字符,您可以通过在插入模式下执行 Ctrl-V Ctrl-H 来获得它)
其他提示
之前提供的答案对我不起作用。
我倾向于尽可能保留操作系统安装并保持配置文件尽可能简单。为了解决 Ubuntu 12.04 中的这三个问题,我执行了以下操作:
在“~/.vimrc”中,插入以下行 -
设置 nocp
设置bs=2
除了安装 vim-full 之外,如果您还没有安装 ~/.vimrc
:
$ cp /usr/share/vim/vimcurrent/vimrc_example.vim ~/.vimrc
这个例子 .vimrc
已经完成了最重要的设置,这是定制的良好开端。
当你说 VI 时,我假设你指的是 VIM?至少,第二点似乎是 VIM/term 组合的控制台/终端问题。下面的页面建议了一些修复,但我无法解决(我在 Ubuntu 开发盒中使用 vim 而不是 putty)
http://vim.wikia.com/wiki/Fix_broken_arrow_key_navigation_in_insert_mode
第三点可以通过在 .vimrc 中使用以下内容来覆盖
设置退格=缩进,结束,开始
(1) 检查是否 showmode
两者的设置不同。
(2) 不知道这个,我认为这与终端的关系比 Vi 本身的关系更大。
(3)也许尝试使用 :map <BS> :normal d
?
在 CentOS 中,vi 是另一个程序 vim 的别名,但在最新版本的 Ubuntu 中,vi 仅表示 vi,而不是 vim。您看到的差异是两个不同程序 vi 和 vim 之间的差异。
如果你喜欢 vim,就运行 vim,而不是 vi。这也适用于 Ubuntu
在我的 .vimrc 中设置它对我有用..
set term=builtin_ansi
我有 WDMyCLoud 和 Debian 7,我使用如下:
cp /usr/share/vim/vimcurrent/debian.vim ~/.vimrc
就我而言,.vim 文件的创建方式如下:
set nocompatible
fixdel
如果我添加 set t_kb=^H
, ,退格键只是作为删除键。