コンテンツにスキップ

「Nnn」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
Kgx (トーク | 投稿記録)
設定: リンク名を修正
 
(他の1人の利用者による、間の6版が非表示)
11行目: 11行目:
{{Related articles end}}
{{Related articles end}}


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


その豊富な機能にもかかわらず、''nnn'' は使いやすいように設計されており、設定ファイルを使用せずに [[環境変数]] によって設定されるようになっています。
ファイルマネージャであるのに加えて、nnn はディスクの使用量を解析したり、アプリを起動したり、ファイルの名前変更をバッチ処理することもできます。

nnn は正規表現 (あるいは通常の文字列) フィルタによるインスタントな ''search-as-you-type''、およびディレクトリを自動選択してフィルタモードで操作できる ''navigate-as-you-type'' モードをサポートしています。他にもコンテキスト・ブックマーク・マルチソートオプション・SSHFS・バッチ操作などなど。

豊富な機能だけでなく、nnn は簡単に使いやすく設計されています。


== インストール ==
== インストール ==
23行目: 19行目:
nnn は {{Pkg|nnn}} パッケージで[[インストール]]できます。
nnn は {{Pkg|nnn}} パッケージで[[インストール]]できます。


== 使用方法 ==
=== 使用方法 ===


nnn は vim ライクな {{ic|hjkl}} の文字、あるいは方向キーで制御できます。キーを覚える必要はありません。方向キーと {{ic|/}} と {{ic|q}} で十分です。{{ic|?}} を押すことでキーボードショートカットのヘルプをいつでも表示できます。
nnn は vim ライクな {{ic|hjkl}} の文字、あるいは方向キーで制御できます。キーを覚える必要はありません。方向キーと {{ic|/}} と {{ic|q}} で十分です。{{ic|?}} を押すことでキーボードショートカットのヘルプをいつでも表示できます。


== 設定 ==
=== 設定 ===


nnn は[[環境変数]]で設定します。{{ic|~/.bashrc}} を編集してください。設定について詳しくはマニュアルページの {{man|1|nnn}} や nnn wiki の [https://github.com/jarun/nnn/wiki 設定ページ] に詳しく書かれています。
nnn は[[環境変数]]で設定します。{{ic|~/.bashrc}} を編集してください。設定について詳しくはマニュアルページの {{man|1|nnn}} や nnn wiki の [https://github.com/jarun/nnn/wiki 設定ページ] に詳しく書かれています。

以下 {{ic|~/.bashrc}} に追加する設定例です:


{{hc|head=~/.bashrc|output=
{{hc|head=~/.bashrc|output=
export NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/'
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_NO_AUTOSELECT=1 # do not auto select in navigate-as-you-type-mode
export NNN_COLORS="2136" # use a different color for each context
export NNN_NOTE="$HOME/mynotes" # if you already have your own notebook,
export NNN_SSHFS_OPTS="sshfs -o follow_symlinks" # make sshfs follow symlinks on the remote
export NNN_TRASH=1 # trash (needs trash-cli) instead of delete
export NNN_TRASH=1 # trash (needs trash-cli) instead of delete
export NNN_COLORS="2136" # use a different color for each context
}}
}}


{{Note|ディスプレイマネージャを使っている場合、nnn を {{ic|nnn.desktop}} から起動させるときに {{ic|.bashrc}} が読み込まれないことがあります。[https://github.com/jarun/nnn/wiki/Advanced-use-cases#desktop-integration Desktop Integration] にしたがって設定してください。}}
{{Note|ディスプレイマネージャを使っている場合、nnn を {{ic|nnn.desktop}} から起動させるときに {{ic|.bashrc}} が読み込まれないことがあります。[https://github.com/jarun/nnn/wiki/Advanced-use-cases#desktop-integration Desktop Integration] にしたがって設定してください。}}
{{ic|NNN_BMS}} 変数で、ブックマークしたディレクトリに簡単にジャンプするショートカットを選択します。デフォルトでは {{ic|b}} に設定されている {{ic|<leader-key>}} で呼び出せます。上記の例の場合 {{ic|bD}} とキーを押すことで nnn は {{ic|~/Downloads}} に移動します。
{{ic|NNN_BMS}} 変数で、ブックマークしたディレクトリに簡単にジャンプするショートカットを選択します。デフォルトでは {{ic|b}} に設定されている {{ic|<leader-key>}} で呼び出せます。上記の例の場合 {{ic|bD}} とキーを押すことで nnn は {{ic|~/Downloads}} に移動します。ただし、これらはすべてオプションです。''nnn'' は、すべてのマシンで一貫して同じように動作します。


=== ターミナルでファイルを選択 ===
==== ターミナルでファイルを選択 ====


{{ic|nnn}} で選択したファイルのリストを取得するには以下のエイリアスを作成します:
{{ic|nnn}} で選択したファイルのリストを取得するには以下のエイリアスを作成します:
56行目: 47行目:
他のツールに選択したファイルをパイプで渡すことができます。
他のツールに選択したファイルをパイプで渡すことができます。


=== nnn シェルで深度レベルを指定 ===
==== nnn シェルで深度レベルを指定 ====


{{ic|!}} を使ってカレントディレクトリでシェルを開く場合、以下を追加すると良いでしょう:
{{ic|!}} を使ってカレントディレクトリでシェルを開く場合、以下を追加すると良いでしょう:
63行目: 54行目:
[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1"
[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1"
}}
}}

シェル内にいる状態を維持しながら終了時に nnn に戻るプロンプトに示させるには、次のようにします。


[[#終了時に cd (CTRL-G)]] と組み合わせることで強力なコンビになります。
[[#終了時に cd (CTRL-G)]] と組み合わせることで強力なコンビになります。


=== 終了時に cd (CTRL-G) ===
==== 終了時に cd (Ctrl-G) ====
nnn を終了して作業ディレクトリに移動するには、以下を {{ic|~/.bashrc}} に追加します:


以下 {{ic|.bashrc}}/{{ic|.zshrc}} に追加してください。
{{note|[https://github.com/jarun/nnn/tree/master/misc/quitcd こちら] に様々なシェルにおけるスクリプトが存在します。}}
{{hc|head=~/.bashrc|output=
{{hc|~/.bashrc or ~/.zshrc|output=
if [ -f /usr/share/nnn/quitcd/quitcd.bash_sh_zsh ]; then
<nowiki>n()
source /usr/share/nnn/quitcd/quitcd.bash_sh_zsh
{
fi
export NNN_TMPFILE=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd

nnn "$@"

if [ -f $NNN_TMPFILE ]; then
. $NNN_TMPFILE
rm -f $NNN_TMPFILE > /dev/null
fi
}
</nowiki>
}}
}}
そして、{{ic|nnn}} の代わりに {{ic|n}} コマンドを実行します(正確には n の bash 関数です)


[https://github.com/jarun/nnn/wiki/Basic-use-cases#configure-cd-on-quit nnn wiki] も参照してください。
そして他のターミナルを起動するか以下のコマンドを実行してください:
{{bc|source ~/.bashrc}}

上記のコマンドでシェルは {{ic|~/.bashrc}} をリロードします。

nnn を以下のコマンドで起動できます:
{{bc|$ n}}

nnn の終了時に CTRL-G が正しく処理されます。


=== 自分のプラグインを追加 ===
==== 自分のプラグインを追加 ====


{{ic|${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins}} に追加することでプラグインを実行できます。例えば実行シェルスクリプトを作成:
{{ic|${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins}} に追加することでプラグインを実行できます。例えば実行シェルスクリプトを作成:

2025年12月22日 (月) 14:06時点における最新版

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_sh_zsh ]; then
    source /usr/share/nnn/quitcd/quitcd.bash_sh_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 ログとコードが表示されます。

参照