[英]fzf.vim changing working directory on the fly
您可以使用:chdir
或熟悉的:cd
命令更改 vim 当前正在使用的当前工作目录。 有关更多信息,请参阅:h cd
。
如果您不想更改 vim 的工作目录而只想 fzf 使用不同的目录,您可以使用自定义dir
选项运行 fzf ( :h fzf#run
)。
这是我在~/.vimrc
一个示例映射,用于在我的/.vim
目录中打开一个文件:
nnoremap <leader>fv :call fzf#run({'options': '--reverse --prompt "VimFiles"', 'down': 20, 'dir': '~/.vim/', 'sink': 'e' })<CR>
对于动态路径,您添加一个将路径作为参数的命令,确保使用完成作为文件来完成路径的制表符。 有关文件完成的更多信息,请参阅此答案。
sink
选项告诉在找到匹配项时要做什么/执行什么。 e
用于编辑主窗口。
这不可能。 同时,作者提出了一种解决方法。 看看这里:
如果您了解 fzf 究竟是什么以及它是如何工作的(它是一个在 Vim 之外运行的通用的、上下文无关的文本过滤器),您就会意识到它不是我们可以用 fzf 轻松实现的。 但是您可以尝试使用
--expect
选项或reload
绑定。 我认为这是我们目前能做的最好的事情:" Reloading source on CTRL-P. Requires fd command. function! Foo(dir) let tf = tempname() call writefile(['.'], tf) call fzf#vim#files(a:dir, {'source': 'fd', 'options': ['--bind', printf('ctrl-p:reload:base="$(cat %s)"/..; echo "$base" > %s; fd . "$base"', shellescape(tf), shellescape(tf))]}) endfunction command! -nargs=* Foo call Foo(<q-args>)
https://github.com/junegunn/fzf.vim/issues/338#issuecomment-623087034
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.