менше виділення команд та синтаксисів


44

Мені потрібно використовувати less commandз підсвічуванням синтаксису команди VIM для python, C, bashта інших мов.

Як застосувати кольори підсвічування синтаксису відповідно до vimкольорів less command?

Відповіді:


36

Підсвічування синтаксису less, добре працює в більшості * nix систем.

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

На базі Fedora / RedHat використовуються дистрибутиви /usr/bin/src-hilite-lesspipe.sh.

Навіть на Cygwin ви можете це зробити за допомогою незначного налаштування шляху скрипта оболонки та встановлення apt-cygзамість цього apt.

Однак використання цього способу різко уповільнює перегляд великих файлів. Я пропоную використовувати aliasтаким чином, щоб реалізувати LESSOPENекспорт вище лише у разі потреби, як-от так:

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

де -Mпрапор зручно також показувати назву файлу та номер рядка.

Також не забудьте скопіювати скрипт у свій шлях для сміття:

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

ОНОВЛЕННЯ: 2019-07-24

Мабуть, у останніх встановленнях Cygwin у вас на шляху є такі файли:

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

Отже , тепер ви також повинні виконати команду , source-highlight-settings.exeяка додасть конфігураційний файл:
$HOME/.source-highlight/source-highlight.conf.


Псевдонім "lessh" не працює для мене. Запуск баш на ОСХ. Зітхнути.
Скотт Біггс

Це зовсім інше питання, швидше за все, через те, що OSX використовує різні параметри оболонки та середовища, які можуть по-різному впливати на інтерпретацію одинарних та подвійних лапок. Ви можете перевірити та встановити їх за допомогою shopt -pта set.
not2qubit

1
Це працювало для мене на OSX: спочатку я встановив за допомогою:, brew install source-highlightпотім я додав псевдонім:alias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
mhvelplund

40

less не підтримує виділення синтаксису.

vim, як і всі viклони, має режим лише для читання, viewякий можна використовувати для простого перегляду файлів. він підтримує всі функції vim, включаючи виділення синтаксису.

напр

view filename.py

головна відмінність viewі viполягає в тому, що представлення не "блокує" файл, який ви переглядаєте, створюючи .swp файл.


якщо ваші view commandзасоби від radare package, це не тільки для читання
PersianGulf

4
Гм, здається, моя viewкоманда не підтримує виділення синтаксису. Я намагався :syntax enableі :syntax on, але завжди отримую syntax: Not an editor command. Мої vimпідтримують підсвічування, хоча.
Фелікс

@felix - у вас є інший viподібний nviабо elvisвстановлений? перевірте свою /usr/bin/view- у моїй системі debian, це симпосилання, до /etc/alternatives/viewякого, у свою чергу, є посилання на /usr/bin/vim.basic.
cas

1
Хм, в моєму випадку це символьне посилання на /usr/bin/ex, яким, що цікаво, належить viпакет.
Фелікс

2
Я можу підтвердити , що говорить @Felix, на arch linux viewце символічна посилання на /usr/bin/exз core/viпакета.
x-yuri

13

lessне можна навчити виділяти елементи синтаксису, але Vim може бути використаний як пейджер, тобто заміна less. Є більш вдосконалені плагіни, але базовий скрипт насправді постачається з Vim ( $VIMRUNTIME/macros/less.sh). Для отримання повної інформації дивіться розділ Використання vim як пейджер підкреслення синтаксису на Vim Tips Wiki.


2
Я здивований, що люди навіть не турбуються перед Google, перш ніж публікувати неправильні відповіді ...
not2qubit

1
@ user1147688: Якщо уважно прочитати відповідь Фелікса, підсвітка джерела GNU - це зовнішня програма, а інтеграція з меншою - дуже слабкою. Це не lessте, що робить виділення; але Vim справді має цю можливість вбудований.
Інго Каркат

На запитання "Як застосувати кольори підсвічування синтаксису відповідно до кольорів vim для меншої кількості команд?", Відповідь "Використовуючи підсвічування джерела" видається більш правильною відповіддю, що "За допомогою vim".
Зано

1
+1, але я впевнений, що намагаються сказати ці коментарі - не можу сказати, чи вони навіть позитивні чи негативні ("... google перед публікацією неправильних відповідей"? ", Встановити xyz правильніше, ніж просто використовувати vim "?). Ця відповідь, очевидно, "найправильніша відповідь". В основному ОП не знала, що ця функція vim існує, і ця відповідь дає ОП знати, що вона існує. Бритва Оккама ftw. Відповідь можна було покращити лише показавши приклад, наприклад,$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael

12

Я схильний не погоджуватися з Інго, less можна навчити виділяти синтаксис. Перевірте цю відповідь на SuperUser. По суті, ви повинні встановити джерело підсвітки GNU (доступне у всіх основних пакетах дистрибутивів дистрибутива), а потім додати наступне до свого .bashrc( .bash_profileабо того, що у вас є):

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

Однак зауважте, що source-highlightвін не такий потужний, як vim"хайлайтер". Використовуйте все, що вам підходить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.