「Nnn」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンク切れ修正)
(→‎設定: 同期)
 
(2人の利用者による、間の7版が非表示)
3行目: 3行目:
 
[[Category:コンソールアプリケーション]]
 
[[Category:コンソールアプリケーション]]
 
[[en:nnn]]
 
[[en:nnn]]
  +
[[ru:Nnn]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|ファイルマネージャの機能}}
 
{{Related|ファイルマネージャの機能}}
10行目: 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] は C で書かれたポータブルなターミナルファイルマネージャです。プラグインシステムで簡単に拡張することができ、自分でスクリプトを追加したり既存のプラグインを利用できます。[https://github.com/mcchrish/nnn.vim (neo)vim] プラグインも利用可能です。
 
   
  +
その豊富な機能にもかかわらず、''nnn'' は使いやすいように設計されており、設定ファイルを使用せずに [[環境変数]] によって設定されるようになっています。
ファイルマネージャであるのに加えて、nnn はディスクの使用量を解析したり、アプリを起動したり、ファイルの名前変更をバッチ処理することもできます。
 
 
nnn は正規表現 (あるいは通常の文字列) フィルタによるインスタントな ''search-as-you-type''、およびディレクトリを自動選択してフィルタモードで操作できる ''navigate-as-you-type'' モードをサポートしています。他にもコンテキスト・ブックマーク・マルチソートオプション・SSHFS・バッチ操作などなど。
 
 
豊富な機能だけでなく、nnn は簡単に使いやすく設計されています。
 
   
 
== インストール ==
 
== インストール ==
22行目: 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}} を編集してください。設定について詳しくはマニュアルページの {{ic|man 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_USE_EDITOR=1 # use the $EDITOR when opening text files
 
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_TRASH=1 # trash (needs trash-cli) instead of delete
export NNN_OPS_PROG=1 # if you have installed advcp from the AUR. Giving you progress bars for mv and cp
 
export NNN_SSHFS_OPTS="sshfs -o follow_symlinks" # make sshfs follow symlinks on the remote
 
 
}}
 
}}
   
  +
{{Note|ディスプレイマネージャを使っている場合、nnn を {{ic|nnn.desktop}} から起動させるときに {{ic|.bashrc}} が読み込まれないことがあります。[https://github.com/jarun/nnn/wiki/Advanced-use-cases#desktop-integration Desktop Integration] にしたがって設定してください。}}
最も重要な設定は {{ic|NNN_BMS}} 変数で、ブックマークしたディレクトリに簡単にジャンプするショートカットを選択します。デフォルトでは {{ic|,}} (カンマ) に設定されている {{ic|<leader-key>}} で呼び出せます。上記の例の場合 {{ic|,D}} とキーを押すことで nnn は {{ic|~/Downloads}} に移動します。
 
  +
{{ic|NNN_BMS}} 変数で、ブックマークしたディレクトリに簡単にジャンプするショートカットを選択します。デフォルトでは {{ic|b}} に設定されている {{ic|<leader-key>}} で呼び出せます。上記の例の場合 {{ic|bD}} とキーを押すことで nnn は {{ic|~/Downloads}} に移動します。ただし、これらはすべてオプションです。''nnn'' は、すべてのマシンで一貫して同じように動作します。
   
=== ターミナルでファイルを選択 ===
+
==== ターミナルでファイルを選択 ====
   
 
{{ic|nnn}} で選択したファイルのリストを取得するには以下のエイリアスを作成します:
 
{{ic|nnn}} で選択したファイルのリストを取得するには以下のエイリアスを作成します:
   
 
{{hc|head=~/.bashrc|output=
 
{{hc|head=~/.bashrc|output=
<nowiki>alias ncp="cat ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection | tr '\0' '\n'"</nowiki>
+
<nowiki>alias ncp="cat ${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} | tr '\0' '\n'"</nowiki>
 
}}
 
}}
   
 
他のツールに選択したファイルをパイプで渡すことができます。
 
他のツールに選択したファイルをパイプで渡すことができます。
   
=== nnn シェルで深度レベルを指定 ===
+
==== nnn シェルで深度レベルを指定 ====
   
 
{{ic|!}} を使ってカレントディレクトリでシェルを開く場合、以下を追加すると良いでしょう:
 
{{ic|!}} を使ってカレントディレクトリでシェルを開く場合、以下を追加すると良いでしょう:
60行目: 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_zsh ]; then
<nowiki>n()
 
  +
source /usr/share/nnn/quitcd/quitcd.bash_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}} に追加することでプラグインを実行できます。例えば実行シェルスクリプトを作成:

2024年2月19日 (月) 18:54時点における最新版

関連記事

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

参照