这是一款vim插件,用于头文件和源文件间快速切换。注:在a.vim插件基础上修改的。
- 支持多种语言(所有具备头文件的语言),主要支持为c, cpp, objective-c, objective-cpp等
- 支持绝对路径进行查找
- 支持源文件为基准的相对路径查找
- 支持regex替换路径
- 支持自定义项目目录,批量初始化目录后使用(推荐)
可以直接克隆下来丢在vim的插件目录,但我推荐用插件管理器进行管理,下面是各种插件管理器:
- Pathogen
git clone https://github.com/liwangmj/green_vim_switchtoinc.git ~/.vim/bundle/green_vim_switchtoinc
- vim-plug
Plug 'liwangmj/green_vim_switchtoinc'
- NeoBundle
NeoBundle 'liwangmj/green_vim_switchtoinc'
- Vundle
Plugin 'liwangmj/green_vim_switchtoinc'
:A
:AV
:AS
:AN
:SearchIncAndSrcPath
需要设置源文件和头文件的查找目录,通过 g:alternateSearchPath
来设置。
let g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc'
let g:alternateSearchPath = 'abs:/home/my/myporject/inc,abs:/home/my/myproject/src'
let g:alternateSearchPath = 'reg:/inc/src/g/, reg:/src/inc/g/'
- 先设置项目的根目录(例子):
let g:iSearchProjectPath = '/home/my/myproject'
let g:iSearchPathName = [
\'src', 'Src', 'SRC',
\'inc', 'Inc', 'INC',
\'source', 'Source', 'SOURCE',
\'include', 'Include', 'INCLUDE',
\'my_inc', 'my_inc'
\]
- 再调用
SearchIncAndSrcPath
进行初始化查找目录:
:SearchIncAndSrcPath
-
然后可以用
:A
:AV
:AS
进行切换了。 -
最后说一下,最新版本更新:
-
第一次调用
:A
:AV
:AS
,插件内部会自动执行一次SearchIncAndSrcPath
,只需直接切换即可,不用单独执行。 -
另外,如果在使用vim过程中相关文件目录有更改,可以通过执行一次
SearchIncAndSrcPath
来更新,但值得注意的是:之前打开过的文件切换信息由于存在缓存无法更新,需要重启vim才能生效!
-
autocmd FileType c,cpp,objc,objcpp nmap <silent> <F4> :wall<CR>:A<CR>
autocmd FileType c,cpp,objc,objcpp nmap <silent> <C-F4> :wall<CR>:AV<CR>
autocmd FileType c,cpp,objc,objcpp nmap <silent> <S-F4> :wall<CR>:AS<CR>
autocmd FileType c,cpp,objc,objcpp nmap <silent> <Leader>an :wall<CR>:AN<CR>
autocmd FileType c,cpp,objc,objcpp nmap <silent> <Leader>as :wall<CR>:SearchIncAndSrcPath<CR>
欢迎使用,祝使用愉快