标签: fzf

FZF最新文件的工作解决方案在Vim?

我在为FZF vim插件中的最新文件找到合适的解决方案时遇到问题.

这个插件应具有以下功能:

  • 显示在当前vim会话中打开的文件(如缓冲区)
  • 过滤NERD_tree,逃犯等文件

我试过两个解决方案

command! FZFMru call fzf#run({
\ 'source':  reverse(s:all_files()),
\ 'sink':    'edit',
\ 'options': '-m --no-sort -x',
\ 'down':    '40%' })

function! s:all_files()
  return extend(
  \ filter(copy(v:oldfiles),
  \        "v:val !~ 'fugitive:\\|\\.svg|NERD_tree\\|^/tmp/\\|.git/'"),
  \ map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), 'bufname(v:val)'))
endfunction
Run Code Online (Sandbox Code Playgroud)

这个在打开会话期间工作,但是当我重新启动vim时,我没有看到所有上次打开的文件.

command! FZFMru call s:fzf_wrap({
    \'source':  'bash -c "'.
    \               'echo -e \"'.s:old_files().'\";'.
    \               'ag -l -g \"\"'.
    \           '"',
    \})

function! s:fzf_wrap(dict)
    let defaults = {
    \'sink' : 'edit',
    \'options' : '+s -e -m',
    \'tmux_height': '40%',
    \}
    call …
Run Code Online (Sandbox Code Playgroud)

vim mru vim-plugin neovim fzf

18
推荐指数
2
解决办法
3712
查看次数

只有在ZLE处于活动状态时才能调用小部件

我已经处理了这个问题差不多一个月了,我感到很沮丧,任何帮助都会非常感激.

我正在尝试为我的takenote命令编写一个小部件.小部件的目的是将文件~/notes夹中的所有markdown文件提供fzf给用户,以便用户可以选择其中一个并开始编辑它.在用户输入takenote并按下之后,<tab>我希望小部件能够运行.

这是_takenote.zsh小部件定义:

#compdef takenote
local file=$( find -L "$HOME/notes/" -print 2> /dev/null | fzf-tmux +m )
zle reset-prompt
compadd $file
return 1
Run Code Online (Sandbox Code Playgroud)

不幸的是,上面的代码不起作用,因为zle reset-prompt,如果我删除它然后结果将是这样的:

在选择之前

选择文件后,它将变成:

选择文件后

如您所见,将破坏提示和命令本身.在我看来,我需要做的是zle reset-prompt 在调用之前做一个compadd但这只有在我将函数绑定到一个键时才能工作,否则,我将得到以下错误:

只有在ZLE处于活动状态时才能调用小部件

zsh widget completion fzf zsh-zle

18
推荐指数
2
解决办法
914
查看次数

如何解决 fzf 的 CTRL-t 键绑定问题?

我最近发现了这个名为fzf的命令行工具。我按照说明安装了它,它确实有效,除了CTRL-T键绑定之外。尽管如此,我按照他们的说明安装了带有键绑定的特殊内容,并且我还尝试安装从 git 存储库下载的 fzf,而不是通过自制程序,所有CTRL-T键绑定仍然是交换最后两个字符。

我找到了有关问题的讨论,但所提供的答案都不适合我。

编辑:您可以在第一个视频中看到我想要实现的目标。编辑2:我正在使用MacOs 的终端。

terminal homebrew command-line fzf

17
推荐指数
2
解决办法
2万
查看次数

如何从与当前工作目录不同的目录启动 fzf?

我经常用来fzf导航文件系统,尤其是 Alt-c 键绑定。

调用时,fzf从当前工作目录生成一个列表。

是否可以fzf从指定目录生成列表?

我已经尝试过fzf <dir>,但它会导致错误(未知选项)。另外,我找不到任何选项,例如-C <dir>指定起始目录。

filesystems directory bash fzf vim-fzf

13
推荐指数
3
解决办法
1万
查看次数

如何让 fzf.vim 忽略 node_modules 和 .git 文件夹?

我在 vim 中设置了 fzf,几乎没有任何自定义:

" fzf and ripgrep settings
set rtp+=/usr/local/opt/fzf
let g:fzf_action = {
    \ 'ctrl-t': 'tab split',
    \ 'ctrl-i': 'split',
    \ 'ctrl-s': 'vsplit'
    \ }
Run Code Online (Sandbox Code Playgroud)

在我的 中.bash_profile,我将环境变量设置FZF_DEFAULT_COMMAND为显示隐藏,但忽略node_modules.git

export FZF_DEFAULT_COMMAND='rg --files --follow --no-ignore-vcs --hidden -g "!{node_modules/*,.git/*}"'
Run Code Online (Sandbox Code Playgroud)

但是,当我:Files在 vim 中使用函数时,它仍然在我想忽略的文件夹中搜索。

vim fzf

12
推荐指数
4
解决办法
9886
查看次数

fzf.vim 动态更改工作目录

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

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

在此处输入图片说明

vim fuzzy-search fzf vim-fzf

10
推荐指数
1
解决办法
3862
查看次数

如何使用模糊查找器获得git的分支?

用fzf(模糊查找器)找到了git示例,它们确实很好用.喜欢:

# fbr - checkout git branch
fbr() {
  local branches branch
  branches=$(git branch -vv) &&
  branch=$(echo "$branches" | fzf +m) &&
  git checkout $(echo "$branch" | awk '{print $1}' | sed "s/.* //")
}

# fbr - checkout git branch (including remote branches)
fbr() {
  local branches branch
  branches=$(git branch --all | grep -v HEAD) &&
  branch=$(echo "$branches" |
           fzf-tmux -d $(( 2 + $(wc -l <<< "$branches") )) +m) &&
  git checkout $(echo "$branch" …
Run Code Online (Sandbox Code Playgroud)

bash command-line fuzzyfinder fzf

8
推荐指数
2
解决办法
1316
查看次数

如何使用 ripgrep 和 fzf 模糊查找包含特定文本的所有文件并打开它 VSCode

我有以下命令可以在命令行中模糊查找文件并在 VSCode 中打开所选文件:

fzf --print0 -e | xargs -0 -r code
Run Code Online (Sandbox Code Playgroud)

现在我希望能够在文件内容中搜索字符串。我可以在命令行中找到搜索的字符串:

rg . | fzf --print0 -e
Run Code Online (Sandbox Code Playgroud)

vscode_console_ripgrep_fzf_string_search.png

但现在使用以下命令在 VSCode 中打开文件不再起作用:

rg . | fzf --print0 -e | xargs -0 -r code
Run Code Online (Sandbox Code Playgroud)

因为 VSCode 传递了一个文件名,其中包含文件名本身和搜索字符串(当然是一个空文件)。

如何组合上述两个命令将文件名传递给包含搜索字符串的 VSCode?

command-line xargs visual-studio-code fzf ripgrep

8
推荐指数
1
解决办法
1万
查看次数

是否可以在 Windows 10 git-bash 中使用 fzf(命令行模糊查找器)?

我下载了 .exe 文件并将其放入我的 PATH 变量中。fzf似乎在命令提示符下工作。但我想在 git-bash 中使用它。当我fzf在 git-bash 中使用时,它似乎开始了,但没有任何反应。

任何意见将是有益的。我试图为自己节省一些按键。

windows bash fuzzy-search git-bash fzf

8
推荐指数
1
解决办法
2729
查看次数

如何从 FZF 在特定应用程序中打开文件

我想使用FZF搜索文件,然后在我选择的编辑器(例如 Sublime、Atom)中打开它们。我不知道如何为此配置我的 shell,我已经尝试了以下方法,但无法让它工作。

你能帮我吗?

谢谢!

fe() {
local files
  IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
  [[ -n "$files" ]] && ${EDITOR:-atom} "${files[@]}"
}
Run Code Online (Sandbox Code Playgroud)

macos shell terminal fzf

7
推荐指数
1
解决办法
5864
查看次数