Vim-go插件有一个:GoFile函数来显示依赖于当前包的源文件。输出如下:
['/home/tretkow/tut/main.go', '/home/tretkow/tut/test.go']
如何从列表中打开文件?
答案 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>