ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Atuin 基础使用指南:理解命令记录、上手 TUI 检索与常用配置调优

Atuin 基础使用指南:理解命令记录、上手 TUI 检索与常用配置调优 Atuin 基础使用指南理解命令记录、上手 TUI 检索与常用配置调优【免费下载链接】atuin✨ Making your shell magical项目地址: https://gitcode.com/gh_mirrors/at/atuin本文是 Atuin 的基础使用指南围绕官方文档 basic-usage.md 展开讲解 Atuin 会记录哪些数据、如何用上方向键与ctrl-r打开交互式搜索界面TUI以及enter_accept、inline_height、style、tmux 弹窗等最常用的配置项。读完本文你将掌握 Atuin 的日常操作流并能够根据个人习惯完成从回车即执行到tmux 浮动弹窗搜索的整套基础调优。Atuin 会记录什么在使用过程中Atuin 为每一条命令记录六类元数据这也是后续检索、统计与同步的基础你运行的命令本身command运行命令的目录cwd运行时间与耗时timestamp 与 duration命令的退出码exit code运行机器的主机名与用户hostname user运行命令的 shell 会话session从源码结构看这些记录的捕获与持久化逻辑位于 crates/atuin-client/src/history/ 下的 capture 与 store 模块本地存储由 SQLite 数据库承担默认位于~/.local/share/atuin/history.db。记录时还会携带退出码等会话上下文为后续的统计atuin stats、同步sync以及按会话过滤提供原始数据。围绕记录什么这个话题有几个关联配置值得了解store_failed默认true是否记录执行失败退出码非 0的命令history_filter通过正则表达式把特定命令排除在历史记录之外如^secret-cmdcwd_filter通过正则表达式把特定目录下运行的所有命令排除在记录之外修改后可用 prune 命令 清理旧记录secrets_filter默认true内置一组正则匹配到 AWS、GitHub、Slack、Stripe、npm 等服务的令牌格式时拒绝保存同时对捕获的命令输出做脱敏替换。具体参数说明见 config.md排除命令的更多玩法见 Excluding Commands from History。打开并使用 TUI安装并完成 shell 集成atuin init后你可以在任意时刻用默认按键打开交互式搜索界面TUI上方向键↑ctrl-r进入 TUI 后两个最基础的操作是按Enter立即执行当前选中的命令按Tab把当前选中的命令回填到 shell 提示符中供你继续编辑后再执行。这两个行为的差异在按键映射源码中体现得很直接在 crates/atuin/src/command/client/search/keybindings/defaults.rs 中tab始终绑定为ReturnSelection只回填不执行而enter的行为则由enter_accept配置决定——为true时绑定Accept直接执行为false时绑定ReturnSelection回填待编辑。在 TUI 中缩小搜索范围Filter Mode搜索过程中按ctrl-r可以循环切换过滤模式filter mode从而决定 Atuin 在哪些范围内搜索模式搜索范围global默认全部历史跨所有机器host仅当前这台机器的历史session仅当前 shell 会话的历史directory仅当前目录下的历史workspace当前 git 仓库内任意目录下的历史session-preload当前会话的历史加上会话开始之前的全部全局历史其中workspace模式要求配置workspaces true见 config.md 的workspaces一节并且当你不在 git 仓库内时Atuin 会自动跳过该模式。如果你希望搜索默认从某个模式开始可以设置filter_mode如果想从ctrl-r的循环列表中移除某些模式可以配置search.filters还可以让上方向键与ctrl-r使用不同的默认模式对应配置项是filter_mode_shell_up_key_binding。交互式搜索的更多用法搜索模式按ctrl-s可在fuzzy默认模糊匹配、prefix前缀匹配、fulltext全文包含、daemon-fuzzy基于守护进程内存索引的可调评分模糊搜索之间循环默认模式由search_mode配置决定Inspector按ctrl-o打开选中命令的检查器可查看 Runs该命令的历史执行记录、Session该次运行所在的会话、Stats统计信息等前缀模式以ctrl-a作为前缀键的两段式快捷键例如ctrl-a然后d删除选中条目ctrl-a然后c切换到当前选中命令的上下文会话。更完整的 TUI 快捷键表与自定义方法见 key-binding.md高级用法见 advanced-usage.md。常用配置修改Atuin 的默认配置文件位于~/.config/atuin/config.toml可通过环境变量ATUIN_CONFIG_DIR覆盖配置目录数据默认存储在~/.local/share/atuin。完整的配置项参考见 config.md。一个省事的办法是执行atuin default-config它会直接把一份带详尽注释的示例配置打印到终端——该命令的实现位于 crates/atuin/src/command/client/default_config.rs其内容来自客户端示例配置 crates/atuin-client/config.toml里面几乎每个配置项都标注了默认值与可选范围。你可以用atuin default-config ~/.config/atuin/config.toml生成一份初始配置再按需修改。按键绑定Atuin 默认绑定了上方向键与ctrl-r如果你不喜欢可以在调用atuin init时按需关闭# 以 zsh 为例只绑定 ctrl-r不绑定上方向键 eval $(atuin init zsh --disable-up-arrow) # 只绑定上方向键不绑定 ctrl-r eval $(atuin init zsh --disable-ctrl-r) # 两个都不绑定 eval $(atuin init zsh --disable-up-arrow --disable-ctrl-r)也可以在调用atuin init之前设置环境变量ATUIN_NOBIND任意值来完全跳过默认绑定然后自行绑定。例如 zsh 中可以绑定 ZLE widgetatuin-search与atuin-up-searchexport ATUIN_NOBINDtrue eval $(atuin init zsh) bindkey ^r atuin-search bindkey ^[[A atuin-up-search bindkey ^[OA atuin-up-search一个常用技巧是给上方向键单独指定过滤模式例如按上方向键只搜当前目录按 ctrl-r 全局搜filter_mode_shell_up_key_binding directory # 或 global、host、session 等各 shellzsh、bash、fish、nu的完整自定义绑定示例见 key-binding.md。Enter 即执行Atuin 的默认行为是按 Enter 直接执行选中的命令。如果你更希望 Enter 与 Tab 一样总是先把命令回填到提示符供编辑可以在配置文件中设置enter_accept false值得说明的是配置文档中enter_accept的默认值存在历史差异——官方在默认配置文件中写入了enter_accept true新用户默认回车即执行但对老用户保持false回填待编辑后续版本可能统一。实际行为在源码 crates/atuin/src/command/client/search/keybindings/defaults.rs 的accept_action函数中体现并有对应的按键映射单测覆盖。此外command_chaining true可以配合/||实现接续上一条命令的链式搜索。内联窗口Inline Window如果觉得全屏 TUI 太大、太有压迫感可以通过inline_height限制界面最多占用的行数# 搜索窗口的高度行数 inline_height 40设为0表示总是使用尽可能多的行即全屏针对上方向键触发的搜索还有独立的inline_height_shell_up_key_binding可以单独设置。你可能还会喜欢更紧凑的 UI 模式style compactstyle支持三个取值compact紧凑、full完整与auto——auto默认按full渲染但当终端窗口高度不足以完整显示时自动切换到compact。与窗口大小相关的还有invert true反转 UI把搜索框放到顶部auto_hide_height 8在可用高度低于该行数时自动隐藏多余 UI 行仅对compact样式生效设为0可完全关闭show_preview/max_preview_height控制选中命令的预览与最大预览高度。tmux 弹窗如果你使用 tmuxAtuin 可以不在当前窗格上直接绘制而是把搜索界面放进一个浮动弹窗中[tmux] enabled true弹窗的尺寸可通过width默认80%支持百分比或绝对列数与height默认60%调整[tmux] enabled true width 80% height 60%使用弹窗需要满足以下条件不满足时 Atuin 会无报错地回退到普通渲染tmux 3.2display-popup从该版本起具备 Atuin 所需的行为使用zsh、bash 或 fishnushell、xonsh、PowerShell 暂不支持弹窗。⚠️ 特别注意如果你使用iTerm2 的原生 tmux 集成control mode即tmux -CC它无法显示 tmux popup且 Atuin 无法自动检测并回退。这种情况下请保持[tmux] enabled false默认值让搜索界面以内联方式渲染。另外两点实践提示这些设置由atuin init读取并通过环境变量传给 shell 插件因此修改后需要重启 shell才能生效如果只想在某个会话临时关闭弹窗而不改动配置可在 Atuin 按键绑定运行前设置ATUIN_TMUX_POPUPfalse。配置与实现的源码速览如果你想进一步理解上面的配置项在代码层面如何落地可以从这几个文件入手配置结构与枚举定义crates/atuin-client/src/settings.rs 定义了FilterModeglobal/host/session/directory/workspace/session-preload、SearchModeprefix/fulltext/fuzzy/daemon-fuzzy、Style、KeymapMode、ExitMode等核心枚举以及完整的Settings结构带注释的示例配置crates/atuin-client/config.toml 是atuin default-config输出的来源每个配置项都附有默认值与取值范围说明默认按键映射crates/atuin/src/command/client/search/keybindings/defaults.rs 通过KeymapSet::defaults构建 emacs、vim-normal、vim-insert、inspector、prefix 五套默认键位并附带大量rstest单测验证enter_accept、ctrl_n_shortcuts、keys.prefix、scroll_exits等配置对按键行为的实际影响。掌握了以上基础用法与配置项之后建议继续阅读 advanced-usage.md过滤模式、搜索模式、上下文切换、key-binding.md完整的 TUI 快捷键表与自定义绑定以及 config.md全部配置参数详解从而把 Atuin 调教成完全符合个人习惯的历史检索工具。【免费下载链接】atuin✨ Making your shell magical项目地址: https://gitcode.com/gh_mirrors/at/atuin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表