ventanas tutorial seleccionar que cambiar buffers archivos archivo vim

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 | .


Puedes usar la read como la siguiente:

:read !ls

Obviamente debes cambiar ls con tu comando. Si desea abrir una pestaña nueva, tabnew con una barra al comando como:

:tabnew|read !ls