nnn
nnn(也风格化为 n³)是一个用 C 编写的可移植终端文件管理器。它通过其扁平文本插件系统易于扩展,您可以在其中添加自己的语言无关脚本以及已有的插件,包括一个 (neo)vim 插件。
nnn 具有原生归档/解压缩到常用安装格式(如 xz)和从常用安装格式归档/解压缩的功能、磁盘使用情况分析和模糊应用启动器、批量文件重命名器以及通过其插件架构实现的文件选择器。nnn 支持即时随键入即搜索,带有正则表达式(或简单字符串)过滤器,以及随键入即导航模式,用于在过滤器模式下连续导航,并自动选择目录。还支持上下文、书签、多种排序选项、SSHFS、对所选内容(一组选定的文件)的批量操作等等。
尽管 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_BMS
变量,它允许您选择快捷方式以快速跳转到您书签的目录。它们通过 b
键,后跟您指定的字母之一来访问。在示例配置中,按键 bD
将导致 nnn 跳转到 ~/Downloads
。但所有这些都是可选的,nnn 在您的所有机器上都将始终如一地运行。
在终端中获取选定的文件
要获取您在 nnn 中选择的文件列表,可以创建以下别名
~/.bashrc
alias ncp="cat ${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection} | tr '\0' '\n'"
稍后可以将其用于将选定的文件通过管道传输到其他工具。
在 nnn shell 中指示深度级别
如果您使用 !
在当前目录中启动 shell,则最好添加
~/.bashrc
[ -n "$NNNLVL" ] && PS1="N$NNNLVL $PS1"
为了让您的提示符指示您位于一个 shell 中,该 shell 将在您完成操作后返回到 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
并运行 n
命令而不是 nnn
(更准确地说,是 n bash 函数)。
另请参阅 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 更改日志以及代码,以便快速轻松地查看。