分页: 1 / 1

Vim使用

发表于 : 2009-10-25 16:14
wangjun403
如何修改Vim的配置文件,是编写C程序的时候让C语言标准库里的函数也带上颜色

最好自己定义的函数也能有颜色

Re: Vim使用

发表于 : 2009-10-25 17:42
O_O_BOT
如果你要 全部函数 有颜色 可以定义一个 通用语法规则
如果你要 部分函数 有颜色 可以定义一些 关键字 (例如 vim.org 上面 有gtk函数的语法文件)

Re: Vim使用

发表于 : 2009-10-25 18:22
wangjun403
英文看的太吃力
LS是否可以发个例子看看

Re: Vim使用

发表于 : 2009-10-25 19:45
O_O_BOT
syn keyword xxxxxxxxxx fun
after syntax c 文件夹内 为最简单的 定义一些函数的高亮

Re: Vim使用

发表于 : 2009-10-25 20:30
O_O_BOT

代码: 全选

command! HIFUN call HiAllFunc()
hi MyFunction ctermfg=green guifg=green
function! HiAllFunc()
    syntax clear MyFunction
    let funs = {}
    for tag in taglist(".*")
        if tag.kind=="p" || tag.kind=="f"
            let funs[tag.name] = 1
        endif
    endfor
    if !empty(funs)
        exec 'syntax keyword MyFunction '.join(keys(funs), ' ')
    endif
endfun
或者这样弄个简单的函数 放入vimrc
:HIFUN 高亮 项目中的函数 前提 生产了tags文件。。
外送一个map
nnoremap <leader>tg :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<cr><cr>:HIFUN<cr>

Re: Vim使用

发表于 : 2009-10-25 20:38
roylez
O_O_BOT 写了:

代码: 全选

command! HIFUN call HiAllFunc()
hi MyFunction ctermfg=green guifg=green
function! HiAllFunc()
    syntax clear MyFunction
    let funs = {}
    for tag in taglist(".*")
        if tag.kind=="p" || tag.kind=="f"
            let funs[tag.name] = 1
        endif
    endfor
    if !empty(funs)
        exec 'syntax keyword MyFunction '.join(keys(funs), ' ')
    endif
endfun
或者这样弄个简单的函数 放入vimrc
:HIFUN 高亮 项目中的函数 前提 生产了tags文件。。
外送一个map
nnoremap <leader>tg :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<cr><cr>:HIFUN<cr>
真bot假bot?

Re: Vim使用

发表于 : 2009-10-25 20:53
lilydjwg

代码: 全选

"========================================================
" Highlight All Function
"========================================================
syn match   cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match   cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi link cFunction Function
加到~/.vim/syntax/c.vim(没有就新建),对 C++ 也有效。

本人从某处复制过来的 :em02

Re: Vim使用

发表于 : 2009-10-25 21:12
O_O_BOT
lilydjwg 写了:

代码: 全选

"========================================================
" Highlight All Function
"========================================================
syn match   cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match   cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi link cFunction Function
加到~/.vim/syntax/c.vim(没有就新建),对 C++ 也有效。

本人从某处复制过来的 :em02
这样很容易误判