2012-12-17 20 views
5

默認情況下,午夜指揮官中的Ctrl-O用於顯示控制檯輸出。在/etc/mc/mc.keymap我已將ShowCommandLine設置爲另一個鍵盤快捷鍵,現在MC不會對Ctrl-O做出反應。從Midnight Commander調用Vim時,Ctrl-O讓我卡在午夜指揮官面板視圖中

同樣,默認情況下,Vim中的Ctrl-O用於循環先前訪問的文件。在我的~/.vimrc中,我加了map <C-o> <nop>,以防萬一,imap <C-o> <nop>。現在,如果直接從終端或xterm調用,Vim也不會對Ctrl-O做出反應。

儘管如此,如果我叫的Vim從午夜指揮官提示,然後按下Ctrl-O,I最終在午夜指揮官的標準兩面板模式,並且我不能按Ctrl-O (也不是Ctrl-I)其中。當然,如果我嘗試從MC啓動一個新的Vim任務,它現在告訴我「shell已經在運行一個命令」,如果我只是想將F10從MC中移出,它會說「shell是仍然活躍,退出嗎?「,如果我這樣做的話,它當然會殺死Vim。

我該如何解決這個問題?

+0

Nitpicking:''用於返回跳轉列表,不循環以前訪問過的文件。這兩者在某些情況下可能是相同的,但應該被認爲是兩個不同的東西。你試過':unmap'而不是':map '? – romainl

+0

@romainl我對Vim相當陌生,我會留意有關跳轉列表的。 ':unmap'給了我'E31:沒有這樣的映射'。奇怪的是,看到沒有':map '它讓我進入跳轉列表,而重映射到跳轉列表不可訪問。另外,我意識到通過禁用跳轉列表的快捷方式,我可能會在某處發生槍擊自己。 –

+0

哦,是的,''和''的用處不能被誇大。關於該錯誤,''可能不被Vim視爲「映射」。在我看來,無論是MC還是你的終端仿真器都有問題。或者別的什麼。你描述的行爲與Vim中的''大致相似。 – romainl

回答

1

這裏發生的事情是,Vim的捕捉按Ctrl +Ø通過默認情況下,在跳轉列表導航回來。當你做:map <C-o> <nop>時,Vim仍然捕獲到Ctrl + O鍵序列;它只是沒有做任何事情。就午夜指揮官而言,你從未按下過這些鍵; Vim首先捕獲輸入。我不知道如何讓Vim停止捕獲默認的按鍵序列。

+0

謝謝!現在有道理。無論如何,我煩惱這個的方式是讓MC偏向Ranger,因爲Ranger原生使用Vim鍵進行導航,哈哈。 –