Menos resaltado de comandos y sintaxis

44

Necesito usar el less commandcon el resaltado de sintaxis del comando vim para python, C, bashy otros idiomas.

¿Cómo aplico los colores de resaltado de sintaxis según los vimcolores para less command?

Golfo pérsico
fuente

Respuestas:

36

El resaltado de sintaxis lessfunciona perfectamente en la mayoría de los sistemas * nix.

apt install source-highlight
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '

En las distribuciones basadas en Fedora / RedHat, utilice /usr/bin/src-hilite-lesspipe.shen su lugar.

Incluso en Cygwin puede hacerlo con un pequeño ajuste de la ruta del script de shell e instalar con en apt-cyglugar de apt.

Sin embargo, usar esto ralentiza drásticamente la exploración de archivos grandes. Sugiero usar aliasde tal manera que solo implemente la LESSOPENexportación anterior cuando sea necesario, de esta manera:

alias lessh='LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" less -M '

donde la -Mbandera es conveniente para mostrar también el nombre del archivo y el número de línea.

También recuerde copiar el script en su ruta bin:

cp /usr/share/source-highlight/src-hilite-lesspipe.sh /usr/bin/src-hilite-lesspipe.sh

ACTUALIZACIÓN: 2019-07-24

Aparentemente, en las instalaciones más recientes de Cygwin, tiene los siguientes archivos en su ruta:

source-highlight.exe
source-highlight-esc.sh
source-highlight-settings.exe

Así que ahora también es necesario para ejecutar la source-highlight-settings.exeque se sumará el fichero de configuración:
$HOME/.source-highlight/source-highlight.conf.

not2qubit
fuente
El alias 'lessh' no funciona para mí. Ejecutando bash en osx. Suspiro.
Scott Biggs
Ese es un problema completamente diferente, muy probablemente debido a que OSX usa diferentes opciones de shell y entorno, lo que puede afectar la interpretación de comillas simples y dobles, de manera diferente. Puede verificar y configurar estos con shopt -py set.
not2qubit
1
Esto funcionó para mí en OSX: primero instalé con:, brew install source-highlightluego agregué un alias:alias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
mhvelplund
39

less no admite resaltado de sintaxis.

vim, como todos los viclones, tiene un modo de solo lectura llamado viewque puede usar para ver archivos. Es compatible con todas las características de vim, incluido el resaltado de sintaxis.

p.ej

view filename.py

La principal diferencia entre viewy vies que la vista no "bloquea" el archivo que está viendo al crear un archivo .swp.

cas
fuente
si su view commandmedio es radare package, no es de solo lectura
PersianGulf
44
Hmm, mi viewcomando no parece admitir el resaltado de sintaxis. Lo he intentado :syntax enabley :syntax onsiempre lo consigo syntax: Not an editor command. Sin vimembargo, mi apoyo destaca.
Felix
@felix: ¿tienes otro me vigusta nvio elvisinstalado? compruebe su /usr/bin/view- en mi sistema Debian, es un enlace simbólico al /etc/alternatives/viewque, a su vez, es un enlace simbólico /usr/bin/vim.basic.
cas
1
Hmm, en mi caso es un enlace simbólico /usr/bin/exque, curiosamente, es propiedad del vipaquete.
Felix
2
Puedo confirmar lo que dice @Felix, el arch linux viewes un enlace simbólico /usr/bin/exdel core/vipaquete.
x-yuri
12

lessno se puede enseñar a resaltar elementos de sintaxis, pero Vim se puede usar como un buscapersonas, es decir, un reemplazo para less. Hay complementos más avanzados, pero el script básico en realidad se envía con Vim ( $VIMRUNTIME/macros/less.sh). Para obtener la información completa, consulte Uso de vim como un localizador de resaltado de sintaxis en el Wiki de consejos de Vim.

Ingo Karkat
fuente
2
Estoy sorprendido a la gente ni siquiera se molesta en Google antes de publicar las respuestas incorrectas ...
not2qubit
1
@ user1147688: Si lees cuidadosamente la respuesta de Felix, la fuente destacada de GNU es un programa externo, y la integración con menos es muy flexible. No es lesseso lo que resalta; pero Vim tiene esta capacidad incorporada.
Ingo Karkat
Para la pregunta "¿Cómo aplico los colores de resaltado de sintaxis de acuerdo con los colores vim por menos comando?", La respuesta "Al usar resaltado de origen" parece una respuesta más correcta que "Al usar vim".
Zano
1
+1 pero estoy seguro de lo que intentan decir estos comentarios: no puedo decir si son positivos o negativos ("... google antes de publicar respuestas incorrectas", "instalar xyz es más correcto que simplemente usar empuje"?). Esta respuesta es claramente la "respuesta más correcta". Básicamente, el OP no sabía que esta característica de vim existía, y esta respuesta le permite al OP saber que existe. Navaja de Occam ftw. La respuesta solo podría mejorarse mostrando un ejemplo, por ejemplo,$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael
12

Tiendo a estar en desacuerdo con Ingo, less se me puede enseñar a resaltar la sintaxis. Mira esta respuesta en SuperUser. Básicamente, debe instalar el resaltado de fuente de GNU (disponible en todos los repositorios de paquetes de distribución principales) y luego agregar lo siguiente a su .bashrc( .bash_profileo lo que sea):

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=" -R "

Sin embargo, tenga en cuenta que source-highlightno es tan poderoso como vimel resaltador. Usa lo que más te convenga.

Felix
fuente