Vim中执行可视块选中内容时如何插入shell命令的输出
Vim将选中bash脚本的执行结果插入当前文件的实现方法
基础实现方案
场景1:用执行结果直接替换选中的原脚本内容
直接调整你原有执行命令即可:
:'<,'>!bash
该命令会将你可视块选中的行作为标准输入传递给bash执行,执行后的标准输出会直接覆盖原来选中的内容。
如果需要同时捕获标准错误输出一起替换,修改命令为:
:'<,'>!bash 2>&1
场景2:保留原选中的脚本内容,将执行结果插入到选中区域下方
可以用无需临时文件的简洁写法实现:
:<c-u>put =system('bash', getline("'<", "'>"))
如果需要同时插入标准错误输出,修改为:
:<c-u>put =system('bash 2>&1', getline("'<", "'>"))
进阶快捷映射配置
你可以把操作映射到可视模式快捷键,写入.vimrc配置文件,后续选中内容后按快捷键即可完成操作,无需每次敲长命令:
- 替换选中内容为执行结果的映射:
vnoremap <leader>r :<c-u>'<,'>!bash 2>&1<cr>
- 保留原内容,在下方插入执行结果的映射:
vnoremap <leader>r :<c-u>put =system('bash 2>&1', getline("'<", "'>"))<cr>
默认leader键为\,配置后选中内容按\r即可触发对应操作。
内容的提问来源于stack exchange,提问作者auditory
相关产品推荐
相关产品推荐

