我正在Vim中编辑一个XML文件,然后我想用xsltproc将它转换为纯文本文件,默认输出为stdout(类似于:!xsltproc TXTRULE.XSL%)。是否可以将该xsltproc输出重定向到Vim中的新选项卡而不创建任何中间文件?
(我试过阅读:帮助redir和some wiki notes,但仍然无法得到它。对于某种简单的例子会很有用。)
答案 0 :(得分:24)
答案 1 :(得分:4)
要展开lucapette的answer,你可以创建一个这样的地图:
:map ,x :tabnew<Bar>read !xsltproc TXTRULE.XSL #
#
扩展到之前打开的缓冲区,即您正在编辑的文件,而%
将扩展为:tabnew
打开的新缓冲区。
<Bar>
代替|
,否则,:map
命令将以|
结束。
答案 2 :(得分:0)
我正在使用以下内容查看我的程序输出(对于带有make run规则的makefile非常有用)
只有当之前尚未打开一个新选项卡时,它才会打开一个新选项卡:
fu! RedirStdoutNewTabSingle(cmd)
let a:newt= expand('%:p') . ".out.tmp"
tabnext
if expand('%:p') != a:newt
tabprevious
exec "tabnew" . a:newt
else
exec "%d"
endif
exec 'silent r !' . a:cmd
set nomodified
endfunc
au FileType xml noremap <buffer> <F6> :call RedirStdoutNewTabSingle("xsltproc")<CR>