Вопрос: Как выделить синтаксис через Less


есть ли способ синтаксиса выделить файл, который я вижу в Less?

на самом деле я использую эту команду, чтобы открыть xml-файл (а иногда и ряд из них)

less htmleditors/htmleditors_config.xml

или

less [multiple files]

Я хотел бы остаться в Менеджере (лучше узнать эту программу и использовать свои знания: n и: p для следующей / предыдущей навигации)

Но он также хочет, чтобы какая-то базовая подсветка синтаксиса - по крайней мере, показывайте комментарии по-разному. Знаете ли вы, как это сделать?


118
2017-11-17 10:20


Источник




Ответы:


Вы можете использовать Исходный источник GNU, как показано Вот:

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

Начиная с Debian Stretch и Fedora 25, имена пакетов и пути к сценариям различаются. Debian:

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

и 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



При запуске я получаю следующее сообщение об ошибке less ~/.zshrc, Ошибка: src-hilite-lesspipe.sh: line 9: source-highlight: command not found, Я запускаю это на MacOSX. - JJD
@JJD Вы установили источник-подсветку? - Max Nanasy
OSX: brew install source-highlight; export LESSOPEN="| /usr/local/bin/src-hilite-lesspipe.sh %s", Обратите внимание на изменение пути. - Gregg Lind
В Debian: sudo apt-get install source-highlight, export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s", export LESS=' -R ' - Morgan Courbet
Небольшое предостережение: источник-подсветка в настоящее время не поддерживает уценку. - dhulihan


Лучший из обоих предыдущих ответов: вы можете вызывать системный редактор по умолчанию из меньшего числа, нажав v,


84
2017-08-24 17:14



Вау! Это удивительно полезно! - dancek
Проклятия, которые открыли Nano на моей коробке Ubuntu! - jamesc
Затем установите $ EDITOR или $ VISUAL в vim (или emacs, или gedit, или joe, или ed, или mined, или ...). - Daniel H
@jamesc FYI, вы можете включить подсветку синтаксиса в Nano, Вот я показываю. - Captain Man
@CaptainMan Nope nope nope! Я изменяю значение по умолчанию обратно в vim, как сказал Даниэль Х! : D - jamesc


pygmentize somefile.ex | less -R

или

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

Pygmentize входит как часть Пигменты Python синтаксис highliter,


30
2017-08-24 18:25



pygmentize также работает с LESSOPEN упомянутые в других ответах здесь. - Nathan
Получить pygmentize, вам нужен Python, а затем вы можете установить pygmentize с pip install pygments, - wkschwartz
Получить less использовать pygmentize для подсветки синтаксиса: which pygmentize 2> /dev/null >&2 && export LESSOPEN="| pygmentize -g -f terminal256 %s", -g чтобы он работал с трубами (less <(diff -u file1 files)). Он доступен в community/pygmentize пакет для arch linux, И в python-pygments для debian, - x-yuri
Мне нравится вывод pygmentize, но обнаружил, что он слишком медленный. Я придумал этот ответ который является более быстрым и все еще 256-цветным. - Tom Hale


Я думаю, что вы должны использовать текстовый редактор. Мне нравится сам вим. Это даст вам много энергии при просмотре файлов, а затем, когда вы захотите их отредактировать, вы уже знаете основы.

Вот некоторые из преимуществ использования текстового редактора (в частности, vim):

  • подсветку синтаксиса
  • мощные команды перемещения
  • найти
  • перейти к определенному местоположению в файле (называемый отметкой)
  • folding (полезно, когда вы просто хотите видеть, как ступни функции)

Чтобы открыть файл в режиме readonly, используйте это:

vim -R <file name>

Вот основное руководство по навигации:

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

Вот ссылка для получения дополнительной информации:

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

Просто повторить, если вы будете использовать unix vim, это очень важно. Я слышал, что обучение vim похоже на обучение. Это следующий наиболее полезный инструмент, который вы можете изучить для программирования.

(Чтобы избежать войн редактора, вы также можете посмотреть emacs или другой редактор, однако я лично предпочитают vim)


15
2018-03-01 22:18



Я второй это. Vim запускается так же быстро, как и меньше, и многие сочетания клавиш (например, поиск, следующая страница, предыдущая страница) идентичны. - Jeremy W. Sherman
Просто FYI, на множестве систем, view является псевдонимом для vim -R, - Andrew Ferrier


Как говорили другие, вы можете использовать силу vim. Но, что важно, вы можете сделать это, не узнав, как использовать vi / vim.

Vim поставляется с less.vim скрипт, который работает очень хорошо, как замена на меньшее, с подсветкой полноцветного синтаксиса. Оно использует less keybindings (просто нажмите «q», чтобы выйти).

У него было несколько проблем, поэтому я улучшил его. У меня скриншот на http://huyz.us/2011/a-less-like-pager-with-color-syntax-highlighting/


12
2017-07-04 05:35



Потрясающие! Но поскольку я не мог сразу найти скрипт, я хотел бы поделиться командой для его поиска: find /usr/share/vim -name 'less.sh' который взят из этого суждения: gist.github.com/chauncey-garrett/9773770 - yoshi
Добавляя комментарий @ yoshi, чтобы быстро добавить vimless (согласно номенклатуре vimdiff), делать: ln -s $(find /usr/share/vim -name 'less.sh') /usr/local/bin/vimless - waldyrious
Ссылка 404! - acgtyrant


Я также искал это и нашел другое решение с помощью Vim: http://ubuntu-tutorials.com/2008/07/14/use-vim-as-a-syntax-highlighting-pager/

Сообщение довольно старое, так что теперь на более поздних дистрибутивах vim 7.2 отправляется, а .bashrc будет читать: alias vless = 'vim -u /usr/share/vim/vim72/macros/less.vim'


9
2018-02-10 13:43



MacVim поставляется со сценарием оболочки, который вы можете использовать напрямую, в: /Applications/MacVim.app/Contents/Resources/vim/runtime/macros/less.sh - Nick
Эта функция документирована в Vim :help less - joeytwiddle


Я рад объявить новый пакет, e2ansi, который обеспечивает поддержка подсветки синтаксиса для пейджеров, таких как more а также less,

В пакете используется мать всех текстовых редакторов, Emacs, чтобы выполнить фактическую подсветку синтаксиса. В качестве дополнительного бонуса все остальные конверсии, обычно выполняемые Emacs - например, разжатие файлов - также выполняется.

пример

Ниже приведен результат просмотра файла с использованием less а также e2ansi:

Example

конфигурация

Пакет предоставляет инструмент командной строки e2ansi-cat который начинается Emacs в пакетном режиме, открывает файлы, синтаксис выделяет их и визуализирует результат с использованием ANSI-последовательностей.

Вы можете интегрировать это в less задав следующие переменные например, (местоположение вашего файла инициализации может отличаться):

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

В приведенной выше конфигурации, less восстанавливает исходный терминал содержимого окна, тогда как more просто выводить новый контент после незамедлительный.

Примечание. Если вы используете старую версию less, он может не поддерживать || или - синтаксис, и в этом случае вам может потребоваться просто LESSOPEN=|/usr/local/emacs ...,

С помощью less в трубах

Символ «-» в LESSOPEN указывает, что входной фильтр должен также можно использовать, когда текст трубопровода less, В этом случае Emacs может только полагайтесь только на текст (а не на имя файла). К счастью, Emacs обеспечивает систему для этого. Кроме того, предоставленный файл e2ansi-magic.el устанавливает дополнительные типы файлов. Например:

Pipe example

Зачем использовать Emacs?

  • Emacs поддерживает практически все языки программирования и структурированные текстовые форматы. В большинстве случаев подсветка синтаксиса поддержка отличная.
  • Вы можете легко добавить поддержку для большего количества языков и форматов или изменить существующих пакетов в соответствии с вашими потребностями.
  • Emacs поддерживает цветные темы. Когда используешь e2ansi, цвета в тема сохраняется при просмотре файла в less, Вы можете выбрать подходящую цветную тему из нескольких источников или создавать свои собственные.
  • Если вы используете Emacs в качестве вашего редактора, вы получите то же самое выделение в редакторе, как вы получаете при просмотре файла, используя less (минус ограничения в формате последовательности ANSI и терминале окно).
  • less воспользуются функциями Emacs, которые выполняют автоматическую преобразование, например, распаковывание файлов. Фактически, вы можете научить Emacs выполняет любое преобразование, например, автоматически конвертирует бинарный файл в удобочитаемую форму с использованием внешнего инструмента.
  • Вы можете просматривать файлы, расположенные на других машинах, с помощью синтаксиса Emacs для удаленного доступа, например /USER@HOST:FILENAME,

Полезные ссылки

  • e2ansi распространяется на Melpa и может быть установлен с использованием стандартная система пакетов Emacs
  • e2ansi размещен на GitHub
  • e2ansi на странице Вики-деятельность Emacs
  • Дом less,

Примечания к операционной системе

  • В MS Windows консоль не поддерживает ANSI последовательно. К счастью, less приложение может их рендерить. я я не знаю о современном бинарном распределении less для MS Windows и предоставленные файлы сборки трудно использовать. К счастью, его легко построить less с помощью CMake, видеть этот текст для Детали.

  • OS X распространяет древнюю версию less, К счастью, это легко построить современную версию непосредственно из источника.


7
2018-02-04 19:10



Для OS X я бы рекомендовал использовать диспетчер пакетов заваривать [brew.sh/] с обманывать [github.com/Homebrew/homebrew-dupes] для установки современных версий таких вещей, как less, - drevicko
«powered by emacs» - запуск всей виртуальной машины только для просмотра файла? ;-) и +1 - Alois Mahdal


Если у вас есть Исходный источник GNU вы можете использовать следующую команду, чтобы выделить синтаксис одного файла:

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

6
2018-04-07 07:52



Можно src-hilite-lesspipe.sh получать вход через трубу? - waldyrious


source-highlight имеет .sh скрипт, расположенный в /usr/share/source-highlight/*.sh, Я создал символическую ссылку на него с именем hcat в /usr/bin,

Он показывает выделенный вывод в терминале (консоли) - hcat выделен cat.

Как:

[me@this]<bash><~> 43 
21:23 Fri Apr 19 > sudo apt-get install source-highlight

[me@this]<bash><~> 28 
21:03 Fri Apr 19 > ll /usr/share/source-highlight/*.sh
-rwxr-xr-x 1 root root 432 May  1  2012 /usr/share/source-highlight/src-hilite-lesspipe.sh*

[me@this]<bash><~> 29 
21:04 Fri Apr 19 > sudo su
root@this:/home/me# cd /usr/bin/
root@this:/usr/bin# ln -s /usr/share/source-highlight/src-hilite-lesspipe.sh hcat

[me@this]<bash><~> 36 
21:07 Fri Apr 19 > hcat test.xml

2
2018-04-19 18:25