#文件树 #终端文件 #文件浏览器 #tui #编辑器 #文件管理器

二进制 sidetree

TUI 文件树,适用于终端文本编辑器

15 个版本 (8 个重大更新)

0.10.1 2023年2月18日
0.8.2 2022年8月28日
0.6.1 2022年4月20日
0.6.0 2021年10月14日
0.3.0 2021年5月10日

文本编辑器 中排名 230

Download history 19/week @ 2024-03-15 5/week @ 2024-03-29

每月下载量 57

MIT 许可证

74KB
2K SLoC

一个 TUI 文件树面板

image

专为与 kakoune 集成而构建,但通过一些配置,它也可以与大多数 TUI 一起使用,甚至可以作为独立的终端文件管理器。

目前处于早期 alpha 阶段,欢迎 PR!

安装

由于 sidetree 发布在 crates.io 上,任何已安装 cargo 的系统都可以通过运行以下命令来获取 sidetree:

cargo install sidetree

示例集成

在 tmux 中使用 kakoune 的非常简单的集成

map -docstring 'file explorer' global normal <c-e> ':connect panel sidetree --select %val{buffile}<ret>'

这还需要 kcr

配置

可以将命令放在 ~/.config/sidetree/sidetreerc

set show_hidden false
set quit_on_open false
set open_cmd 'kcr open "${sidetree_entry}"'

set file_icons true
set icon_style darkgray
set dir_name_style lightblue+b
set file_name_style reset
set highlight_style +r
set link_style cyan+b

有关更多示例,请参阅提供的 sidetreerc 文件。

命令

可以通过按 : 获取命令提示符或如上所述放在配置文件中来执行命令。

quit

退出 sidetree

open[path]

打开给定的路径或当前选定的路径。有关配置,请参阅下面的 open_cmd 选项。

set<option> <value>

设置配置选项。有关选项,请参阅以下内容。

echo[args...]

将某些内容输出到状态行。所有参数将通过空格连接并输出。

shell[command...]

在 shell 中执行 command。如果没有引号,所有参数将通过空格连接并执行。

cd[path]

将根目录更改为给定的路径或当前选定的文件夹。

map<key> <command> [args...]

将一个键映射到另一个 sidetree 命令。例如:map H cd ..

键的格式如下

  • 一个字符,或以下之一: returnretsemicolongtltpercentspacetab
  • 以上任何组合,加上修饰符 ctrlalt,格式如下 <[mods-...][key]>,例如 <c-j><a-j><c-a-space> 等。
  • 不支持修饰符的特殊命名键之一: escbacktabbackspacedelhomeendupdownleftrightinsertpageuppagedown

扩展

sidetree_entry

所选条目的路径。

sidetree_dir

所选目录的路径。

选项

使用 set [option] [value] 命令设置选项

show_hidden: 布尔值

是否显示隐藏文件(以 . 开头的文件名)

open_cmd: 字符串

打开文件时要运行的 shell 命令,即 :open 命令时,或在文件上按下 <return>

示例: set open_cmd 'xdg-open "$sidetree_entry"'

quit_on_open: 布尔值

:open(或按下文件上的 <return>)后是否退出 sidetree

file_icons: 布尔值

是否通过扩展名启用文件图标。这可能会或可能不会由您的字体支持。

样式

样式选项具有以下格式: [<fg>][,<bg>][+<add_attr>][-<sub_attr>]

<fg><bg> 是颜色,可以是颜色名称,也可以是一个 rgb:XXXXXX 字符串,其中 XXXXXX 是十六进制颜色值,或者 colorX,其中 X 是终端颜色的索引。有效的颜色名称有:resetblackredgreenyellowbluemagentacyangraydarkgraylightredlightgreenlightyellowlightbluelightmagentalightcyanwhite

<add_attr> 是要添加的属性,而 sub_attr 是要删除的属性。这些是一系列字符,每个字符对应以下属性

b → bold
d → dim
i → italic
u → underlined
B → blink
r → reversed

示例样式:blue,black+bu-i,redreset,reset+r-B

icon_style: Style:文件/文件夹图标的样式

dir_name_style: Style:目录名称的样式

file_name_style: Style:非目录名称的样式

highlight_style: Style:高亮条目的样式

此样式将在现有样式之上应用,因此 +r 可以是一个不错的选择,或者也可以是 blue,reset+r

待办事项

  • 正确的符号链接处理
  • 自定义快捷键映射,map 命令
  • 更多导航命令
  • 在启动之间保存选择和展开的文件夹
  • 条目样式的后端
  • 按扩展名显示文件图标
  • 自定义格式化
  • 更好的脚本解析
    • 注释
    • 代码块
    • 百分比字符串
    • 扩展
  • 自动反射配置
  • 自定义命令和别名
  • 更好的提示键绑定和光标移动
  • Git 集成
    • Gitignore
    • Git 状态
  • 双向同步的 IPC

依赖项

~6MB
~116K SLoC