GNU nanoエディタを便利に使う

2023-05-09 牧野研 技術輪読会

smallでfriendlyなテキストエディタ nano

GNUnanoはMacにもLinuxにも元から入っているテキストエディタ。ただしmacOS 12.3 Monterey以降、Macでnanoを打って起動するのはpicoなので、新しいのをhomebrewで入れる。


新しいバージョンを入れて使うのもよい:

## Macならhomebrewでインストール
brew install nano

## Linux(Ubuntu)ならaptでインストール
sudo apt install nano

基本的な使い方

ファイル名を指定して開く。ファイルが存在しない場合は新しく作られる。

nano sample.md
ControlX
編集画面から出る。内容を変更している場合は上書きするかどうか聞かれる。
ControlO
編集内容を反映。上書き保存のイメージ。
ControlK
選択範囲を切り取る。範囲を選択していない場合カーソルのある行が切り取られる。
ControlU
切り取った内容をカーソル位置に張り付ける。

nanoを便利に使う1: Configuration

~/.bash_profileみたいに、nanoも設定をファイルに書いておくことができる。

読み込まれる順番は、以下の通り。

  1. /etc/nanorc # システムのデフォルト
  2. ~/.nanorc # これが一番楽
  3. ~/.config/nano/nanorc # 遺伝研のnanoは古すぎてこれは読んでくれない


ホームに.nanorcを作ってみる:

cd  # homeディレクトリに移動
nano .nanorc  # .nanorcをnanoで編集

nanoを便利に使う1: Configuration

set <option>という書き方で設定をどんどん追加していく。

よく使う & 便利そうな設定を抜粋:

.nanorc
set tabsize 4     # Tabでインデントするときの幅をspace4個分に。
set autoindent    # 改行時にインデントを揃える
set smooth        # スクロールがスムーズに
set linenumbers   # 行番号を表示する
set mouse         # カーソル移動や範囲選択でマウスを使えるように

その他のオプションは公式ドキュメントを参照。

nanoを便利に使う2: シンタクスハイライト

シンタクスハイライトとは
関数、文字列、予約語とかに色をつけてコードを見やすくするあれ。

(/etc/nanorcの設定にもよるが、)Macのデフォルトのnanoはハイライトされていない…

それも.nanorcで設定できます!!

nanoを便利に使う2: シンタクスハイライト

  1. ハイライト定義ファイルが置かれている場所を探す。

    • Mac(homebrew): /usr/local/share/nano/ / /usr/local/Cellar/nano/%v/share/nano/
    • Linux: /usr/share/nano/
  2. .nanorcに以下を追記:

    .nanorc
    include "/usr/share/nano/*.nanorc"
  3. 適当なスクリプトをnanoで開いて、ハイライトされているか見てみる。

みなさんのおすすめエディタも教えてください!!

  • 私はnanoの設定こうしています!
  • vimの方がはるかに高機能だというのを教えてあげよう
  • 何言ってんの、時代はvscodeでしょ
    • 個人的にvscodeを食わず嫌いしているのでぜひ誰かにやってほしい…
  • etc.


技術輪読会のネタについて

皆さんの意向をお聞きした上で、希望者が多ければgitを学ぶ回をやりたい。

補遺: 遺伝研でnanoを使うとき

遺伝研のデフォルトのnanoは、version 2.3.1とかなり古い。(2023-05-09)

  • キーバインドが結構違う。(ControlXとか基本的なやつは同じ。)
  • ~/.config/nano/nanorcを読んでくれない。
  • .nanorcのワイルドカード*が効かない。
デフォルトのnanoを使う場合、
設定ファイルは~/.nanorc
キーバインドは自分で設定したり、野生のやつを借りたり。
シンタックスハイライトは1つ1つ直接指定: include "usr/share/nano/python.nanorc"
おすすめは新しいnanoを入れること
guixならversion 5.6.1が入る。(これもそこそこ古いけど。)
*.nanorcもついてくる。(~/.guix-profile/share/nano/*.nanorc)
公式から最新版(version 7.2)を落としてきてもいいかも。