如何将neww列表.h和.c文件组合成对?

时间:2015-09-30 18:14:41

标签: vim netrw

可以netrw:E将.h和.c文件一起显示为一对吗?

例如:

file1.h
file1.c
file2.h
file2.c
file3.h
file3.c

目前我的netrw:E按此顺序列出文件:

file1.h
file2.h
file3.h
file1.c
file2.c
file3.c

1 个答案:

答案 0 :(得分:4)

根据我对:h netrw-sort-sequence的理解,默认情况下g:netrw_sort_sequence设置会将.h个文件优先于.c个文件。

您可以将以下内容添加到vimrc文件中以更改默认行为:

let g:netrew_sort_sequence = '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$'

注意:缺少.h.c扩展名。

除了关于切换文件

除了使用像netrw aka :Explore这样的文件浏览器之外,还有很多(我认为更好)在文件之间切换的方法。仅举几例:

  • 模糊查找器,例如CtrlP
  • Projectionist用于结构良好的项目
  • 使用:find'path'
  • 使用%表示当前文件。请参阅:h :_%
  • 使用<tab>完成(以及<c-d>:e(也接受全局)

对于C项目,你有一些不错的.c&lt; - &gt; .h切换选项。

<强>插件

切换像fswitch这样的插件,这是一个C / C ++ .h / .c切换器。有关详细信息,请参阅:h fswitch-setup

还有一些其他插件可以执行类似的操作:altra.vim,仅举几例。

Vanilla Vim

如果插件不是你的东西,那么你可以使用%技巧。例如:sp %<.h

或许是一个快速而肮脏的映射:

nnoremap <f4> :e %:p:s,.h$,.X123X,:s,.c$,.h,:s,.X123X$,.c,<cr>

有关更多信息,请参阅以下vim wiki页面:Easily switch between source and header file