vim fzf 获取选定的单词作为 --query 参数

标签 vim fzf

我实际上正在搜索以在 vim 中使用 :FZF 进行模糊搜索,但是使用这样的参数 :FZF -q/tmp/boulou

但是,将 /tmp/boulou 替换为在可视模式下选择的单词,并将其绑定(bind)到 vmap。

你有什么想法可以帮助我吗?

谢谢,亲切的问候

最佳答案

根据 xolox answer ,您可以像这样创建映射:

function! s:getVisualSelection()
    let [line_start, column_start] = getpos("'<")[1:2]
    let [line_end, column_end] = getpos("'>")[1:2]
    let lines = getline(line_start, line_end)

    if len(lines) == 0
        return ""
    endif

    let lines[-1] = lines[-1][:column_end - (&selection == "inclusive" ? 1 : 2)]
    let lines[0] = lines[0][column_start - 1:]

    return join(lines, "\n")
endfunction

vnoremap <silent><leader>f <Esc>:FZF -q <C-R>=<SID>getVisualSelection()<CR><CR>

请记住,它仅适用于单词选择。它不适用于包含制表符的多行或选择。您只需要调用函数而不是命令,但由于我没有安装 fzf,您必须自己执行此操作。

如果您需要搜索光标下的单词(在正常模式下):

nnoremap <silent><leader>f :FZF -q <C-R>=expand("<cword>")<CR><CR>

关于vim fzf 获取选定的单词作为 --query 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47994025/

相关文章:

vim - 您如何在带有 FASD 和 FZF 的 VIM 中使用外部导航?

vim - 如何在 VIM 中的每个注释(例如 "#")之前插入一个空行?

python - vim python-mode 中的自动滚动输出

Vim nerdtree 无法打开文件

windows - Vim 在文件名中使用带空格的 gf

shell - 将命令输出放入 shell 中以供进一步编辑

bash - 在终端中获取 fzf 的输出而不执行它

bash - 将bash转换为fish函数(在fish中使用rga-fzf)

bash - 如何使用 fzf 只搜索目录?

save - 进行一定数量的更改时自动保存