【问题标题】:Why does vi behave differently in Ubuntu than in CentOS?为什么 vi 在 Ubuntu 中的行为与在 CentOS 中的行为不同?
【发布时间】:2010-11-07 15:48:59
【问题描述】:

我越来越习惯于每天使用 vi,但困扰我的一件事是,当我在 Ubuntu 上使用它时,它的行为与我在 CentOS(可能还有其他地方)上使用它时的行为不同。我实际上更喜欢它在 CentOS 中的工作方式。

以下是在 Ubuntu 上真正困扰我的三件事:

  1. 在 CentOS 插入模式下,底部有一个很大的粗体通知,表明我处于插入模式,但在 Ubuntu 中没有通知,所以我永远无法判断我处于哪种模式。

  2. 在 CentOS 插入模式下,我可以按上/下键,光标会上下移动。但是当我在 Ubuntu 中时,向上和向下按会分别在新行上插入字母 A 和 B。

  3. 在 CentOS 插入模式下,我可以使用退格键,它会删除光标之前的字符,但在 Ubuntu 中,我只听到哔声,没有任何反应。我可以在命令模式下按删除键,但我宁愿能够按退格键。

这些差异是我必须忍受的还是很容易解决的?

【问题讨论】:

    标签: vim ubuntu centos


    【解决方案1】:

    在 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 来获得)

    【讨论】:

    • 谢谢!我安装了 vim-full 并解决了所有三个问题!
    【解决方案2】:

    之前提供的答案对我不起作用。

    我倾向于尽可能保留操作系统安装并保持配置文件尽可能简单。为了解决 Ubuntu 12.04 中的这三个问题,我做了以下工作:

    在 "~/.vimrc" 中,插入行 -
    设置 nocp
    设置 bs=2

    【讨论】:

      【解决方案3】:

      除了安装vim-full,如果你还没有~/.vimrc

      $ cp /usr/share/vim/vimcurrent/vimrc_example.vim ~/.vimrc
      

      此示例.vimrc 已经完成了最重要的设置,是自定义的良好开端。

      【讨论】:

        【解决方案4】:

        当您说 VI 时,我会假设您是指 VIM?至少,第二点似乎是 VIM/term 组合的控制台/终端问题。下面的页面建议了一些修复,但我无法解决(我在 Ubuntu 开发盒中使用 vim 而不是 putty)

        http://vim.wikia.com/wiki/Fix_broken_arrow_key_navigation_in_insert_mode

        第三点可以通过在你的 .vimrc 中使用以下内容来覆盖

        设置 backspace=indent,eol,start

        【讨论】:

          【解决方案5】:

          (1) 检查两者的showmode 设置是否不同。

          (2)这个不知道,我觉得这个和终端有关,而不是Vi本身。

          (3) 可以试试:map <BS> :normal d 吗?

          【讨论】:

            【解决方案6】:

            在 CentOS 中,vi 是另一个程序 vim 的别名,但在最近的 Ubuntu 版本中,vi 仅表示 vi,而不是 vim。如果两个不同的程序 vi 和 vim 之间的差异,您会看到差异。

            如果你喜欢 vim,只需运行 vim,而不是 vi。这也适用于 Ubuntu

            【讨论】:

              【解决方案7】:

              在我的 .vimrc 中设置这个对我有用..

              set term=builtin_ansi
              

              【讨论】:

                【解决方案8】:

                我有 WDMyCLoud 和 Debian 7,我正在使用类似:

                cp /usr/share/vim/vimcurrent/debian.vim ~/.vimrc

                【讨论】:

                  【解决方案9】:

                  在我的例子中,.vim 文件的创建如下:

                  set nocompatible
                  
                  fixdel
                  

                  如果我添加set t_kb=^H,退格键只是作为删除键。

                  【讨论】:

                    猜你喜欢
                    • 2020-11-19
                    • 2016-09-11
                    • 2010-12-28
                    • 2021-01-29
                    • 2013-11-25
                    • 1970-01-01
                    • 2016-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多