nnn

提供: ArchWiki
2024年2月19日 (月) 18:54時点におけるKgx (トーク | 投稿記録)による版 (→‎設定: 同期)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

nnn (n³ とも表記されます) は C 言語で書かれた携帯端末用ファイルマネージャです。 フラットテキストプラグインシステムにより簡単に拡張でき、(neo)vim プラグインを含む、すでに利用できるプラグインに加えて独自の言語依存スクリプトを追加することができ ます。 xz のような一般的にインストールされるフォーマットへのアーカイブ/解凍、ディスク使用量の分析、ファジーアプリランチャー、バッチファイルリネーマー、ファイルピッカーがプラグインアーキテクチャによりネイティブに機能します。nnn は、正規表現 (または単純な文字列) フィルタによる即時の search-as-you-type と、ディレクトリ自動選択によるフィルタモードで連続的にナビゲーションする navigate-as-you-type モードをサポートします。また、コンテキスト、ブックマーク、複数のソートオプション、SSHFS、選択範囲(選択されたファイルのグループ)に対するバッチ操作など、さまざまな機能がサポートされています。

その豊富な機能にもかかわらず、nnn は使いやすいように設計されており、設定ファイルを使用せずに 環境変数 によって設定されるようになっています。

インストール

nnn は 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 を nnn.desktop から起動させるときに .bashrc が読み込まれないことがあります。Desktop Integration にしたがって設定してください。

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 ログとコードが表示されます。

参照