簡體   English   中英

如何將stdout輸出重定向到新的Vim選項卡?

[英]How to redirect stdout output to a new Vim tab?

我正在Vim中編輯XML文件,然后我想用xsltproc將它轉換為純文本文件,默認輸出為stdout(類似於:!xsltproc TXTRULE.XSL%)。 是否可以將該xsltproc輸出重定向到Vim中的新選項卡而無需創建任何中間文件?

(我試過閱讀:幫助redir和一些wiki筆記 ,但仍然無法得到它。對於某種簡單的例子會很有用。)

您可以使用如下所示的讀取

:read !ls

顯然你應該用你的命令改變ls 如果要打開一個新選項卡,請在tabnew前面添加一個條形欄,如:

:tabnew|read !ls

要擴展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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM