meno evidenziazione di comandi e sintassi


44

Ho bisogno di usare la less commandcon l'evidenziazione della sintassi del comando vim per python, C, bashe altre lingue.

Come posso applicare i colori di evidenziazione della sintassi in base ai vimcolori per less command?

Risposte:


36

L'evidenziazione della sintassi di lessfunziona perfettamente sulla maggior parte dei sistemi * nix.

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

In /usr/bin/src-hilite-lesspipe.shalternativa utilizzare distribuzioni basate su Fedora / RedHat .

Anche su Cygwin è possibile farlo con la piccola modifica del percorso dello script della shell e l'installazione con apt-cyginvece di apt.

Tuttavia, l'utilizzo di questo rallenta drasticamente la navigazione di file di grandi dimensioni. Suggerisco di utilizzare aliasin modo tale da implementare l' LESSOPENesportazione sopra solo quando necessario, in questo modo:

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

dove la -Mbandiera è conveniente per mostrare anche il nome del file e il numero di riga.

Ricorda anche di copiare lo script nel tuo percorso bin:

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

AGGIORNAMENTO: 24-07-2019

Apparentemente, su installazioni Cygwin più recenti, hai i seguenti file nel tuo percorso:

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

Così ora è anche necessario eseguire il source-highlight-settings.exeche aggiungerà il file di configurazione:
$HOME/.source-highlight/source-highlight.conf.


L'alias 'lessh' non funziona per me. Esecuzione di bash su osx. Sospiro.
Scott Biggs,

Questa è una questione completamente diversa, molto probabilmente a causa dell'OSX che utilizza diverse opzioni di shell e ambiente, che possono influire sull'interpretazione delle virgolette singole e doppie, in modo diverso. Puoi controllarli e impostarli con shopt -pe set.
not2qubit

1
Questo ha funzionato per me su OSX: prima ho installato con brew install source-highlightalias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
:,

39

less non supporta l'evidenziazione della sintassi.

vim, come tutti i vicloni ha una modalità di sola lettura chiamata viewche puoi usare solo per visualizzare i file. supporta tutte le funzionalità di vim inclusa l'evidenziazione della sintassi.

per esempio

view filename.py

la differenza principale tra viewe viè che la vista non "blocca" il file che stai visualizzando creando un file .swp.


se i tuoi view commandmezzi radare packagenon sono di sola lettura
PersianGulf,

4
Hmm, il mio viewcomando non sembra supportare l'evidenziazione della sintassi. Ci ho provato :syntax enablee :syntax on, ma ci riesco sempre syntax: Not an editor command. Il mio vimsupporto evidenzia, però.
Felix,

@felix - ne hai un altro visimile nvio elvisinstallato? controlla il tuo /usr/bin/view- sul mio sistema debian, è un collegamento simbolico al /etc/alternatives/viewquale è, a sua volta, un collegamento simbolico a /usr/bin/vim.basic.
Cas

1
Hmm, nel mio caso è un collegamento simbolico a /usr/bin/ex, che, curiosamente, è di proprietà del vipacchetto.
Felix,

2
Posso confermare quello che dice @Felix, su arch linux viewè un link simbolico a /usr/bin/exdi core/vipacchetto.
x-yuri,

12

lessnon può essere insegnato ad evidenziare gli elementi della sintassi, ma Vim può essere usato come un cercapersone, ovvero un sostituto di less. Esistono plugin più avanzati, ma lo script di base viene effettivamente fornito con Vim ( $VIMRUNTIME/macros/less.sh). Per le informazioni complete, vedere Uso di vim come cercapersone per l' evidenziazione della sintassi nel Wiki di Vim Tips.


2
Sono sorpreso che la gente non si preoccupi nemmeno di Google prima di pubblicare risposte sbagliate ...
not2qubit

1
@ user1147688: Se leggi attentamente la risposta di Felix, il punto saliente della sorgente GNU è un programma esterno e l'integrazione con less è molto lenta. Non è lessquesto l'evidenziazione; ma Vim ha davvero questa capacità integrata.
Ingo Karkat,

Per la domanda "Come posso applicare i colori di evidenziazione della sintassi in base ai colori di VIM per meno comandi?", La risposta "Utilizzando source-highlight" sembra una risposta più corretta di "Usando vim".
Zano,

1
+1 ma sono sicuro di cosa stanno cercando di dire questi commenti: non riesco a capire se sono persino positivi o negativi ("... google prima di pubblicare risposte errate"? ", L'installazione di xyz è più corretta del semplice utilizzo vim "?). Questa risposta è chiaramente la "risposta più corretta". Fondamentalmente l'OP non sapeva che questa funzionalità di vim esisteva, e questa risposta fa sapere all'OP che esiste. Il rasoio di Occam ftw. La risposta potrebbe essere migliorata solo mostrando un esempio, ad es.$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael

12

Tendo a non essere d'accordo con Ingo, less posso insegnare a evidenziare la sintassi. Dai un'occhiata a questa risposta su SuperUser. Fondamentalmente, devi installare il sorgente-highlight di GNU (disponibile in tutti i principali repository di pacchetti di distribuzione), quindi aggiungere quanto segue al tuo .bashrc(o .bash_profileo cosa hai):

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

Tuttavia, si noti che source-highlightnon è potente come viml'evidenziatore. Usa quello che preferisci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.