[英]How to redirect stdout output to a new Vim tab?
我正在Vim中編輯XML文件,然后我想用xsltproc將它轉換為純文本文件,默認輸出為stdout(類似於:!xsltproc TXTRULE.XSL%)。 是否可以將該xsltproc輸出重定向到Vim中的新選項卡而無需創建任何中間文件?
(我試過閱讀:幫助redir和一些wiki筆記 ,但仍然無法得到它。對於某種簡單的例子會很有用。)
要擴展lucapette的答案 ,你可以創建一個這樣的地圖:
:map ,x :tabnew<Bar>read !xsltproc TXTRULE.XSL #
#
展開到先前打開的緩沖區,即您正在編輯的文件,而%
將擴展到由:tabnew
打開的新緩沖區。
必須使用<Bar>
代替|
,因為否則, :map
命令將以|
結束 。
我使用以下內容來查看我的程序輸出(對於帶有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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.