nnn
nnn(也被樣式化為 n³)是一個用 C 語言編寫的可攜式終端文件管理器。它可以通過扁平文本插件系統輕鬆擴展,在已有插件(包括 (neo)vim 插件)的基礎上添加自己的語言腳本。
nnn features native archiving/decompression to and from commonly installed formats such as xz, disk usage analysis and a fuzzy app launcher, a batch file renamer and a file picker through its plugin architecture. nnn supports instant search-as-you-type with regex (or simple string) filters and a navigate-as-you-type mode for continuous navigation in filter mode with directory auto-select. Also supported are contexts, bookmarks, multiple sorting options, SSHFS, batch operations on selections (a group of selected files) and a lot more.
儘管 nnn 功能強大,但其設計簡單易用,可通過環境變量進行配置,無需使用配置文件。
安裝[編輯 | 編輯原始碼]
安裝 nnn包 軟體包,或 安裝 nnn-gitAUR 以獲取開發版本。
用法[編輯 | 編輯原始碼]
nnn 可以用類 vi 按鍵 hjkl
或 arrow keys
控制。請勿記憶按鍵:箭頭、/
和 q
即可。請隨時按 ?
獲取鍵盤快捷鍵幫助。
配置[編輯 | 編輯原始碼]
nnn 通過環境變量進行配置。有關這些設置的詳細信息,請參閱 nnn(1) 以及 nnn wiki。
NNN_BMS='d:~/Documents;u:/home/user/Cam Uploads;D:~/Downloads/' NNN_SSHFS="sshfs -o follow_symlinks" # make sshfs follow symlinks on the remote NNN_COLORS="2136" # use a different color for each context NNN_TRASH=1 # trash (needs trash-cli) instead of delete
nnn.desktop
from a desktop environment started from a display manager, .bashrc
may not be sourced. In this case, see the upstream instructions for desktop integration.NNN_BMS
變量是比較有用的設置之一,它可以讓你選擇快捷方式快速跳轉到書籤目錄。您可以使用 b
後跟一個您指定的字母。在示例配置中,點擊bD
將導致 nnn 跳轉到~/Downloads
。但所有這些都是可選的,nnn 在所有機器上的表現都是一樣的。
在終端中獲取選定文件[編輯 | 編輯原始碼]
要獲取在 nnn 中選擇的文件列表,可以創建以下別名:
~/.bashrc
alias ncp="cat ${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} | tr '\0' '\n'"
隨後可將所選文件導入其他工具。
Indicate depth level within nnn shells[編輯 | 編輯原始碼]
If you use !
to spawn a shell in the current directory, it could be nice to add:
~/.bashrc
[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1"
To have your prompt indicate that you are within a shell that will return you to nnn when you are done.
This together with #cd on quit (Ctrl-G) becomes a powerful combination.
cd on quit (Ctrl-G)[編輯 | 編輯原始碼]
Add the following to your .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
And run the n
command instead of nnn
(more precisely the n bash function).
另請參閱 nnn wiki。
添加自己的插件[編輯 | 編輯原始碼]
您可以將插件放入 ${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins
中,以運行自己的插件。例如,您可以創建一個可執行的 shell 腳本
${XDG_CONFIG_HOME:-$HOME/.config}/nnn/plugins/git-changes
#!/usr/bin/env sh git log -p -- "$@"
設置環境變量 NNN_PLUG='R:git-changes'
,然後按 ;R
鍵並選擇 git-changes
來觸發它,這樣就能方便地顯示特定文件的 git 更改日誌以及代碼,以便快速輕鬆地查看。