2015-09-18 43 views
1

在vim中編寫bash腳本時,能夠有選擇地從腳本中只運行幾行,例如如果我有一些腳本如何直觀地選擇,然後在vim中直接執行shell命令?

#! /bin/bash 

# more commands 

mkdir /tmp/test_dir 
echo "some output to STDOUT" 
touch /tmp/test_dir/new_file 

# more commands 

說,我只是想我怎麼能突出執行腳本

mkdir /tmp/test_dir 
echo "some output to STDOUT" 
touch /tmp/test_dir/new_file 

的這一部分,在VIM執行呢? 我試圖

  • v,選擇目標文本,:

這給與:'<, '>

提示然後試圖:! w

但它不能正常工作。
我不需要寫shell命令的STDOUT到一個文件或任何東西,但我希望能夠至少看到輸出。

+0

有一個名爲QuickRun的Vim模塊可以做同樣的事情,並給你分裂的結果。它可以執行整個緩衝區或只執行其中的一部分。 https://github.com/thinca/vim-quickrun/blob/master/doc/quickrun.txt –

回答

4

從pacholik的回答,您可以推斷:

在可視化模式,打:w !bash

,使您的整個命令是:'<,'>w !bash

你會得到的輸出結果(但它不會更改文件

如果您刪除w,它將代之以緩衝區的輸出行。

我有例如映射r到「運行命令」在視覺模式。

像這樣:

vnoremap r :w !bash<cr> 

我也有這個在正常模式(運行當前行),與(運行)

nnoremap yr :.w !bash<cr> 
+0

我已經更新了我的答案以添加映射 – edi9999

0

您可以使用Quickrun插件: http://vimawesome.com/plugin/quickrun-vim

它可以運行多種語言(bash,python,C++ ...),並且只能運行選定的區域。你需要

一切:

  • 設置你的文件的文件類型(通常它會自動檢測到,除非你創建一個新的文件,在這種情況下,只是舉例做::set ft=shbash
  • 選擇你的文件的一部分與V
  • 運行:'<,'>QuickRun

輸出在新窗口中打開。 您可以在許多方面調整插件,請參閱幫助。