2009-05-20 78 views
0

我有一個README文件,下面的命令:無法運行Vim的視覺模式,許多命令外部

./Setup ... 
./Setup ... 
./Setup ... 

我想通過肉眼選擇的代碼,然後運行它們來運行它們。

我運行不成功

: '<,'> ! 

當前代碼後,呂克在他的答覆意見

我在.vimrc裏的代碼,我沒有設法去上班:

vmap <silent> <leader>v y:exe '!'.join(split(@", "\n"),';')<cr> 

我正在嘗試使鍵盤組合爲

v yy 

你怎麼能得到上面的命令工作,這樣你可以在Vim中直接運行文件的命令?

回答

1

這可能是過於簡單化的東西,但爲什麼不只是做:

 
:e README 
:%!bash 

這將通過bash過濾當前文件,將每行作爲命令執行。當前緩衝區被運行文件中所有命令的輸出替代。

這可能有助於做一個:w RESULTS首先將它保存爲其他文件,這樣你就不會意外覆蓋原:

 
:e README 
:w RESULTS 
:%!bash 

你曾說過你想與視覺的選擇要做到這一點,這也會起作用在您選擇要執行的內容後,請鍵入:'<,'>將自動預置爲當前命令。 '<是當前選擇開始的標記,而'>是當前選擇結束時的標記。你可以只運行只是那些已選擇就像上面的命令:

 
:'<,'>!bash 

這將取代只是執行這些命令的輸出選擇的命令。

5
  • 首先選擇你的文字,
  • 然後將其與y複製,
  • 最後,你可以執行:

    : '!'。exe文件加入(分(@ 「」 \ N「), ';')

+0

你的命令有效!謝謝。我想知道是否有更短的方法來做同樣的事情。我很難記住這個命令。 – 2009-05-21 12:09:03

+1

你可以定義一個映射: - >:vnoremap whatevercombo y:exe'!'join(split(@「,」\ n「),';') 2009-05-21 13:18:53