3

我知道如何打开 fzf.vim,但我想从终端打开。

grepping history 或 viminfo 可能会实现,但我想知道是否有任何聪明的方法。

4

4 回答 4

2

这是您可以将最近文件列表保存vim到文件中的方法:

vim -c "call append(0, v:oldfiles)" -c "write vim-oldfiles.tmp" -c exit

v:oldfiles(保存在 中的最近文件列表~/.viminfo)放入第一个(新的并且在开始时为空)缓冲区,将缓冲区写入文件,退出。

现在您可以将文件的内容传递给fzf.

于 2020-02-01T16:06:58.797 回答
0

我有一个名为 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
}
于 2022-01-18T00:59:20.523 回答
0

如果~由于 fzf 和 vim 不扩展波浪号 ( ~) 而对路径中的文件执行 vim 时遇到问题(vim 打开一个新的空白文件而不是所需的文件),我是这样做的:

export FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS"
--bind 'ctrl-e:execute(vim -c \"execute \\\"edit\\\" expand({})\" >/dev/tty)'
"

这是基于的反复试验。

于 2021-12-31T20:55:58.087 回答
0

不是确切的解决方案。但是您可以像 IDE 一样在 vim 编辑的下部打开一个终端缓冲区并使用您的终端 fzf

但是,不确定这是否会让您在新的 vim 选项卡中打开文件

于 2020-02-01T14:55:19.393 回答