vim-go:如何打开GoFiles返回的文件

时间:2014-11-04 10:48:13

标签: vim go

Vim-go插件有一个:GoFile函数来显示依赖于当前包的源文件。输出如下:

['/home/tretkow/tut/main.go', '/home/tretkow/tut/test.go']

如何从列表中打开文件?

1 个答案:

答案 0 :(得分:1)

:GoFiles仅回显go#tool#Files()的输出。

从您的代码段的外观来看,应该可以使用以下内容提取文件名:

:e <C-r>=go#tool#Files()[0]<CR>

或将该列表放在暂存缓冲区中:

:vnew<CR>
:0put=join(go#tool#files(), '\r')<CR>

/home/tretkow/tut/main.go
/home/tretkow/tut/test.go

并使用gf跳转到光标下的文件。


这是一个更复杂的解决方案::GoFile命令允许您从:GoFiles命令中选择要通过自定义选项卡完成进行编辑的文件。

" the command
command! -nargs=1 -complete=customlist,GoFilesComplete GoFile call GoFile(<f-args>)

" the completion function
function! GoFilesComplete(ArgLead, CmdLine, CursorPos)
    return filter(go#tool#Files(), 'v:val =~ a:ArgLead')
endfunction

" the :edit wrapper
function GoFile(file)
    execute "edit " . a:file
endfunction

用法:

:GoFile <Tab>