Vim使用

sh/bash/dash/ksh/zsh等Shell脚本
回复
wangjun403
帖子: 433
注册时间: 2009-07-06 14:26

Vim使用

#1

帖子 wangjun403 » 2009-10-25 16:14

如何修改Vim的配置文件,是编写C程序的时候让C语言标准库里的函数也带上颜色

最好自己定义的函数也能有颜色
生命只不过是上帝借你一用的资本!
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: Vim使用

#2

帖子 O_O_BOT » 2009-10-25 17:42

如果你要 全部函数 有颜色 可以定义一个 通用语法规则
如果你要 部分函数 有颜色 可以定义一些 关键字 (例如 vim.org 上面 有gtk函数的语法文件)
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
wangjun403
帖子: 433
注册时间: 2009-07-06 14:26

Re: Vim使用

#3

帖子 wangjun403 » 2009-10-25 18:22

英文看的太吃力
LS是否可以发个例子看看
生命只不过是上帝借你一用的资本!
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: Vim使用

#4

帖子 O_O_BOT » 2009-10-25 19:45

syn keyword xxxxxxxxxx fun
after syntax c 文件夹内 为最简单的 定义一些函数的高亮
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: Vim使用

#5

帖子 O_O_BOT » 2009-10-25 20:30

代码: 全选

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>
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

Re: Vim使用

#6

帖子 roylez » 2009-10-25 20:38

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?
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: Vim使用

#7

帖子 lilydjwg » 2009-10-25 20:53

代码: 全选

"========================================================
" 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
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: Vim使用

#8

帖子 O_O_BOT » 2009-10-25 21:12

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
这样很容易误判
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
回复