Может ли `cat` показывать файлы с использованием разметки кода в цветах?

Очень хорошая функция для настройки мультимонитора для просмотра одного файла и редактирования другого. Но некоторое время мы можем использовать конфигурацию одного окна. Использовать оба:

Выполнить (как описано пользователем2223633): sudo nautilus /usr/share/applications/ Пометить gedit и создать копию (ctrl + c, ctrl + v). Переименуйте копию в название, понятное для вас. Укажите новую копию gedit. Нажмите Alt + Enter или RightClick -> Свойства (как описано пользователем2223633). Замените команду на (как описано пользователем2223633): gedit -s %U Как можно скорее закройте окно Nautilus (открытое от root). Откройте окно Nautilus или используйте Desktop и укажите на любой текстовый файл Rightclick it и укажите Open With - Other program. Если вы видите как gedit, так и копию, конфигурация завершена. Если не нажать «Показать другую программу» и открыть файл с копией gedit. Повторите 9 и 10, открыв gedit не копией.

Теперь вы можете открыть файл, используя оба режима, используя Rightclick - Open With - Other program.

Протестировано Ubuntu 13.04 X64

1
задан 16 January 2014 в 02:51

7 ответов

Не из cat, но вы можете использовать что-то вроде источника highlite или supercat или выделить

Исходный источник. Эта программа, с учетом исходного файла, создает документ с подсветкой синтаксиса. Он также предоставляет библиотеку выделения C ++ (новая) (начиная с версии 3.0). Источник-подсветка динамически считывает спецификации языка оригинала, поэтому его можно легко расширить (без перекомпиляции источников) для обработки новых языков. Он также динамически считывает спецификации выходного формата и, следовательно, может быть легко расширен (без перекомпиляции источников) для обработки новых выходных форматов. Синтаксис этих спецификаций довольно прост (см. Руководство). Руководство по установке: см. Файл INSTALL для подробных инструкций по монтажу и установке; в любом случае, если вы привыкли составлять программное обеспечение Linux, поставляемое с источниками, вы можете просто следовать обычной процедуре, то есть разогнать файл, загруженный в каталог, а затем:
 cd <source code main directory>
 ./configure
 make
 make install

highlight

Это домашняя страница Supercat. Supercat - это программа, которая раскрашивает текст на основе соответствия регулярных выражений / строк / символов. Supercat поддерживает вывод html, а также стандартный текст ASCII. В отличие от некоторых программ окраски текста, которые существуют, Supercat не требует, чтобы вы были программистом для создания правил раскраски.

Эта программа, с учетом исходного файла, создает документ с подсветкой синтаксиса. Он также предоставляет библиотеку выделения C ++ (новый) (начиная с версии 3.0).

Ниже приведен пример страницы работы Supercat по установке / исходному файлу emerge.log Gentoo (tar.gz) Пример файла конфигурации
12] Supercat

#!/bin/bash#!/bin/bash
if [ ! -t 0 ];then
        file=/dev/stdin
elif [ -f $1 ];then
        file=$1
else
        echo "Usage: $0 code.c"
        echo "or e.g. head code.c|$0"
        exit 1
fi
pygmentize -f terminal -g $file

Если вы создали файл конфигурации supercat для стандартного типа файлов, пожалуйста, не стесняйтесь обращаться ко мне по адресу «bug-spc (at) nosredna (dot) net» для возможного включения в суперкарном распределении.

16
ответ дан 24 May 2018 в 12:58

Как из этого ответа, вы можете использовать пакеты python-pygments, чтобы выделить материал. Сначала выполните:

sudo apt-get install python-pygments python3-pygments

, затем:

pygmentize -g FILENAME

, затем нажмите go:

Вы также можете установить его как псевдоним, как и в ответе, который я связал, - в основном, запустите это:

echo "alias catc='pygmentize -g'" >> ~/.bash_aliases 
chmod +x ~/.bash_aliases

Закройте терминал, откройте его снова, и команда catc должна теперь работать - если это не так, убедитесь, что эти строки находятся в файле .bashrc и раскоментированы:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Другое дело было бы просто использовать nano:

nano testfile
10] enter image description here

12
ответ дан 24 May 2018 в 12:58

man view или man vim

Основное использование: view <filename>

Выход: :q<Return> (сначала добавьте <Esc>, если используете vim), или ZZ (верхний регистр z два раза).

Текстовый редактор программиста vim имеет все, что вам нужно, и, вероятно, уже является частью вашей системы.

vim имеет режим только для чтения, активированный с помощью view или vim -R. Если все, что вы хотите сделать, это просмотреть отмеченный файл, этого должно быть достаточно.

Прост в использовании, доступен для навигации, доступен везде. Не нужно путаться с установкой нового программного обеспечения или написанием сценариев bash.

5
ответ дан 24 May 2018 в 12:58
  • 1
    Я знаю. Дело в том, что сглаживание и закрытие VIM происходит не быстро. Я хочу мгновенно просмотреть файл, а затем продолжить в командной строке. Вот почему я нашел, что пигментирует такой хороший. Мгновенный результат, отсутствие выхода из программы или что-то еще .. :) – kramer65 16 January 2014 в 17:10
  • 2
    @ kramer65 ОК, конечно, это ваши предпочтения, но вам не нужно открывать " vim или view, вы просто предоставляете его с файлом: view file.py, поэтому нет разницы с cat. Конечно, вам нужно закрыть его, но на самом деле, :q<Return> или ZZ - непростые задачи. – a different ben 17 January 2014 в 07:46

cat не может производить подсветку синтаксиса исключительно. Тем не менее вы можете сделать это следующим образом, используя python-pygments. Сначала установите его с терминала как

sudo apt-get install python-pygments

Теперь скопируйте функцию ниже ~/.bashrc. Он даст вам то, что вы хотите, кроме того, оно сохранит свойства cat, в противном случае нет смысла использовать cat

catc(){
    cat "$@" > /tmp/.tmp
    pygmentize -g /tmp/.tmp
    rm /tmp/.tmp
}

Источник ~/.bashrc as,

. ~/.bashrc

Он выдаст цветной вывод,

catc <filename>

Он также будет конкатенировать с цветом

catc <file1> <file2> ... <filen>
3
ответ дан 24 May 2018 в 12:58
  • 1
    Есть ли способ включить прокрутку стрелок вверх и вниз при использовании pygmentize?, я открываю его, используя команду формы xterm -e "pygmentize -g <filename>", и считаю, что единственный способ прокрутки - использовать полосу прокрутки. Я попытался передать вывод на less, но это привело к выходу мусора. – Leo Simon 3 November 2016 в 18:58
  • 2
    да, вы можете использовать pygmentize меньше. Создайте функцию bash lessc следующим образом: lessc () { pygmentize -gf terminal "$1" | less -R } – souravc 3 November 2016 в 21:04

Можно проверить ccat.

Он добавляет подсветку синтаксиса к выходным файлам.

1
ответ дан 24 May 2018 в 12:58

Другие ответы объясняют, почему cat не в состоянии это сделать. Хотя вы можете сделать это с меньшим использованием lesspipe.sh.

0
ответ дан 24 May 2018 в 12:58

cat не расширяет цветовой код, но echo делает это, вот пример, который добавляет цветовые коды в строку в файле, а затем перенаправляет его на команду echo:

echo -e "$(sed -e 's/OK/\\033[0;32mOK\\033[0m/g' test_results.txt)"

1]

-1
ответ дан 24 May 2018 в 12:58
  • 1
    если файл 'tmp' содержит цветовые коды, то это также будет работать: echo -e " $ (cat tmp) " – serup 19 August 2016 в 13:43
  • 2
    @ Шелджон, нет, я думаю, вам, возможно, нужно уточнить, почему вы думаете, что – serup 21 August 2017 в 13:39
  • 3
    OP спрашивает о инструментах выделения кода, а не о цветах ascii. Ваш ответ не по теме, прочитайте другие ответы, чтобы узнать, почему. – Sheljohn 21 August 2017 в 16:27

Другие вопросы по тегам:

Похожие вопросы: