ARTICLE DETAIL

资讯详情

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

lazygit 如何配置 editPreset 让 e 键按行号打开外部编辑器

lazygit 如何配置 editPreset 让 e 键按行号打开外部编辑器 lazygit 如何配置 editPreset 让 e 键按行号打开外部编辑器【免费下载链接】lazygitsimple terminal UI for git commands项目地址: https://gitcode.com/GitHub_Trending/la/lazygitlazygit 里有两个打开文件的命令o是“open”相当于在文件管理器里双击文件对非文本文件也有效e是“edit”把文件打开到外部编辑器中。当e从 staging panel暂存面板等位置触发时它还能跳转到文件中的正确行。要让这个“按行号打开”的行为使用你习惯的编辑器最省事的方式是在配置文件中设置os.editPreset让 lazygit 套用内置的编辑器预设命令。确认配置文件位置editPreset写在 lazygit 的全局配置文件里默认路径为来自 docs/Config.mdLinux~/.config/lazygit/config.ymlmacOS~/Library/Application Support/lazygit/config.ymlWindows%LOCALAPPDATA%\lazygit\config.yml旧版安装也可能在%APPDATA%\lazygit\config.yml此外还支持仓库级配置repo/.git/lazygit.yml会覆盖全局配置仓库任意上级目录中的.lazygit.yml也会被加载适合把一组仓库共用同一套编辑器设置。配置 editPreset在配置文件中加入os.editPreset例如使用 VS Codeos: editPreset: vscode文档列出的受支持预设值为vim、nvim、nvim-remote、lvim、emacs、nano、micro、vscode、sublime、bbedit、kakoune、helix、xcode、zed和acme。每个预设都会同时设置edit、editAtLine按行号打开、editAtLineAndWait按行号打开并等待窗口关闭以及openDirInEditor四条命令模板这些模板定义在 pkg/config/editor_presets.go 的getPreset函数中。例如vscode预设的按行打开命令是code --reuse-window --goto -- {{filename}}:{{line}}其中{{filename}}和{{line}}是 lazygit 在运行时替换的文件名与行号占位符不需要手工填写。如果暂时不配置editPresetlazygit 在很多情况下也会根据git config core.editor、$VISUAL或$EDITOR猜出合适的预设猜不到时回落到vim。但显式写出editPreset更可控是推荐做法。nvim-remote是一个实验性预设仅当 lazygit 是从 neovim 进程内部启动时适用它会让文件在父进程里打开而不是另起一个进程。预设不满足时手动指定命令模板当预设里的默认命令不合用或者你的编辑器根本没有预设时可以直接设置edit、editAtLine、editAtLineAndWait选项。文档给出的示例如下myeditor是文档中的占位编辑器名替换成你的编辑器命令即可{{filename}}、{{line}}由 lazygit 替换os: edit: myeditor {{filename}} editAtLine: myeditor --line{{line}} {{filename}} editAtLineAndWait: myeditor --block --line{{line}} {{filename}} editInTerminal: true openDirInEditor: myeditor {{dir}}命令模板必须包含{{filename}}editAtLine类命令可以包含{{line}}。editInTerminal决定 lazygit 在调用编辑器前是否把自己挂起到后台。它“本名”应该是suspend——某些场景如从 neovim 会话内启动、使用nvim-remote预设技术上仍然处于终端里但为向后兼容仍叫editInTerminal。如果你的编辑器在终端内运行应设为trueGUI 编辑器如 vscode、sublime则不需要挂起。验证配置是否生效保存配置后重启 lazygit然后进入 staging panel暂存面板把光标放到一个 hunk 上按e。按文档描述e从 staging panel 等位置触发时会跳转到文件中的正确行。如果外部编辑器打开了文件并定位到该行说明editPreset或你手写的editAtLine命令已生效。另外可以用o对比一下o只是像双击文件一样打开不支持{{line}}不会跳到指定行——这也是两者行为差异的验证方式。限制与边界editPreset一次只能取一个值想为不同仓库用不同编辑器时用仓库级repo/.git/lazygit.yml覆盖全局配置。nvim-remote是实验性预设只有 lazygit 运行在 neovim 进程内部时才有意义。新增编辑器预设的入口是 pkg/config/editor_presets.go 中的getPreset函数文档说明欢迎贡献新预设但使用前请先确认你环境中的 lazygit 版本已包含该预设。覆盖默认配置文件位置的方式见 docs/Config.md 的 “Overriding default config file location” 一节用CONFIG_DIR环境变量改目录用--use-config-file参数或LG_CONFIG_FILE环境变量改具体文件。【免费下载链接】lazygitsimple terminal UI for git commands项目地址: https://gitcode.com/GitHub_Trending/la/lazygit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表