vim fzf将选中的单词作为--query参数

问题描述 投票:1回答:1

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

但是,用视觉模式中选择的单词替换/tmp/boulou并将其绑定到vmap。

你有想法帮助我吗?

谢谢,亲切的问候

vim fzf
1个回答
1
投票

相对于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>
© www.soinside.com 2019 - 2024. All rights reserved.