меньше подсветки команд и синтаксиса

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.

not2qubit
источник
Псевдоним «менее» не работает для меня. Запуск Bash на OSX. Вздох.
Скотт Биггс
Это совершенно другая проблема, скорее всего из-за того, что OSX использует разные параметры оболочки и среды, которые могут по-разному влиять на интерпретацию одинарных и двойных кавычек. Вы можете проверить и установить их с помощью shopt -pи set.
not2qubit
1
Это работало для меня на OSX: сначала я установил с:, brew install source-highlightзатем я добавил псевдоним:alias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
mhvelplund
39

less не поддерживает подсветку синтаксиса.

vimКак и у всех viклонов, есть режим только для чтения, viewкоторый можно использовать для просмотра файлов. он поддерживает все функции vim, включая подсветку синтаксиса.

например

view filename.py

Основное различие между viewи viзаключается в том, что представление не «блокирует» просматриваемый файл, создавая файл .swp.

саз
источник
если вы view commandradare package
имеете в
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
12

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

Инго Каркат
источник
2
Я удивлен, что люди даже не связываются с Google, прежде чем публиковать неправильные ответы ...
not2qubit
1
@ user1147688: Если вы внимательно прочитаете ответ Феликса, выделение источника GNU - это внешняя программа, и интеграция с меньшими затратами очень слабая. Это не lessто, что делает подсветку; но у Vim действительно есть эта возможность.
Инго Каркат
На вопрос «Как применить цвета подсветки синтаксиса в соответствии с цветами vim для команды less?» Ответ «Используя source-highlight» выглядит более правильным, чем «Используя vim».
Зано
1
+1, но я уверен, что эти комментарии пытаются сказать - не могу сказать, являются ли они даже положительными или отрицательными («... Google, прежде чем отправлять неправильные ответы»? »,« Установка xyz более правильна, чем просто использование » ВИМ "?). Этот ответ явно является «наиболее правильным ответом». По сути, OP не знал, что эта особенность vim существует, и этот ответ дает OP знать, что она существует. Бритва Оккама Ответ может быть улучшен только путем показа примера, например,$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
Майкл
12

Я склонен не соглашаться с Инго, less можно научить выделять синтаксис. Проверьте этот ответ на SuperUser. По сути, вы должны установить GNU source-highlight (доступно во всех основных дистрибутивах пакетов дистрибутивов), а затем добавить следующее .bashrc( .bash_profileили что у вас есть):

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

Тем не менее, обратите внимание, что source-highlightэто не так мощно, как vimподсветка. Используйте то, что подходит вам больше всего.

Феликс
источник