mise en évidence moins de commande et de syntaxe

44

Je dois utiliser la less commandavec la coloration syntaxique de la commande vim pour python, C, bashet d' autres langues.

Comment appliquer la coloration syntaxique en fonction des vimcouleurs less command?

Golfe Persique
la source

Réponses:

36

La mise en évidence syntaxique de less, fonctionne parfaitement sur la plupart des systèmes * nix.

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

Sur les distributions basées sur Fedora / RedHat, utilisez /usr/bin/src-hilite-lesspipe.shplutôt.

Même sur Cygwin, vous pouvez le faire avec l’ajustement mineur du chemin du script shell et l’installation avec apt-cygau lieu de apt.

Cependant, cela ralentit considérablement la navigation dans les fichiers volumineux. Je suggère d'utiliser aliasde manière à implémenter uniquement l' LESSOPENexportation ci-dessus en cas de besoin, comme ceci:

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

où le -Mdrapeau est pratique pour afficher également le nom du fichier et le numéro de la ligne.

Rappelez-vous également de copier le script dans votre chemin bin:

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

MISE À JOUR: 2019-07-24

Apparemment, sur les installations plus récentes de Cygwin, vous avez les fichiers suivants dans votre chemin:

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

Alors maintenant , vous devez également exécuter le source-highlight-settings.exequi ajoutera le fichier de configuration:
$HOME/.source-highlight/source-highlight.conf.

not2qubit
la source
L'alias 'lessh' ne fonctionne pas pour moi. Courir bash sur osx. Soupir.
Scott Biggs
Il s'agit d'un problème totalement différent, dû probablement à l'utilisation par OSX de différentes options de shell et d'environnement, ce qui peut affecter l'interprétation des guillemets simples et doubles de manière différente. Vous pouvez vérifier et régler ces avec shopt -pet set.
not2qubit
1
Cela a fonctionné pour moi sur OSX: j'ai d'abord installé avec brew install source-highlightalias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
:,
39

less ne supporte pas la coloration syntaxique.

vim, comme tous les viclones, a un mode en lecture seule appelé viewque vous pouvez utiliser pour afficher uniquement les fichiers. il supporte toutes les fonctionnalités de vim, y compris la coloration syntaxique.

par exemple

view filename.py

La principale différence entre viewet viest que la vue ne "verrouille" pas le fichier que vous consultez en créant un fichier .swp.

cas
la source
si vos view commandmoyens viennent de radare package, ce n'est pas seulement en lecture
PersianGulf
4
Hmm, ma viewcommande ne semble pas supporter la coloration syntaxique. J'ai essayé :syntax enableet :syntax on, mais j'ai toujours syntax: Not an editor command. Mes vimsupports soulignant, cependant.
Felix
@felix - en avez-vous un autre visimilaire nviou elvisinstallé? vérifiez votre /usr/bin/view- sur mon système Debian, c’est un lien symbolique vers /etc/alternatives/viewlequel correspond, à son tour, un lien symbolique vers /usr/bin/vim.basic.
cas
1
Hmm, dans mon cas, c'est un lien symbolique vers /usr/bin/ex, qui, curieusement, appartient au vipaquet.
Felix
2
Je peux confirmer ce que dit @Felix, sur arch linux viewest un lien symbolique /usr/bin/exdu core/vipaquet.
x-yuri
12

lessOn ne peut pas apprendre à mettre en évidence les éléments de syntaxe, mais Vim peut être utilisé comme un pageur, c’est-à-dire comme un substitut de less. Il existe des plugins plus avancés, mais le script de base est livré avec Vim ( $VIMRUNTIME/macros/less.sh). Pour obtenir des informations complètes, reportez-vous à la section Utilisation de vim en tant que pager de mise en surbrillance de la syntaxe sur le wiki Conseils de Vim.

Ingo Karkat
la source
2
Je suis surpris que les gens ne se
soucient
1
@ user1147688: Si vous lisez attentivement la réponse de Felix, GNU source-highlight est un programme externe, et l'intégration avec less est très lâche. Ce n'est pas lessque fait la mise en évidence; mais Vim a en effet cette capacité intégrée.
Ingo Karkat
Pour la question "Comment appliquer la coloration syntaxique en fonction des couleurs vim pour moins de commande?", La réponse "En utilisant source-surbrillance" semble être une réponse plus correcte que "En utilisant vim".
Zano
1
+1, mais je suis sûr que ces commentaires tentent de dire - je ne peux pas dire s'ils sont même positifs ou négatifs ("... google avant de poster de mauvaises réponses"?, "Installer xyz est plus correct que de simplement utiliser vim "?). Cette réponse est clairement la "réponse la plus correcte". Fondamentalement, le PO ne savait pas que cette fonctionnalité de vim existait, et cette réponse permet au PO de savoir qu’elle existe. Le rasoir d'Occam, ftw. La réponse ne pourrait être améliorée qu'en montrant un exemple, par exemple,$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael
12

J'ai tendance à être en désaccord avec Ingo, less on peut apprendre à mettre en évidence la syntaxe. Découvrez cette réponse sur SuperUser. En gros, vous devez installer la source en surbrillance de GNU (disponible dans tous les principaux dépôts de paquets de distribution), puis ajouter ce qui suit à votre .bashrc( .bash_profileou à ce que vous avez):

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

Cependant, notez que ce source-highlightn'est pas aussi puissant que vimle surligneur. Utilisez ce qui vous convient le mieux.

Félix
la source