我知道如何打开 fzf.vim,但我想从终端打开。
grepping history 或 viminfo 可能会实现,但我想知道是否有任何聪明的方法。
这是您可以将最近文件列表保存vim
到文件中的方法:
vim -c "call append(0, v:oldfiles)" -c "write vim-oldfiles.tmp" -c exit
将v:oldfiles
(保存在 中的最近文件列表~/.viminfo
)放入第一个(新的并且在开始时为空)缓冲区,将缓冲区写入文件,退出。
现在您可以将文件的内容传递给fzf
.
我有一个名为 old 的 zsh 自动加载函数:
function old(){
vim -c 'redir >> /tmp/oldfiles.txt | silent oldfiles | redir end | q'
sed -i '/NvimTree$/d' /tmp/oldfiles.txt
local fname
fname=$(awk '/home/ && !/man:/ {print $2}' /tmp/oldfiles.txt | fzf) || return
vim "$fname"
\rm /tmp/oldfiles.txt
}
如果~
由于 fzf 和 vim 不扩展波浪号 ( ~
) 而对路径中的文件执行 vim 时遇到问题(vim 打开一个新的空白文件而不是所需的文件),我是这样做的:
export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS"
--bind 'ctrl-e:execute(vim -c \"execute \\\"edit\\\" expand({})\" >/dev/tty)'
"
这是基于此的反复试验。
不是确切的解决方案。但是您可以像 IDE 一样在 vim 编辑的下部打开一个终端缓冲区并使用您的终端 fzf
但是,不确定这是否会让您在新的 vim 选项卡中打开文件