Actualmente estoy usando MacVim y me gustaría imprimir todos los archivos en mi árbol de trabajo. ¿Hay alguna manera de hacer esto simplemente, quizás usando el comando hardcopy
?Imprimir recursivamente todos los archivos de Vim
Respuesta
Una manera conveniente de ejecutar un comando para un grupo de archivos es recoger la lista de sus nombres , lo definen como la nueva lista de argumentos (vea :help arglist
), y luego itere el comando sobre esos archivos en la lista de argumentos.
Para llevar a cabo el primer paso, utilice el comando
:args
con un comodín archivos coincidentes deseada. Por ejemplo,:args ./**/*
establece la lista de argumentos a los nombres de todos los archivos del directorio actual y sus subdirectorios; Del mismo modo,
:args /tmp/**/*.{c,h}
selecciona todos los archivos
.c
y.h
en/tmp
y sus subdirectorios. Para detalles sobre la sintaxis comodín, vea:help wildcard
.Si ruta a la raíz de un subárbol que contiene los archivos de impresión sea desconocida de antemano y es construido por una secuencia de comandos, utilice el comando
:exe 'args' join(map(split(glob(p . '/**/*'), '\n'), 'fnameescape(v:val)'))
donde se supone que la variable
p
a contener la ruta que directorio raíz.Para el envío de archivos en la lista de argumentos a la impresora, ejecute el comando
:hardcopy
para esos archivos utilizando el comando:argdo
,:argdo hardcopy!
El especificador
!
suprime el cuadro de diálogo modal para seleccionar la impresión parámetros.Se puede usar un comando más complicado para imprimir cada archivo en , un documento PostScript separado ubicado en el mismo directorio que el archivo .
:argdo hardcopy! >%:p.ps
Aquí el nombre de un archivo impreso se concatena con el sufijo
.ps
para obtener el nombre de un archivo PostScript correspondiente (ver:help cmdline-special
).Para acelerar el comando
:argdo
-argumento, Vim ignora el eventoSyntax
AutoCommand añadiéndolo a la listaeventignore
. Esto implica que siSyntax
autocommands no habían sido calculados para un archivo en la lista de argumentos antes del comando:hardcopy
es:argdo
ne, la documento impreso correspondiente no tendría un formato con colores (en caso desyntax:y
set enprintoptions
). Para ejecutarSyntax
autocomandos para todos los archivos en la lista de argumentos, primero use el siguiente comando .:argdo set ei-=Syntax | do Syntax
Para hacer esto en la misma corrida como la impresión, concatenar los comandos:
:argdo set ei-=Syntax | do Syntax | hardcopy! >%:p.ps
Como de costumbre, mucho más completo – sehe
Gracias por las respuestas chicos. Esto funciona. –
@ib. Pregunta de seguimiento sobre este. Parece que no puedo hacer resaltar la sintaxis cuando uso este comando. Por lo que puedo decir, lo hace por el primero, pero ninguno de los siguientes lo imprime en PostScript. Preguntándose, ¿por qué es eso? He intentado 'establecer printoptions = sintaxis: y" 'en mi vimrc pero no parece hacer el truco. –
Editar Disculpa, he entendido mal antes.
Para imprimir todo, dicen PHP y C# archivos en el directorio de trabajo:
:args ./*.{cs,php} **/*.{cs,php}
:argdo ha
Simplemente ': args **/*. {Cs, php}' lo haría, IIRC. – fachexot
- 1. Hacer ejecutables todos los archivos PHP (recursivamente)
- 2. agregar recursivamente la extensión de archivo a todos los archivos
- 3. Vim: crear marcas en todos los archivos?
- 4. Difiere un directorio recursivamente, Ignorando todos los archivos binarios:
- 5. Subversion: cómo eliminar todos los archivos .svn recursivamente?
- 6. TCL: buscar recursivamente subdirectorios para obtener todos los archivos .tcl
- 7. Cómo recursivamente enumerar todos los archivos y directorios
- 8. Recursivamente incluyendo todos los subdirectorios modelo
- 9. Java: ¿cómo obtener todos los subdires recursivamente?
- 10. HDFS: ¿Cómo se enumeran los archivos recursivamente?
- 11. Visual Studio: ¿Imprimir todos los archivos fuente en una solución?
- 12. Vim ejecuta autocmd en todos los tipos de archivos EXCEPTO
- 13. Cuente recursivamente archivos específicos BASH
- 14. Cómo eliminar archivos recursivamente
- 15. vim - deshacer en todos los tampones/ventanas/abrir archivos etc
- 16. Sangría en VIM con todos los archivos en la carpeta
- 17. ¿Cómo guardar todos los archivos en pestañas en Vim?
- 18. No se pueden eliminar archivos recursivamente de Git
- 19. Aplicando una opción a todos los archivos abiertos en Vim
- 20. Búsqueda de archivos recursivamente
- 21. lista LINUX recursivamente todos los archivos en un directorio incluyendo los archivos en directorios de enlaces simbólicos
- 22. ¿Cómo recursivamente usar JpegTran (línea de comando) para optimizar todos los archivos en subdirectorios?
- 23. windows .bat file cómo enumerar recursivamente todos los archivos de tipo * .mp3
- 24. Eliminando todos los búferes vacíos en VIM
- 25. ExtJs4 cómo deshabilitar todos los campos y todos los botones de un panel recursivamente
- 26. crear archivos, crear directorios recursivamente
- 27. ¿enumera recursivamente todos los archivos y carpetas bajo la ruta dada?
- 28. ¿Cómo puedo encontrar todos los archivos * .js en el directorio recursivamente en Linux?
- 29. Cómo recursivamente enumerar todos los archivos en un directorio en C#?
- 30. iterar recursivamente sobre todos los archivos en un directorio y sus subdirectorios en Qt
': qa' cerrará todos los archivos abiertos ... Me pregunto si' a' puede modificar ? –