2012-06-25 41 views
1

我有一個奇怪的問題:當我做這樣的事情在GNU屏幕窗口vim中,該窗口開始怪異的方式使用xargs的使用GNU屏幕

ls *.cpp | xargs vim 

響應後從VIM我退出後,屏幕窗口不迴應任何命令。它甚至不會回顯CR。

有什麼建議嗎?

+2

您是否期待VIM爲您打開所有** cpp **文件。 我建議你在** VIM **中做這種事情,而不是這樣。 – zinking

+1

爲什麼不直接使用vim'vim * .cpp' – nXqd

+1

'vim * .cpp'會怎麼樣? – epsilonhalbe

回答

2

管道更改vim的標準輸入並導致問題。試試這個(對於bash,zsh等):

vim $(find . -name "*.cpp") 
2

vim *.cpp怎麼樣?可能for file in *.cpp; do vim "$file"; done也可以工作。編輯每個文件並退出。

或者開始vim並添加與下面的命令所有cpp文件::argadd *.cpp

2

當在這樣的管道使用Vim的,你可能會注意到以下警告:

Vim: Warning: Input is not from a terminal 

這是Vim的告訴你它不能像它應該的那樣工作(即在交互模式下;你仍然可以在「批處理模式」中通過給它提供Ex命令來處理它)。這解釋了你在Vim退出後遇到的奇怪現象。