2009-07-02 81 views
29

我在日常工作中越來越習慣使用vi,但有一件令我困擾的事情是,當我在Ubuntu上使用它時,它的行爲與我在CentOS上使用它的行爲有所不同(可能還有其他地方)。我實際上更喜歡它在CentOS中的工作方式。爲什麼vi在Ubuntu中的表現與CentOS不同?

這裏有三件事情是真的困擾我在Ubuntu:

  1. 在CentOS的插入模式存在的,我在插入模式是底部的大大膽通知,但在Ubuntu沒有請注意,我永遠無法知道我處於哪種模式。

  2. 在CentOS插入模式下,我可以按上/下鍵,光標會上下移動。但是當我在Ubuntu上下按下時,分別在新行上插入字母A和B.

  3. 在CentOS插入模式中,我可以使用退格鍵,它會刪除光標前的字符,但在Ubuntu中,我只聽到一聲蜂鳴聲,沒有任何反應。我可以在命令模式下按下刪除鍵,但我寧願能夠按退格鍵。

這些差異是我必須忍受的還是一個簡單的修復?

回答

36

在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在插入模式下)

+1

謝謝!我安裝了vim-full並解決了所有三個問題! – 2009-07-02 14:28:59

0

(1)檢查showmode的設置是否不同。 (2)不知道這個,我認爲這比終端本身更重要。

(3)也許嘗試使用:map <BS> :normal d

1

當你說VI時,我會認爲你的意思是VIM嗎?至少,第二點似乎是VIM/term組合的控制檯/終端問題。下面的頁面提出了一些解決方法,但沒有,我可以做的工作(我使用vim在膩子一個Ubuntu開發框)

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

第三點可以覆蓋通過在.vimrc以下

設置backspace = indent,eol,start

0

在CentOS中,vi是不同程序vim的別名,但在最近版本的Ubuntu中,vi意味着只是vi,而不是vim。你看到的差異是兩個不同的程序vi和vim之間的區別。

如果你喜歡vim,只需運行vim,而不是vi。這個工程在Ubuntu太

4

除了安裝VIM滿,如果你不已經哈瓦一個~/.vimrc

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

這個例子.vimrc已經使最重要的設置,是一個良好的開端定製。

6

以前提供的答案不適合我。

我傾向於傾向於儘可能保留操作系統安裝,儘可能簡化配置文件。爲了在Ubuntu 12.04來解決這三個問題,我做了以下內容:

在 「〜/ .vimrc」 文件,插入線 -
設置NOCP
設置BS = 2

0

在設置這個我.vimrc爲我工作..

set term=builtin_ansi 
1

我個人喜歡vim tiny和它的控制 - 更接近真正的vi。 在某些發行版中,您只能獲得'vim' - vim-tiny不可用。在這些我找到類似的解決方案 - 基本的 - 從另一個發行版中竊取vim-tiny或編譯真正的vi(代碼仍然可用)。

vim的一些問題是它的着色 - 其中大部分可以關閉,但不是全部。最大的問題是沒有報告Ctrl-G上的行號,這使得完整的vim無法使用 - 我還沒有找到解決這個問題的方法。

幾乎所有的vim/vi問題都可以解決,如果兩個版本都可以通過vim安裝。如果只安裝了vim-tiny,你可以隨時安裝到完整的vim - 但是,如果安裝了完整的vim(Slackware版本),出於某種未知的原因,vim-tiny根本不可用。

完整的'vim'應該有一個簡單的開關,以'vim-tiny'vi兼容性開關不會這樣做。 vim開發者的這種態度一直持續多年 - 他們的目標是有效地實現「市場份額」概念,即接管並指導用戶的選擇 - 我並沒有留下深刻的印象。

0

我有WDMyCLoud與Debian的7內,即時通訊使用,如:

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

相關問題