Mah*_*esh 1 vim macros conditional-compilation
我使用vim/cscope/ctags来浏览C源代码.很多次我发现使用#ifdefs 定义宏是两次甚至更多次,我正在查看我不想要的定义.
所以我的问题是,在vim中是否有任何快捷方式,如果我正在查看的行是在#ifdef宏内,我可以找到它?
我可以使用所有定义的列表,:tselect但我正在寻找一些快捷方式,例如我用于查找我所在功能的一个(下面的示例).
" Show function name
fun! ShowFuncName()
let lnum = line(".")
let col = col(".")
echohl ModeMsg
echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW'))
echohl None
call search("\\%" . lnum . "l" . "\\%" . col . "c")
endfun
map f :call ShowFuncName() <CR>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我发现,在我的日常使用中,以下绰绰有余
]#
在当前#if*条件块的分支之间来回导航
%到相同的同时之间循环上的条件块的预处理器指令线中的一个
我有时发现自己添加了一个折叠addhoc:
我刚试过它
#ifdef BLA
#if BLO == 1
#include <something>
#else
#pragma error "oops"
#endif
#elifdef BLU
#include <something_else>
#endif
Run Code Online (Sandbox Code Playgroud)
嵌套条件之间没有混淆,也没有非条件指令.我也发现它不依赖于filetype(或者,文本的filetype插件也支持它:))
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |