GNU nano を使う

GNU nano についての備忘録です。

GNU nano とは?

notepad.exe 以上 vim/emacs 以下のテキストエディタです。Linuxデビュー以来、頑なにこれを使って生きています。

開発経緯とかは知らないのでWikipediaでも読んでください。

インストール

環境は Debian GNU/Linux strech(9.x) です……が、stableにあるものは古いためビルドします。 testingには3.2あるけどそれを言ったらおしまいなので無視

入ってたやつ

$ nano -V
 GNU nano バージョン 2.7.4 
 (C) 1999..2016 Free Software Foundation, Inc.
 (C) 2014..2016 nano への貢献者たち
 Email: nano@nano-editor.org    Web: https://nano-editor.org/
 コンパイルオプション: --disable-libmagic --disable-wrapping-as-root --enable-utf8

2.7.4 です。

最新版

最近 3.0 が登場しました。

テキストエディタ「GNU nano 3.0」、12年ぶりのメジャーリリース | OSDN Magazine

最新版は 3.2 のようです。

GNU nano: Download

ビルド

ビルドオプション

最初からついてたやつは、

  1. disable-libmagic: シンタックスの決定に libmagic を使用しない
  2. disable-wrapping-as-root: 画面端で強制的に改行されてしまうのを無効にする(root時)
  3. enable-utf8: UTF-8を有効にする

です。

とりあえずそのままでもよさそうな感じですが、FAQを見ると、別に明示しなくても有効になりそうなので enable-utf8 は無視します。 また、ハードラップは別にrootじゃなくても無効にしてほしいので disable-wrapping も付けます。

やる

cd /usr/local/src
curl -LO https://www.nano-editor.org/dist/v3/nano-3.2.tar.gz
tar xzf nano-3.2.tar.gz

cd ./nano-3.2
./configure --disable-libmagic --disable-wrapping --disable-wrapping-as-root
make
sudo make install

できた

$ /usr/local/bin/nano -V 
 GNU nano バージョン 3.2 
 (C) 1999-2011, 2013-2018 Free Software Foundation, Inc.
 (C) 2014-2018 nano への貢献者たち
 Email: nano@nano-editor.org    Web: https://nano-editor.org/
 コンパイルオプション: --disable-libmagic --disable-wrapping --disable-wrapping-as-root --enable-utf8

enable-utf8 は勝手に表示されるみたいでした。

デフォルトのエディタに設定する

このままだと nano を叩いても相変わらず古いほうが起動してしまうので、update-alternatives を使って設定をします。バイナリのあるディレクトリをlsしているとよく /etc/alternatives/hoge とかなってるアレで、実際にはシンボリックリンクを貼ることで色々なコマンドがデフォルトで呼ぶ実体ファイルを制御しています。

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/nano 99 

上を実行すると、

$ update-alternatives --config editor
alternative editor (/usr/bin/editor を提供) には 3 個の選択肢があります。 

  選択肢    パス               優先度  状態
------------------------------------------------------------
* 0            /usr/local/bin/nano   99        自動モード
  1            /bin/nano             40        手動モード
  2            /usr/bin/vim.tiny     15        手動モード
  3            /usr/local/bin/nano   99        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 

無事、デフォルトのエディタとして登録されています。

.nanorc の設定

nanoは $HOME/.nanorc に設定ファイルを置くことができます。

設定例はこちら↓

set autoindent 
set tabsize 4 
#set nowrap
set softwrap
set constantshow
set linenumbers
set matchbrackets "(<[{)>]}"
set morespace

set historylog
set smooth
set suspend
set multibuffer

include "~/.nano/*.nanorc" 

詳しくは公式ドキュメントを参照

set nowrap はハードラップを無効化するオプションですが、今回はビルド段階で無効にしたため、設定が有効になっていると警告が出ました。

シンタックスハイライト機能にはデフォルトの定義ファイルも同梱されていますが、より充実した scopatz/nanorc を使用しています。

おわりに

特に「みんなもnanoを使おう!」みたいなノリのものではないので感想は無です。
同じくnanoを使っている人の役に少しでも立ったらいいなと思います。

参考

linux