seleccionar - tutorial vim
¿Cómo redirigir la salida stdout a una nueva pestaña Vim? (3)
Estoy usando lo siguiente para ver los resultados de mi programa (muy útil para un makefile con una regla de ejecución)
Abre una nueva pestaña junto a la actual solo si no se ha abierto una antes con ese fin:
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>
Estoy editando un archivo XML en Vim, y luego quiero transformarlo en un archivo de texto plano con xsltproc, que de forma predeterminada genera un stdout (algo como:! Xsltproc TXTRULE.XSL%). ¿Es posible redirigir esa salida xsltproc a una nueva pestaña en Vim sin crear ningún archivo intermedio?
(He intentado leer: ayudar a redirigir y algunas notas de la wiki , pero aún no puedo obtenerlo. Sería genial para algún tipo de ejemplo simple).
Para ampliar la answer de lucapette, puedes crear un mapa como este:
:map ,x :tabnew<Bar>read !xsltproc TXTRULE.XSL #
#
expande al búfer abierto anteriormente, que es el archivo que estaba editando, mientras que %
se expandiría al nuevo búfer abierto por :tabnew
.
<Bar>
debe utilizarse en lugar de |
, porque de lo contrario, el comando :map
terminaría en la |
.