2013-03-08 47 views
0

當我設置Vim的外殼是互動的,就會出現此:在vim命令的任何執行導致它被暫停

set shellcmdflag=-ic 

set shell=/bin/bash\ -i 

我喜歡這些,因爲他們給語法高亮的輸出(例如:!ls) 但成本是,我必須輸入fg #每次。

這是默認行爲?

如何在vim中獲得交互式shell而無需使其運行在前臺?

+0

正如tpope指出的那樣'shellcmdflag = -ic'通常不是一個好主意(https://github.com/tpope/vim-sensible/issues/29):「說謊是爲了互動當它不是時,它會影響到所有內容:!down到system()(:shell始終是交互式的),所以它會導致各種破壞,例如,.bashrc中的某些內容會產生輸出。而Vim因爲我不理解的理由而被暫停。「 我也可以證明,當這個變量被設置時,許多vim功能和插件破壞了。 – Forethinker 2013-03-15 18:12:38

回答

1

你不行。這種行爲非常正常,並且符合Vim作者的哲學。這是非常將來不太可能改變。

如果你想裏面 Vim的外殼,你必須安裝一個插件像ConqueVimshell.

+0

你能告訴我這個哲學是什麼嗎? (例如姓名,解釋,報價或鏈接) – Forethinker 2013-03-08 20:36:59

0

我通常只是用TMUX代替。你可以拆分終端,並有一個正常的交互式shell和一個並行運行的vim實例 - 非常方便。