2010-11-11 60 views
16

當我在本地計算機(Mac OS X Snow Leopard)的終端中使用VIM時,刪除鍵實際上是退格鍵(即破壞性退格鍵)。如何通過ssh修復VIM中的VIM刪除鍵? (Mac OS X)

當我SSH進入某個特定的服務器時,出於某種原因它是正常刪除(即刪除光標下的字符)。

如何將其更改爲一致?我已經嘗試了一打解決方案,但似乎沒有任何工作。

檢查終端首選項 - >高級中的「刪除發送Ctrl-H」框不起作用 - 這是非破壞性的退格。

我試了一下VIM中的一百個不同的鍵映射,無濟於事。

有趣的是,當我在VIM中輸入命令時(如: <something>),鍵的工作方式與預期相同 - 只有在編輯實際文本時纔會使用。有任何想法嗎?

回答

1

嘗試增加

set <Del>=<C-v><Del>

到目標機器上的vimrc。在這裏你必須鍵入< C-v ><刪除>當登錄目標機器時。如果這不起作用,請檢查verbose imap <Del>:這應該告訴你某些插件是否在插入模式下重新映射了<Del>

+0

嗨ZyX,嘗試過,但沒有去。當我點擊我最後看到一個看起來像「:set = ^?」的命令。我在VIM的命令行和我的.vimrc中輸入了它;也嘗試以相同的方式設置,但沒有任何區別。詳細的imap 和詳細的imap 都表示「找不到映射」。非常令人沮喪的是,正如我所提到的那樣,當我實際在提示符下輸入VIIM命令時,它的關鍵作用(作爲破壞性的退格)在實際文件中出錯。 – Aeonaut 2010-11-14 22:19:27

+0

@Aeonaut很奇怪,因爲我可以讓''像''工作,'設置 = = '。在我所有的終端上''發送「^ [[3〜',但我看到它發送'^?'的終端。 「破壞性退格」是什麼意思?也許你應該嘗試'inoremap cl'(我使用這個序列刪除了音譯插件中的前一個字符,它的工作原理與'backspace'和'delcombine'選項無關)。另請嘗試':fixdel'命令。 – ZyX 2010-11-15 04:10:00

7

夫婦的想法嘗試:

  • 在遠程服務器上的.vimrc文件,加入這一行:

    set term=linux 
    
  • 在你.bash_profile文件(或任何對應於您的外殼選擇)在遠程服務器上:

    stty erase ^H 
    

    注意:要使這正常工作,您必須鍵入CTRL - v,然後CTRL - ^h鍵入^H字符。

    此外,請確保在您的終端設備中檢查「刪除發送Ctrl-H」。

3

試試這個:http://www.alecjacobson.com/weblog/?p=295

我改變我的Terminal.app設置固定的問題。在終端>首選項下選擇高級。選中「刪除發送Ctrl-H」。現在,vi和vim應該更直觀地理解delete鍵。

注意:映射我的vimrc文件中的「刪除」鍵似乎可能是正確的方法,但這樣做很麻煩。有沒有理由不這樣做?

13

這爲我工作:

:set backspace=indent,eol,start 

我不知道正是它,但它已被列爲可能的解決方案herehere。我發現這行代碼與Ubuntu分發的vimrc文件中,其中mac「delete」鍵(也稱爲「backspace」鍵)的行爲按預期工作,沒有任何其他配置。

按MAC插入模式「刪除」鍵(或稱爲「退格」鍵)時,我遇到的行爲是一個鈴聲(不刪除字符)。我在mac上通過ssh在「amazon linux」上使用vim 7.3的編譯版本。在插入模式下按<ctrl-v><delete>導致^ ?.