首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fzf.vim动态更改工作目录

fzf.vim动态更改工作目录
EN

Stack Overflow用户
提问于 2019-11-30 06:52:35
回答 2查看 4.5K关注 0票数 11

当我在fzf.vim中使用:Files时,它会搜索当前目录和子目录中的文件。当前工作目录是固定的。在下面的屏幕截图中,它是浅蓝色的。有没有办法动态改变运行FZF的工作目录?例如,如果我只删除“文档”路径,那么FZF从~开始,而不是~/Documents。

这样的功能在Emacs helm包中是可能的,它允许通过helm-execute-persistent-action实现这一点。

EN

回答 2

Stack Overflow用户

发布于 2019-12-01 00:56:27

您可以使用:chdir或熟悉的:cd命令更改vim当前正在使用的工作目录。有关详细信息,请参阅:h cd

如果你不想改变vim的工作目录,只想让fzf使用一个不同的目录,你可以使用一个定制的dir选项来运行fzf (:h fzf#run)。

这是我的~/.vimrc中的一个示例映射,用于打开/.vim目录中的文件:

代码语言:javascript
复制
nnoremap <leader>fv :call fzf#run({'options': '--reverse --prompt "VimFiles"', 'down': 20, 'dir': '~/.vim/', 'sink': 'e' })<CR>

对于动态路径,您添加了一个将路径作为参数的命令,请确保将完成作为文件用于完成路径的制表符。有关文件完成的更多信息,请参阅此answer

sink选项告诉在找到匹配项时要做什么/执行什么。e用于编辑主窗口。

票数 8
EN

Stack Overflow用户

发布于 2020-09-29 18:49:21

这是不可能的。同时,作者提出了一种变通方法。看看这里:

如果你理解了fzf到底是什么以及它是如何工作的(它是一个运行在Vim之外的通用的、上下文无关的文本过滤器),你就会意识到我们不能用fzf轻松地实现它。但是您可以尝试使用--expect选项或reload绑定。我认为这是我们目前所能做的最好的事情:

“在CTRL-P上重新加载源。需要fd命令。函数!Foo(dir)让tf = tempname()调用writefile(‘.,tf)调用fzf#vim#files(a:dir,{'source':' fd ','options':'--bind',printf(’ctrl-p:reload:base=“$(cat%s)”/..;echo "$base“> %s;fd.."$base"',外壳转义(Tf),外壳转义(Tf)}) endfunction命令!-nargs=* Foo调用Foo()

https://github.com/junegunn/fzf.vim/issues/338#issuecomment-623087034

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59111740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档