Question Comment syntaxer surligner via Less


existe-t-il un moyen de mettre en évidence une syntaxe dans un fichier que je vois dans Less?

en fait j'utilise cette commande pour ouvrir un fichier xml (et parfois une série d'entre eux)

less htmleditors/htmleditors_config.xml

ou

less [multiple files]

Je voudrais rester dans Less (apprendre ce programme mieux et utiliser mes connaissances de: n et: p pour la navigation suivante / précédente)

Mais il faut aussi une sorte de mise en évidence de la syntaxe de base - au moins montrer les commentaires différemment. Connaissez-vous un moyen de le faire?


118
2017-11-17 10:20


origine




Réponses:


Vous pouvez utiliser Le point culminant de GNU, comme montré ici:

 export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
 export LESS=' -R '

Depuis Debian Stretch et Fedora 25, les noms de paquets et les chemins de script sont différents. Debian:

sudo apt install libsource-highlight-common source-highlight
dpkg -L libsource-highlight-common | grep lesspipe
# /usr/share/source-highlight/src-hilite-lesspipe.sh

et Fedora:

sudo dnf install source-highlight
rpm -ql source-highlight | grep lesspipe
# /usr/bin/source-highlight/src-hilite-lesspipe.sh

107
2017-11-17 10:35



Je récupère le message d'erreur suivant lorsque je cours less ~/.zshrc. Erreur: src-hilite-lesspipe.sh: line 9: source-highlight: command not found. Je lance ceci sur MacOSX. - JJD
@JJD Avez-vous installé source-highlight? - Max Nanasy
OSX: brew install source-highlight; export LESSOPEN="| /usr/local/bin/src-hilite-lesspipe.sh %s". Notez le changement de chemin. - Gregg Lind
Sur Debian: sudo apt-get install source-highlight, export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s", export LESS=' -R ' - Morgan Courbet
petite mise en garde: source-highlight ne prend actuellement pas en charge les démarques. - dhulihan


Le meilleur des deux réponses précédentes: vous pouvez appeler l'éditeur par défaut du système à partir de moins, en appuyant sur v.


84
2017-08-24 17:14



Hou la la! C'est incroyablement utile! - dancek
Des malédictions qui ont ouvert Nano sur ma boîte Ubuntu! - jamesc
Ensuite, définissez $ EDITOR ou $ VISUAL sur vim (ou emacs, ou gedit, joe, ou ed, ou mined, ou ...). - Daniel H
@jamesc FYI, vous pouvez activer la coloration syntaxique dans Nano, ici c'est comment. - Captain Man
@CaptainMan Nope Nope Nope! Je remplace le défaut par vim comme Daniel H l'a dit! :RÉ - jamesc


pygmentize somefile.ex | less -R

ou

function cless () {
    pygmentize -f terminal "$1" | less -R
}

Pygmentize fait partie de la Pygments Syntaxe de la syntaxe Python.


31
2017-08-24 18:25



pygmentize travaille également avec le LESSOPEN choses mentionnées dans d'autres réponses ici. - Nathan
Obtenir pygmentize, vous avez besoin de Python et vous pouvez ensuite installer pygmentize avec pip install pygments. - wkschwartz
Obtenir less utiliser pygmentize pour l'utilisation de la coloration syntaxique: which pygmentize 2> /dev/null >&2 && export LESSOPEN="| pygmentize -g -f terminal256 %s". -g pour le faire fonctionner avec des tuyaux (less <(diff -u file1 files)). Il est disponible dans community/pygmentize paquet pour arch linux, et en python-pygments pour debian. - x-yuri
J'aime la sortie de pygmentize, mais a trouvé que c'était trop lent. Je suis venu avec cette réponse ce qui est plus rapide et toujours 256 jolies couleurs. - Tom Hale


Je pense que vous devriez utiliser un éditeur de texte. J'aime moi-même vim. Cela vous donnera BEAUCOUP de puissance lors de la visualisation des fichiers et lorsque vous souhaitez les éditer, vous connaîtrez déjà les bases.

Voici quelques avantages de l’utilisation d’un éditeur de texte (en particulier vim):

  • mise en évidence de la syntaxe
  • commandes de mouvement puissantes
  • trouver
  • sauter à un endroit spécifique dans un fichier (appelé une marque)
  • pliage (utile lorsque vous voulez seulement voir les stubbs de fonctions)

Pour ouvrir votre fichier en mode lecture seule, utilisez ceci:

vim -R <file name>

Voici un guide de navigation de base:

j - move down one line
k - move up one line
h - left one char
l -right one char

ctrl-f - forward one page
ctrl-b - back one page

/<something> - search for something
n - next of whatever you searched for
N - next (search backwards) of whatever you searched for

:q - quit
:q! - quit without saving
:w - save

Voici un lien pour plus d'informations:

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

Pour résumer, si vous utilisez unix vim, c'est fondamental. J'ai entendu dire qu'apprendre vim, c'est comme apprendre à taper. C'est l'outil suivant le plus utile que vous pouvez apprendre pour la programmation.

(Juste pour éviter les guerres de l'éditeur, vous pouvez également regarder dans emacs ou un autre éditeur, mais je personnellement préférez vim)


15
2018-03-01 22:18



Je seconde ceci. Vim se lance aussi rapidement que moins, et la plupart des raccourcis clavier (par exemple, recherche, page suivante, page précédente) sont identiques. - Jeremy W. Sherman
Juste pour info, sur beaucoup de systèmes, view est un alias pour vim -R. - Andrew Ferrier


Comme d’autres l’ont dit, vous pouvez utiliser le pouvoir de vim. Mais surtout, vous pouvez le faire sans apprendre à utiliser vi / vim.

Vim vient avec un less.vim script qui fonctionne assez bien en remplacement de moins, avec la coloration de la syntaxe en couleur. Il utilise less raccourcis clavier (appuyez simplement sur «q» pour quitter).

Il y avait quelques problèmes, alors je l'ai amélioré. J'ai une capture d'écran à http://huyz.us/2011/a-less-like-pager-with-color-syntax-highlighting/


12
2017-07-04 05:35



Impressionnant! Mais comme je ne pouvais pas trouver le script tout de suite, je voudrais partager la commande pour le localiser: find /usr/share/vim -name 'less.sh' qui est tiré de cet aperçu: gist.github.com/chauncey-garrett/9773770 - yoshi
Ajouter au commentaire de @yoshi, pour ajouter rapidement un vimless commande (suivant la nomenclature de vimdiff), faire: ln -s $(find /usr/share/vim -name 'less.sh') /usr/local/bin/vimless - waldyrious
Le lien est 404! - acgtyrant


Je cherchais aussi ceci et j'ai trouvé une autre solution en utilisant Vim: http://ubuntu-tutorials.com/2008/07/14/use-vim-as-a-syntax-highlighting-pager/

Le post est assez ancien, alors maintenant, sur les distributions plus récentes vim 7.2 est livré et le .bashrc va lire: alias vless = 'vim -u /usr/share/vim/vim72/macros/less.vim'


9
2018-02-10 13:43



MacVim est livré avec un script shell que vous pouvez utiliser directement, situé dans: /Applications/MacVim.app/Contents/Resources/vim/runtime/macros/less.sh - Nick
Cette fonctionnalité est documentée dans Vim lui-même sous :help less - joeytwiddle


Je suis heureux d'annoncer un nouveau package, e2ansi, qui procure prise en charge de la syntaxe pour les pagers comme more et less.

Le paquet utilise la mère de tous les éditeurs de texte, Emacs, à effectuer la mise en évidence de la syntaxe réelle. En prime, tous les autres conversions normalement effectuées par Emacs - comme la décompression de fichiers - est également effectuée.

Exemple

Ce qui suit est le résultat de l'affichage d'un fichier en utilisant less et e2ansi:

Example

Configuration

Le package fournit un outil de ligne de commande e2ansi-cat ça commence Emacs en mode batch, ouvre les fichiers, la syntaxe les met en évidence et les rend le résultat en utilisant des séquences ANSI.

Vous pouvez l'intégrer dans less en définissant les variables suivantes à, par exemple (l'emplacement de votre fichier d'initialisation peut varier):

export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"

Dans la configuration ci-dessus, less restaure le terminal d'origine contenu de la fenêtre alors que more simplement sortir du nouveau contenu après le rapide.

Remarque: Si vous utilisez une ancienne version de less, il pourrait ne pas supporter le || ou la - la syntaxe, auquel cas vous devrez peut-être utiliser simplement LESSOPEN=|/usr/local/emacs ....

En utilisant less dans les tuyaux

Le caractère "-" dans LESSOPEN indique que le filtre d'entrée doit également être utilisé lorsque le texte passe dans less. Dans ce cas, Emacs peut ne compte que sur le texte lui-même (et non sur un nom de fichier). Heureusement, Emacs fournit un système pour cela. En outre, le fichier de fichier fourni e2ansi-magic.el configure des types de fichiers supplémentaires. Par exemple:

Pipe example

Pourquoi utiliser Emacs?

  • Emacs prend en charge pratiquement tous les langages de programmation et formats de texte structuré. Dans la plupart des cas, la coloration syntaxique le support est excellent.
  • Vous pouvez facilement ajouter un support pour plusieurs langues et formats, ou modifier forfaits existants pour répondre à vos besoins.
  • Emacs supporte les thèmes de couleurs. En utilisant e2ansi, les couleurs dans le le thème est préservé lors de la visualisation d'un fichier dans less. Vous pouvez choisir un thème de couleur approprié à partir d'un certain nombre de sources, ou créez le vôtre.
  • Si vous utilisez Emacs comme éditeur de votre choix, vous obtiendrez la même chose mettre en évidence dans l'éditeur que vous obtenez lors de la visualisation d'un fichier en utilisant less (moins les limitations du format de séquence ANSI et du terminal fenêtre).
  • less profitera des fonctionnalités d'Emacs qui effectuent automatiquement conversion, par exemple décompression de fichiers. En fait, vous pouvez enseigner Emacs pour effectuer tout type de conversion comme convertir automatiquement un fichier binaire à la forme lisible par l'homme en utilisant un outil externe.
  • Vous pouvez afficher les fichiers situés sur d'autres machines en utilisant la syntaxe d'Emacs pour l'accès à distance comme /USER@HOST:FILENAME.

Liens utiles

  • e2ansi est distribué sur Melpa et peut être installé en utilisant le système de paquet standard d'Emacs
  • e2ansi est hébergé sur GitHub
  • le e2ansi page sur le Emacs Wiki
  • La maison de less.

Notes sur le système d'exploitation

  • Sur MS Windows, la console ne prend pas en charge de manière native les séquences ANSI. Heureusement, le less l'application est capable de les rendre. je Je ne suis au courant d'aucune distribution binaire contemporaine de less pour MS Windows et les fichiers de construction fournis sont difficiles à utiliser. Heureusement, c'est facile à construire less en utilisant CMake, voir ce texte pour détails.

  • OS X distribue une ancienne version de less. Heureusement, c'est facile de construire une version moderne directement à partir de la source.


7
2018-02-04 19:10



Pour OS X, je vous recommande d’utiliser le gestionnaire de paquets brasser [brew.sh/] avec infuser dupes [github.com/Homebrew/homebrew-dupes] installer des versions à jour de choses comme less. - drevicko
"propulsé par emacs" - exécuter toute la VM juste pour regarder un fichier? ;-) et +1 - Alois Mahdal


Si tu as GNU Source-highlight installé, vous pouvez utiliser la commande suivante pour mettre en évidence la syntaxe d'un fichier unique:

$ src-hilite-lesspipe.sh yourfile.xml | less -R

6
2018-04-07 07:52



Pouvez src-hilite-lesspipe.sh recevoir une entrée via un tuyau aussi? - waldyrious