nano

提供: ArchWiki
移動先: 案内検索

GNU nano (もしくは nano) はシンプルなインターフェイスと直感的なコマンドオプションをコンソールベースのテキスト編集に導入します。Ubuntu などのディストリビューションで nano はデフォルトのコンソールエディタであり、カラーのシンタックスハイライト・DOS/Mac ファイルタイプ変換・スペルチェック・UTF-8 エンコードなどの機能をサポートしています。空のバッファで開かれた nano は一般的に 1.5 MB 以下の常駐メモリを使います。nano のスクリーンショット

パッケージのインストール

公式リポジトリから nano パッケージをインストールすることができます。base グループに含まれているため、基本的には全てのシステムでインストールされています。

設定

~/.nanorc の作成

nano のルックアンドフィールや機能は基本的にコマンドライン引数か ~/.nanorc ファイルの設定コマンドのどちらかで設定します。

プログラムのインストール時にサンプル設定ファイルが /etc/nanorc にインストールされます。nano の設定をカスタマイズするには、まず ~/.nanorc にローカルコピーを作成して下さい:

$ cp /etc/nanorc ~/.nanorc

~/.nanorc ファイルの中でコマンドを設定して nano のコンソール環境を確立してください。

ヒント: NANORC に nano で利用可能な設定コマンドの完全なリストが載っています。
ノート: コマンドラインの引数は .nanorc 内の設定コマンドよりも優先されます。

シンタックスハイライト

PKGBUILD ファイル

これは Arch Linux "svntogit-server" のような新しいシンタックスハイライトです。

# Arch PKGBUILD files
#
syntax "pkgbuild" "^.*PKGBUILD*"
# commands
color red "\<(cd|echo|enable|exec|export|kill|popd|pushd|read|source|touch|type)\>"
color brightblack "\<(case|cat|chmod|chown|cp|diff|do|done|elif|else|esac|exit|fi|find|for|ftp|function|grep|gzip|if|in)\>"
color brightblack "\<(install|ln|local|make|mv|patch|return|rm|sed|select|shift|sleep|tar|then|time|until|while|yes)\>"
# ${*}
icolor blue "\$\{?[0-9A-Z_!@#$*?-]+\}?"
# numerics
color blue "\ [0-9]*"
color blue "\.[0-9]*"
color blue "\-[0-9]*"
color blue "=[0-9]"
# spaces
color ,green "[[:space:]]+$"
# strings; multilines are not supported
color brightred ""(\\.|[^"])*"" "'(\\.|[^'])*'"
# comments
color brightblack "#.*$"

これはフォーラムに投稿された他のバージョンです。

## Arch PKGBUILD files
##
syntax "pkgbuild" "^.*PKGBUILD$"
color green start="^." end="$"
color cyan "^.*(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license).*=.*$"
color brightcyan "\<(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)\>"
color brightcyan "(\$|\$\{|\$\()(pkgbase|pkgname|pkgver|pkgrel|pkgdesc|arch|url|license)(|\}|\))"
color cyan "^.*(depends|makedepends|optdepends|conflicts|provides|replaces).*=.*$"
color brightcyan "\<(depends|makedepends|optdepends|conflicts|provides|replaces)\>"
color brightcyan "(\$|\$\{|\$\()(depends|makedepends|optdepends|conflicts|provides|replaces)(|\}|\))"
color cyan "^.*(groups|backup|noextract|options).*=.*$"
color brightcyan "\<(groups|backup|noextract|options)\>"
color brightcyan "(\$|\$\{|\$\()(groups|backup|noextract|options)(|\}|\))"
color cyan "^.*(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums).*=.*$"
color brightcyan "\<(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums)\>"
color brightcyan "(\$|\$\{|\$\()(install|source|md5sums|sha1sums|sha256sums|sha384sums|sha512sums)(|\}|\))"
color brightcyan "\<(startdir|srcdir|pkgdir)\>"
color cyan "\.install"
color brightwhite "=" "'" "\(" "\)" "\"" "#.*$" "\," "\{" "\}"
color brightred "build\(\)"
color brightred "package_.*.*$"
color brightred "\<(configure|make|cmake|scons)\>"
color red "\<(DESTDIR|PREFIX|prefix|sysconfdir|datadir|libdir|includedir|mandir|infodir)\>"

このファイルを (/usr/share/nano/pkgbuild.nanorc などの名前で) 保存してから ~/.nanorc/etc/nanorc に次のような行を追加してください:

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

他の定義

デフォルトを置き換え拡張するシンタックスハイライトの拡張が AUR にあります、nano-syntax-highlighting-gitAUR

その他の設定

サスペンド

多くの対話式プログラムと異なり、デフォルトではサスペンドは無効にされています。これを変更するには、/etc/nanorc 内の 'set suspend' の行をアンコメントしてください。これで Ctrl+z を使って nano をバックグラウンドに送ることができます。

文章を折り返さない

他のディストリビューションから来た時、nano の挙動がおかしく感じるかもしれません。その場合 /etc/nanorc を以下のように編集してください:

## Do not wrap text at all.
set nowrap

nano の使用方法

特別な関数

  • nano の画面で下の2行に表示されるよく使われる関数の中で ^ は Ctrl キーの修飾を表しています。
  • Meta (通常は Alt) や Esc キーで修飾することで追加機能を対話式に切り替えることができます。

ショートカットリスト

  • ^G Get Help (F1)
セッションウィンドウの中にオンラインのヘルプファイルを表示します。nano ユーザーは全て読むことが提案されています
  • ^O WriteOut (F3)
現在のファイルバッファの内容をディスク上のファイルに保存する
  • ^R Read File (F5)
カーソル位置に他のファイルを挿入する
  • ^Y Prev Page (F7)
前のバッファ画面を表示する
  • ^K Cut Text (F9)
現在の行の初めから最後までカットして保存する
  • ^C Cur Pos (F11)
現在のカーソルの行・桁そして文字の位置情報を表示する
  • ^X Exit (F2)
nano を終了する
  • ^J Justify (F4)
コンソールウィンドウのジオメトリに文章を整列させる
  • ^W Where (F6)
大文字小文字を区別する文字・正規表現検索を実行する
  • ^V Next Page (F8)
次のバッファ画面を表示する
  • ^U UnCut Text (F10)
カットバッファの中身を現在のカーソル位置にペーストする
  • ^T To Spell (F12)
内蔵の spell でバッファの中身をスペルチェック
ヒント: nano のオンラインヘルプファイルは nano の中で Ctrl+g を使うことで見られます。また、nano Command Manual に完全な説明と追加のサポートが記載されています。

機能の切り替え

  • Meta+c (or Esc+c)
行・桁そして文字の位置情報の表示を切り替える
  • Meta+i (or Esc+i)
自動インデントを切り替える
  • Meta+k (or Esc+k)
現在のカーソル位置から行の最後まで文章をカットするのを切り替える
  • Meta+m (or Esc+m)
マウスを使ってカーソルの移動やマーク、ショートカットするのを切り替える
  • Meta+x (or Esc+x)
nano の画面の一番下にショートカットリストを表示するのを切り替える
ヒント: Feature Toggles に nano で利用できる全ての切り替えが記載されています。

Tips & tricks

vi を nano で置き換える

ライトユーザーにとっては使いやすくてシンプルな nano の方が vi よりも好ましいかもしれません。'visudo などのコマンドで利用するデフォルトのテキストエディタを vi から nano に置き換えることが可能です。

方法1

警告: man 8 visudo より: ユーザーが VISUAL や EDITOR を設定して簡単にどのプログラムを実行できるようにするのでこれがセキュリティホールになる可能性があります、注意してください。

core リポジトリに入っている sudo はデフォルトで --with-env-editor を使ってコンパイルされているので VISUALEDITOR 変数を使います。現在のシェルセッションの間 visudo のエディタとして使うには、visudo を呼び出す前に EDITOR 変数を設定して下さい。

export EDITOR=nano 
設定例
 export EDITOR=nano && sudo visudo

方法2

警告: man 8 visudo より: ユーザーが VISUAL や EDITOR を設定して簡単にどのプログラムを実行できるようにするのでこれがセキュリティホールになる可能性があります、注意してください。

EDITOR 変数は以下のファイルで設定することで永続的に使うことができます:

  • ~/.profile (`.bash_profile` の代替)
  • ~/.bashrc (対話式、ログインシェルではない)
  • /etc/profile (root を除く全てのシステムユーザー共通の設定)
.bash_profile の例
. $HOME/.bashrc

方法3

ノート: この方法は厳しすぎると思われるかもしれず、全てのユーザーには適さないかもしれません。それでも以下の方法は実行可能です。
シンボリックリンク

復元用に vi の実行ファイルを vi.old に名前を変えて下さい:

# mv /usr/bin/vi /usr/bin/vi.old

/usr/bin/nano から /usr/bin/vi にシンボリックリンクを作成して下さい:

# ln -s /usr/bin/nano /usr/bin/vi

永続的にするには pacman.conf の IgnorePkgvi を追加してください。そうしないと更新した時に vi に戻ってしまいます。

vi の復元

/usr/bin/vi シンボリックリンクを削除して下さい:

unlink /usr/bin/vi

vi.old 実行ファイルを vi に名前を戻して下さい:

mv /usr/bin/vi.old /usr/bin/vi

方法4

ノート: この方法は厳しすぎると思われるかもしれず、全てのユーザーには適さないかもしれません。それでも以下の方法は実行可能です。
削除 & シンボリックリンク

pacman を使って vi パッケージ、設定、全ての必要な依存パッケージを削除して下さい:

pacman -Rns vi

/usr/bin/nano から /usr/bin/vi にシンボリックリンクを作成して下さい:

ln -s /usr/bin/nano /usr/bin/vi
vi の復元

/usr/bin/vi シンボリックリンクを削除して下さい:

unlink /usr/bin/vi

pacman を使ってさっき削除した vi パッケージをインストールして下さい:

pacman -S vi
ノート: Do not clean -c or refresh -y the package database if you wish to retain the previously installed version of the vi package.
If this case, subsequent updates will also require the judicious use of the --ignore vi switch (and optionally --ignore glibc ncurses coreutils).

追加資料