¿Cómo vuelco un comando vim interno (no un comando de shell) en un nuevo búfer?
Por ejemplo, quiero volcar una lista de todos los plugins en :enewde :scriptnamesmodo que pueda buscarla.
fuente
¿Cómo vuelco un comando vim interno (no un comando de shell) en un nuevo búfer?
Por ejemplo, quiero volcar una lista de todos los plugins en :enewde :scriptnamesmodo que pueda buscarla.
Puede usar :redirpara redirigir la salida a una variable, registro o archivo. Ejemplo de redireccionamiento al registro sin nombre:
:redir @">|silent scriptnames|redir END|enew|put
Alternativamente, scriptease.vim de Tim Pope proporciona el :Scriptnamescomando que se cargará :scriptnamesen la lista de soluciones rápidas y :copen.
Si se encuentra redirigiendo muchos comandos, es posible que desee resumir esto en un comando:
command! -nargs=+ -complete=command Redir let s:reg = @@ | redir @"> | silent execute <q-args> | redir END | new | pu | 1,2d_ | let @@ = s:reg
Ahora puede usar el :Redircomando para redirigir la salida a un nuevo búfer. por ejemplo :Redir scriptnameso :Redir ls.
Vim 8 se entrega con la nueva execute()función. Puede usar la execute()función en lugar de :redircapturar la salida del comando anterior.
:enew|pu=execute('scriptnames')
Para más ayuda ver:
:h :redir
:h :silent
:h :scriptnames
:h :enew
:h :put
:h execute()
ENDsignifica:redir ENDle dice a Vim que finalice la redirección de mensajes. Ver:h :redirPara completar, quiero presentar estas increíbles funciones que recopilé (robé) de romainl
Esto tomará la salida de comando normal o del sistema y lo colocará en una nueva pestaña. Siéntase libre de cambiar la línea
tabnewavsplit, osplitetc.fuente
También está el plugin bufferize.vim :
que es básicamente una versión empaquetada de la respuesta aceptada (usando
:redir) y puede ser más conveniente para algunos.fuente