尝试过nvim
的人应该都对 telescope 这种文件查询风格很喜欢,当在输入时能自动进行重新查询,并通过上下键进行翻阅
我目前在使用另一款编辑器 Zed,它目前内置的查询并无法做到类似的操作。但通过内置的 Terminal+fzf+bat+rg 也能做到类似的效果
git 链接:https://l.ruby-china.com/photo/qinsicheng/8bebe536-17bd-4da9-8569-f554773e9533.gif 帖子里看没有打开成功
fish function
function search_and_edit
# 使用rg进行文件搜索,并使用fzf进行预览
set -l selected_file (rg --column --hidden --line-number --no-heading --color=always --smart-case --glob '!**/.git/' --glob '!**/node_modules/' . | fzf --ansi --delimiter : --preview 'bat --style=numbers,changes,header --color=always --highlight-line {2} {1}' --preview-window 'up:60%:+{2}+3/3' --layout=reverse)
# 如果选择了文件,提取文件路径、行号和列号
if test -n "$selected_file"
set -l file (echo $selected_file | cut -d':' -f1)
set -l line (echo $selected_file | cut -d':' -f2)
set -l col (echo $selected_file | cut -d':' -f3)
# 使用Zed编辑器打开文件
zed $file:$line:$col
end
end
Zed keymap
{
"context": "Editor && vim_mode == normal && !VimWaiting && !menu",
"bindings": {
"space f": [
"workspace::SendKeystrokes",
// 在页面上打开Terminal,执行 search_and_edit(我定义的脚本),执行结束后关闭
": new center terminal enter search_and_edit space && space exit enter"
]
}
}
这样通过快捷键就能快速打开进行查询,同时可以看到这种方式主要依赖于 Terminal,所以应该能很容易改到其他编辑器中。
另外让人很兴奋的一点,通过这种方式也能将lazygit
通过相同的方式进行使用,因为现在 zed 的 git 工具并不完善。