nanoで構文の強調表示を有効にするにはどうすればよいですか?


184

nanoはgeditやvimなどの構文強調表示を実行できますか?どうすれば有効にできますか?少なくともbashとpythonの構文のハイライトが必要です。


1
gitリポジトリの構文ファイルに感謝します。今、すべてのサーバーでこれを使用しています...良い仕事を続けてください!!!

1
@TheGeneコメントと回答に感謝します。レポは私にではなく、質問をしている彼にクレジットされています。
Oxwivi

回答:


175

nanoエディターは、いくつかの言語とスクリプトに対して構文強調表示を提供します。チェックアウト/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次の行に似たものを使用して、ユーザーのnano設定ファイルにリンクします。

nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

これで、nanoではリンクしたファイルに対して構文の強調表示が有効になります(複数のファイルをリンクすることもできます)

構文強調表示のスクリーンショット

注:ファイルsegmentation faultを編集した後にが表示される場合があり~/.nanorcます。このようなエラーが発生した場合、LANG環境変数を設定解除すると 役立ちます。unset LANGターミナルで設定を解除できます。(ここから得られる解決策)

bashの強調表示に満足できない場合は、他の解決策もあります。そのような例はここにあります

include /usr/share/nano/*〜/ .nanorcファイルに書き込み、nanoバージョンがサポートしている場合はすべての言語を強調表示することもできます。


1
これらの行はコメント解除されています/etc/nanorc-グローバル設定は上書きされてい~/.nanorcますか?無効にするにはどうすればよい.nanorcですか?
オックスウィビ

13
ああ、私は~/.nanorcファイルすら持っていません。
Oxwivi

1
待って、待って、どうしてグローバル設定がすべてのinclude行で構文ハイライトを有効にしていないのに、.nanorcどうして?
オックスウィビ

9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcそれらをすべて.nanorcファイルに追加するか、存在しない場合は作成します。
トムポーター

9
include /usr/share/nano/*は動作していません
ジャレックヤクボウスキ

74

はい、できますが、デフォルトの構文定義はかなり貧弱で不完全です。ここで、有用だと思う人のために、より正確な定義のセットを維持しています。

インストールするには、次を実行します。

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すべて、まだ分類されていないファイルのための機能について説明します。これらは、最終的な洗練された製品ではなく、開始するために必要なツールです。


6
これらのすばらしい構文定義をGitHubに保管していただきありがとうございます。
ルーベンスマリウッゾ

3
私の* .jsファイルは機能しませんでした... FAQgithub.com/nanorc/…に従って、他の構文インクルードを削除するために/ etc / nanorcを編集しました。♥ナノ♥nanorc
カールトン

5
Mac OSXに構文定義をインストールしました。私の端末の黒の背景に失わpythonでオープンブラケットの黒い色である私が注意したい一つだけの事、あります
トム・バズビーは、

5
実際には問題があり、色付きのテキストの一部が黒です!端末の背景が黒の場合、これらの単語は見えません!
デュークビン14


52

このコマンドを使用して、使用可能なすべての言語をすばやく有効にしました。

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ファイルに追加されます。

素晴らしいヒントと説明、たくさんの人に感謝します!;)
daveoncode

ありがとう、そして、あなたはinameフラグを必要とするようには見えません。以下は/usr/share/nano/*.nanorc
Milind

どうもありがとう!
VIX

7

これには、デフォルトで含まれるすべての構文強調プラグインと、/ usr / share / nanoに追加したものが含まれます。

find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc

または、/ etc / nanorcを編集して、インクルードのコメントを解除できるかどうかを確認します。

これは、.nanorcファイルでワイルドカードを受け入れないnanoのバージョンがある場合に機能します。

追加の.nanorcカラー設定を追加するたびに、この行を実行するだけです。



2

これを使用してすべてを含めることができます:(これを〜/ nanorcファイルに追加します)

include "/usr/share/nano/*.nanorc"

ハッピーコーディング!


1
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

22
なぜこれが新しいユーザーにとって役立つ答えなのかを説明できれば助かります。コマンドは何をしていますか?何が変わりますか?コマンドラインを実行するようにランダムに提案することは役に立ちません。
ケビンボーウェン

1

nanoの最も完全で最新の構文ハイライターは、ここで管理さています

ユーザーのすべての蛍光ペンをインストールするには、次を実行します。

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フォルダーのコンテンツはシステムが起動するたびに削除されるため、.exeを実行することはできませんgit pull
AB

言語タグが間違っています。jsではないbashshell-scriptと私は言葉の背後にあるリンクを配置していますhere。問題はどこにありますか?
AB

1
@AB make installすべての構文ファイルがそれらが属する安全な場所にコピーされるため、そのフォルダがなくなっても問題ありません~/.nano/syntax
パブロA

1

上記の手順を実行しても問題が発生する場合は、定義重複していないかどうかも確認してください。これらは、すべてのファイルのすべての構文強調表示を無効にします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)\>"
(...)

0

ここでjsの構文の強調表示を見つけまし

私のユーザーファイルにそれを追加しました ~/.nanorc

ただし、追加できるファイルを取得するには、最初にから/usr/share/nano/nanorc.nanorcローカルフォルダにコピーする必要がありました~/.nanorc


0

キーボードショートカットAlt+ を使用して、誤って強調表示を無効にしましたY。同じキーボードショートカットで再びオンにできます。


0

私はそれが古いスレッドであることを知っていますが、私の解決策が役立つかもしれません

/ 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を更新しても、これらの変更が消えるかどうかはわかりません。


-1

nanoに色を追加するためにこのスクリプトを作成しました。しかし、もちろん、これが機能するためには/ usr / share / nanoに色コードが必要です。エラーがある場合:〜/ .nanorcファイルを手動で編集し、エラーが発生した行を削除します。

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.