nnn
nnn (n³ とも表記されます) は C 言語で書かれた携帯端末用ファイルマネージャです。 フラットテキストプラグインシステムにより簡単に拡張でき、(neo)vim プラグインを含む、すでに利用できるプラグインに加えて独自の言語依存スクリプトを追加することができ ます。 xz のような一般的にインストールされるフォーマットへのアーカイブ/解凍、ディスク使用量の分析、ファジーアプリランチャー、バッチファイルリネーマー、ファイルピッカーがプラグインアーキテクチャによりネイティブに機能します。nnn は、正規表現 (または単純な文字列) フィルタによる即時の search-as-you-type と、ディレクトリ自動選択によるフィルタモードで連続的にナビゲーションする navigate-as-you-type モードをサポートします。また、コンテキスト、ブックマーク、複数のソートオプション、SSHFS、選択範囲(選択されたファイルのグループ)に対するバッチ操作など、さまざまな機能がサポートされています。
その豊富な機能にもかかわらず、nnn は使いやすいように設計されており、設定ファイルを使用せずに 環境変数 によって設定されるようになっています。
目次
インストール
使用方法
nnn は vim ライクな hjkl
の文字、あるいは方向キーで制御できます。キーを覚える必要はありません。方向キーと /
と q
で十分です。?
を押すことでキーボードショートカットのヘルプをいつでも表示できます。
設定
nnn は環境変数で設定します。~/.bashrc
を編集してください。設定について詳しくはマニュアルページの nnn(1) や nnn wiki の 設定ページ に詳しく書かれています。
~/.bashrc
export NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/' export NNN_SSHFS="sshfs -o follow_symlinks" # make sshfs follow symlinks on the remote export NNN_COLORS="2136" # use a different color for each context export NNN_TRASH=1 # trash (needs trash-cli) instead of delete
NNN_BMS
変数で、ブックマークしたディレクトリに簡単にジャンプするショートカットを選択します。デフォルトでは b
に設定されている <leader-key>
で呼び出せます。上記の例の場合 bD
とキーを押すことで nnn は ~/Downloads
に移動します。ただし、これらはすべてオプションです。nnn は、すべてのマシンで一貫して同じように動作します。
ターミナルでファイルを選択
nnn
で選択したファイルのリストを取得するには以下のエイリアスを作成します:
~/.bashrc
alias ncp="cat ${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} | tr '\0' '\n'"
他のツールに選択したファイルをパイプで渡すことができます。
nnn シェルで深度レベルを指定
!
を使ってカレントディレクトリでシェルを開く場合、以下を追加すると良いでしょう:
~/.bashrc
[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1"
シェル内にいる状態を維持しながら終了時に nnn に戻るプロンプトに示させるには、次のようにします。
#終了時に cd (CTRL-G) と組み合わせることで強力なコンビになります。
終了時に cd (Ctrl-G)
以下を .bashrc
/.zshrc
に追加してください。
~/.bashrc or ~/.zshrc
if [ -f /usr/share/nnn/quitcd/quitcd.bash_zsh ]; then source /usr/share/nnn/quitcd/quitcd.bash_zsh fi
そして、nnn
の代わりに n
コマンドを実行します(正確には n の bash 関数です)
nnn wiki も参照してください。
自分のプラグインを追加
${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins
に追加することでプラグインを実行できます。例えば実行シェルスクリプトを作成:
${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/git-changes
#!/usr/bin/env sh git log -p -- "$@"
R
を押してから git-changes
を選択することで起動でき、特定のファイルの git ログとコードが表示されます。