Soy una especie de novato en Vim. Me gustaría enviar el contenido del búfer actual al stdin del comando externo (digamos correo). Mi propósito final es establecer un atajo para enviar rápidamente correos electrónicos desde el búfer de Vim actual. Supongo que esto debería ser algo trivial, pero no pude encontrar una manera de enviar el búfer de Vim a un comando externo. Gracias por adelantado.
92

STDINcomandos de shell: Canalizar a shell y recibir salida en la línea de información y Reemplazar el texto original seleccionado con la salidaRespuestas:
Puede usar
:w !cmdpara escribir el búfer actual en el stdin de un comando externo. De:help :w_c:Un comando relacionado es el
:%!cmdque hace lo mismo y luego reemplaza el búfer actual con la salida del comando. Entonces:%!sortinvocaría el comando de clasificación externo para ordenar el búfer actual en su lugar.fuente
:'<,'>!python -mjson.toolo:%!python -mjson.tool:%!gofmtsin el último%, ya que eso haría que se usara la versión guardada (que puede diferir del búfer actual)upara deshacerA continuación se muestra un ejemplo de cómo enviar el búfer actual a un stdin externo desde la línea de comando:
Es útil para realizar secuencias de comandos.
Para obtener más trucos de línea de comandos, consulte:
fuente