在vim中编写bash脚本时,能够从脚本中选择性地仅运行几行是很有用的,例如:如果我有一些脚本
#! /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 :(得分:4)
从pacholik的答案中,你可以推断:
在可视模式下,点击:
并撰写w !bash
这样你的整个命令就是:'<,'>w !bash
您将获得输出结果(但它不会更改文件
如果删除w
,它将用缓冲区的输出替换该行。
我有例如将 r 映射到&#34;运行命令&#34;在视觉模式。
像这样:
vnoremap r :w !bash<cr>
我也有正常模式(运行当前行), yr (你运行)
nnoremap yr :.w !bash<cr>
答案 1 :(得分:0)
您可以使用Quickrun插件:http://vimawesome.com/plugin/quickrun-vim
它可以动态运行多种语言(bash,python,c ++ ...),并且只能运行选定的区域。
您需要的一切是:
:set ft=sh
bash
):'<,'>QuickRun
输出将在新窗口中打开。 您可以在许多点上调整插件,请参阅帮助。