在我的情况下,是否有一个等同于z跳转的终端编辑器打开大多数编辑过的文件,如vim ?我已经浏览了GitHub,但找不到任何东西。
Vim记住v:oldfiles
最近打开的文件,这些文件是从~/.viminfo
文件中加载的。
自定义完成
使用fzf和custom-fuzzy-completion,我们可以更自然地从历史中搜索文件,比如vim **<TAB>
,后面跟着
# Custom fuzzy completion for "vim" command
# e.g. vim **<TAB>
_fzf_complete_vim() {
_fzf_complete --multi --reverse --prompt="vim> " -- "$@" < <(
cat ~/.viminfo | grep '^>' | sed 's/^> //'
)
}
在zsh
中你很好。在bash
中,您必须手动调用complete
命令。
[ -n "$BASH" ] && complete -F _fzf_complete_vim -o default -o bashdefault vim
正如文档所说,自定义补全API是实验性的,可能会更改。
使用新命令的前一个答案
例如,我们可以从它读取历史记录,并使用fzf搜索文件,如下所示
#!/bin/bash
file=$(cat ~/.viminfo | grep '^>' | sed 's/^> //' | fzf)
file=${file/#~/$HOME}
if [ ! -z "$file" ]; then
vim $file
fi
- .viminfo阅读。获取打开的文件列表。传递给
fzf
- 将
~
替换为$HOME
(Vim不会在file参数中扩展~
) - 如果文件不为空则打开
可以另存为vim-history.sh
,在终端中运行。