Может ли nano делать подсветку синтаксиса как gedit и vim? Как я могу включить это? Мне нужно как минимум подсветка синтаксиса bash и python.
Может ли nano делать подсветку синтаксиса как gedit и vim? Как я могу включить это? Мне нужно как минимум подсветка синтаксиса bash и python.
Ответы:
Нано-редактор обеспечивает подсветку синтаксиса для нескольких языков и сценариев самостоятельно. Проверять, выписываться/usr/share/nano/
nits@nits-excalibur:~$ ls /usr/share/nano/
asm.nanorc fortran.nanorc man.nanorc ocaml.nanorc ruby.nanorc
awk.nanorc gentoo.nanorc mgp.nanorc patch.nanorc sh.nanorc
c.nanorc groff.nanorc mutt.nanorc perl.nanorc tcl.nanorc
cmake.nanorc html.nanorc nano-menu.xpm php.nanorc tex.nanorc
css.nanorc java.nanorc nanorc.nanorc pov.nanorc xml.nanorc
debian.nanorc makefile.nanorc objc.nanorc python.nanorc
Свяжите их с файлом нано-конфигурации вашего пользователя, ~/.nanorc
имеющим что-то похожее на эту строку:
nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc
Теперь подсветка синтаксиса включена в nano для любого файла, который вы связали (вы также можете связать несколько файлов)
Примечание. Иногда вы можете получить сообщение segmentation fault
после редактирования ~/.nanorc
файла. В случае возникновения такой ошибки помогает сброс переменной среды LANG . Вы можете сбросить его с unset LANG
помощью терминала. (Решение получено отсюда )
Есть и другие решения, если вас не устраивает подсветка bash. Один пример такого можно найти здесь
Вы также можете записать include /usr/share/nano/*
в файл ~ / .nanorc, чтобы все языки были выделены, если ваша нано версия поддерживает это.
/etc/nanorc
- глобальные настройки перезаписываются ~/.nanorc
? Как мне отключить .nanorc
?
~/.nanorc
файла.
include
строками не включают подсветку синтаксиса, хотя у меня нет .nanorc
?
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc
добавьте их все в ваш файл .nanorc или создайте его, если он не существует.
include /usr/share/nano/*
не работает
Да, вы можете, однако определения синтаксиса по умолчанию довольно скудны и неполны. Я поддерживать более точный набор определений здесь , для тех , кто считает их полезными.
Чтобы установить, запустите:
git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install
Добавьте эти строки в ~ / .nanorc
include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc
Укажите цвета, для которых вы хотите настроить цвет, и вам нужно будет настроить эти цвета по своему вкусу. Описание ALL.nanorc
функций для всех еще не классифицированных файлов. Это инструменты, которые вам нужны для начала, а не конечный полированный продукт.
Я использовал эту команду для быстрого включения всех доступных языков.
find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc
Как уже упоминалось в других ответах, /usr/share/nano/
содержит определения для разных языков.
$ ls /usr/share/nano
asm.nanorc fortran.nanorc man-html ocaml.nanorc ruby.nanorc
awk.nanorc gentoo.nanorc man.nanorc patch.nanorc sh.nanorc
cmake.nanorc groff.nanorc mgp.nanorc perl.nanorc tcl.nanorc
c.nanorc html.nanorc mutt.nanorc php.nanorc tex.nanorc
css.nanorc java.nanorc nanorc.nanorc pov.nanorc xml.nanorc
debian.nanorc makefile.nanorc objc.nanorc python.nanorc
Также упомянуто, чтобы включить подсветку для языка, вы добавляете include
и путь к определению языка, который вы хотите включить в свой ~/.nanorc
файл. Так, например, чтобы включить C / C ++, вы бы добавили эту строку.
include /usr/share/nano/c.nanorc
Команда find
ищет файлы или каталоги в указанном каталоге.
-iname
Флаг указывает ему только искать файлы с именем , которое заканчивается .nanorc
.-exec
флагах определяют команду для выполнения на каждом найденный файл.{}
Заменяется на имя файла.\;
используется для обозначения конца команды, которую необходимо выполнить find
команде.>> ~/.nanorc
приводит к тому, что вывод будет добавлен в ваш ~/.nanorc
файл.Это должно включать все плагины подсветки синтаксиса, включенные по умолчанию, и все, что вы добавляете в / usr / share / nano:
find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc
Или отредактируйте / etc / nanorc и посмотрите, можете ли вы раскомментировать включенные файлы.
Это работает, если у вас есть версия nano, которая отказывается принимать подстановочные знаки в файле .nanorc.
Просто запускайте эту строку каждый раз, когда добавляете дополнительную конфигурацию цвета .nanorc.
У меня есть некоторые нано-подсветка синтаксиса на моем github .
Вот примеры скриншотов в реальном времени для html и php:
а также
Вы можете использовать это, чтобы включить все: (добавить это в файл ~ / nanorc)
include "/usr/share/nano/*.nanorc"
Удачного кодирования!
wget -r -nH --cut-dirs=3 --no-parent --reject="index.html*" https://nanosyntax.googlecode.com/svn/trunk/syntax-nanorc/ -P ~/.nano-syntax
for i in `ls --color=never -1 ~/.nano-syntax/*.nanorc` ; do echo "include $i" >> ~/.nanorc ; done
Наиболее полный и современный синтаксис хайлайтеров для нано поддерживается здесь .
Чтобы установить все маркеры для вашего пользователя, просто запустите:
cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
git clone
. Содержимое /tmp
папки будет удаляться при каждом запуске системы, и поэтому вы никогда не сможете запустить git pull
.
js
нет bash
или shell-script
я разместил ссылку за словом here
. В чем проблема?
make install
все синтаксические файлы копируются в безопасное место , где они принадлежат: ~/.nano/syntax
.
Для тех, у кого возникли проблемы после выполнения приведенных выше инструкций, также проверьте наличие дублирующих определений . Это отключит подсветку всех синтаксисов для всех файлов . Я столкнулся с этим после добавления nanorc.nanorc
файла и не понимая, что у меня ~/.nanorc
уже был идентичный раздел, то есть:
## Here is an example for nanorc files.
##
syntax "nanorc" "\.?nanorc$"
## Possible errors and parameters
icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
## Keywords
icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|$
icolor green "^[[:space:]]*(set|unset|include|syntax)\>"
(...)
Я нашел подсветку синтаксиса для JS здесь .
Я добавил его в свой файл пользователя на ~/.nanorc
Однако, чтобы получить файл, в который я мог бы добавить, мне сначала нужно было скопировать из /usr/share/nano/nanorc.nanorc
локальной папки как ~/.nanorc
.
Я случайно отключил подсветку с помощью сочетания клавиш Alt+ Y. Его можно включить снова с помощью того же сочетания клавиш.
Я знаю, что это старая тема, но, может, мое решение поможет
отредактируйте файл в / etc / nanorc
Из строки 243 вы можете найти много включаемых файлов. Просто раскомментируйте те, которые вам нужны, сохраните и сделайте.
## Nanorc files
include "/usr/share/nano/nanorc.nanorc"
## C/C++
include "/usr/share/nano/c.nanorc"
## Makefiles
include "/usr/share/nano/makefile.nanorc"
## Cascading Style Sheets
include "/usr/share/nano/css.nanorc"
## Debian files
include "/usr/share/nano/debian.nanorc"
## Gentoo files
# include "/usr/share/nano/gentoo.nanorc"
Я не уверен, что если вы обновите nano, эти изменения исчезнут.
Я только что сделал этот скрипт, чтобы добавить цвета к nano: Но, конечно, у вас должны быть цветовые коды в / usr / share / nano, чтобы это работало. Если есть ошибки: просто отредактируйте файл ~ / .nanorc вручную и удалите строки, которые дают ошибки.
#!/bin/bash
for i in `ls /usr/share/nano`
do
echo "include /usr/share/nano/$i" >> ~/.nanorc
done