在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
================================ 先上两个截图
# 安装ctags
附录1 .vimrc "===================通用配置====================== "文件搜索路径 set path=.,/usr/include,, " 控制 set nocompatible "关闭vi兼容 filetype off "关闭文件类型侦测,vundle需要 set fileencodings=utf-8,gbk "使用utf-8或gbk编码方式 syntax on "语法高亮 set backspace=2 "退格键正常模式 set whichwrap=<,>,[,] "当光标到行首或行尾,允许左右方向键换行 set autoread "文件在vim外修改过,自动重载 set nobackup "不使用备份 set confirm "在处理未保存或只读文件时,弹出确认消息 set scrolloff=3 "光标移动到距离顶部或底部开始滚到距离 set history=1000 "历史记录数 set mouse= "关闭鼠标 set selection=inclusive "选择包含最后一个字符 set selectmode=mouse,key "启动选择模式的方式 set completeopt=longest,menu "智能补全,弹出菜单,无歧义时才自动填充 set noswapfile "关闭交换文件 set hidden "允许在有未保存的修改时切换缓冲区 "显示 colorscheme mycolor "选择配色方案 set t_Co=256 "可以使用的颜色数目 set number "显示行号 set laststatus=2 "显示状态行 set ruler "显示标尺 set showcmd "显示输入的命令 set showmatch "高亮括号匹配 set matchtime=1 "匹配括号高亮的时间(十分之一秒) set matchpairs={:},(:) "匹配括号"{}""()" set hlsearch "检索时高亮匹配项 set incsearch "边检索边显示匹配 set go-=T "去除gvim的toolbar "格式 set noexpandtab "不要将tab转换为空格 set shiftwidth=4 "自动缩进的距离,也是平移字符的距离 set tabstop=4 "tab键对应的空格数 set autoindent "自动缩进 set smartindent "智能缩进 "===================按键映射====================== "按键映射的起始字符 let mapleader = '\' "使用Ctrl-l 和 Ctrl+h 切换标签页 nnoremap <C-l> gt nnoremap <c-h> gT "在行末加上分号 nnoremap <silent> <Leader>; :<Esc><End>a<Space>;<Esc><Down> "保存 nnoremap <C-s> :w<CR> "替换 nnoremap <C-h> :%s/<C-R>=expand("<cword>")<CR>/<C-R>=expand("<cword>")<CR> "===================插件管理====================== " 下载vundle " git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim " 下载pathogen " curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim " 将vundle加入到runtime path set rtp+=~/.vim/bundle/Vundle.vim " 下载到bundle目录的插件 call vundle#begin() " plugin on GitHub repo Plugin 'VundleVim/Vundle.vim' Plugin 'scrooloose/nerdtree' Plugin 'Lokaltog/vim-powerline.git' Plugin 'wincent/command-t' Plugin 'Valloric/YouCompleteMe' Plugin 'tomtom/tlib_vim' Plugin 'tomtom/viki_vim' " plugin from http://vim-scripts.org/vim/scripts.html Plugin 'taglist.vim' Plugin 'EasyGrep' " Git plugin not hosted on GitHub " Plugin 'git://...' " git repos on your local machine " Plugin 'file://...' call vundle#end() filetype plugin indent on " required "===================插件配置====================== "-----pathogen----- execute pathogen#infect() "-----NERDTree----- let g:NERDTreeCaseSensitiveSort = 1 let g:NERDTreeWinSize = 25 let g:NERDTreeWinPos = "right" nnoremap <silent> <Leader>t :NERDTreeToggle<CR> nnoremap <silent> <Leader>o :NERDTreeFind<CR> "-----Powerline----- set fillchars+=stl:\ ,stlnc:\ let g:Powerline_symbols = 'compatible' let g:Powerline_stl_path_style = 'filename' "只显示文件名 "-----Command-T----- let g:CommandTFileScanner = 'ruby' "使用ruby作为文件浏览器 let g:CommandTTraverseSCM = 'dir' "根目录为执行vim时所在的目录 "打开文件跳转 nnoremap <silent> <Leader>f :CommandT<CR> "-----taglist----- let Tlist_Show_One_File = 1 "只显示当前文件的taglist let Tlist_Exit_OnlyWindow = 1 "taglist是最后一个窗口时退出vim let Tlist_Use_Left_Window = 1 "在左侧窗口显示taglist let Tlist_GainFocus_On_ToggleOpen = 1 "打开taglist时,光标停在taglist窗口 let Tlist_Auto_Update = 1 "自动更新 " 打开标签浏览器 nnoremap <silent><Leader>dt :Tlist<CR> " 重新生成标签 nnoremap <silent><Leader>bt :!~/Myfiles/Tool/sh/ctags/hitags.sh<CR> " 高亮标签 nnoremap <silent><Leader>ht :so tags.vim<CR> "-----cscope----- "加载cscope库 if filereadable("cscope.out") cs add cscope.out endif set cscopequickfix=s-,c-,d-,i-,t-,e- "使用quickfix窗口显示结果 set cst "跳转时也使用cscope库 "打开引用窗口 nnoremap <silent><Leader>cw :cw<CR> "重新生成索引文件 nnoremap <silent><Leader>bc :!cscope -Rbq<CR> "s: 查找本C符号 "g: 查找本定义 "d: 查找本函数调用的函数 "c: 查找调用本函数的函数 "t: 查找本字符串 "e: 查找本egrep模式 "f: 查找本文件 "i: 查找包含本文件的文件 nnoremap <C-\>s :scs find s <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>g :scs find g <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>c :scs find c <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>t :scs find t <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>e :scs find e <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>f :scs find f <C-R>=expand("<cfile>")<CR><CR> nnoremap <C-\>i :scs find i <C-R>=expand("<cfile>")<CR><CR> nnoremap <C-\>d :scs find d <C-R>=expand("<cword>")<CR><CR> "-----YouCompleteMe----- let g:ycm_server_python_interpreter= '/usr/bin/python2' let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' "默认配置文件 let g:ycm_key_invoke_completion = '<C-Tab>' "跨文件补全 let g:ycm_confirm_extra_conf = 0 "关闭加载配置文件提示 let g:ycm_cache_omnifunc = 0 "关闭补全缓存 let g:ycm_enable_diagnostic_signs = 0 "关闭诊断提示符 let g:ycm_enable_diagnostic_highlighting = 1 "关闭诊断高亮 "let g:ycm_show_diagnostics_ui = 0 "关闭诊断ui let g:ycm_min_num_of_chars_for_completion = 3 "n字符开始自动补全 "获取变量类型 nnoremap <silent><Leader>yt :YcmCompleter GetType<CR> "跳转定义或声明 nnoremap <silent><Leader>yg :YcmCompleter GoTo<CR> "跳转包含文件 nnoremap <silent><Leader>yi :YcmCompleter GoToInclude<CR> "打开诊断信息 nnoremap <silent><Leader>yd :YcmDiags<CR> "-----EasyGrep----- let EasyGrepMode = 2 "根据文件类型搜索相应文件 let EasyGrepRecursive = 1 "递归搜索 let EasyGrepCommand = 1 "使用grep let EasyGrepJumpToMatch = 0 "不要跳转
附录2 mycolor.vim " Vim color file " Maintainer: Hans Fugal <[email protected]> " Last Change: $Date: 2004/06/13 19:30:30 $ " Last Change: $Date: 2004/06/13 19:30:30 $ " URL: http://hans.fugal.net/vim/colors/desert.vim " Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $ " cool help screens " :he group-name " :he highlight-groups " :he cterm-colors set background=dark if version > 580 " no guarantees for version 5.8 and below, but this makes it stop " complaining hi clear if exists("syntax_on") syntax reset endif endif let g:colors_name="desert" hi Normal guifg=White guibg=grey20 " highlight groups hi Cursor guibg=khaki guifg=slategrey "hi CursorIM "hi Directory "hi DiffAdd "hi DiffChange "hi DiffDelete "hi DiffText "hi ErrorMsg hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none hi Folded guibg=grey30 guifg=gold hi FoldColumn guibg=grey30 guifg=tan hi IncSearch guifg=slategrey guibg=khaki "hi LineNr hi ModeMsg guifg=goldenrod hi MoreMsg guifg=SeaGreen hi NonText guifg=LightBlue guibg=grey30 hi Question guifg=springgreen hi Search guibg=peru guifg=wheat hi SpecialKey guifg=yellowgreen hi StatusLine guibg=#c2bfa5 guifg=black gui=none hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none hi Title guifg=indianred hi Visual gui=none guifg=khaki guibg=olivedrab "hi VisualNOS hi WarningMsg guifg=salmon "hi WildMenu "hi Menu "hi Scrollbar "hi Tooltip " syntax highlighting groups hi Comment guifg=SkyBlue hi Constant guifg=#ffa0a0 hi Identifier guifg=palegreen hi Statement guifg=khaki hi PreProc guifg=indianred hi Type guifg=darkkhaki hi Special guifg=navajowhite "hi Underlined hi Ignore guifg=grey40 "hi Error hi Todo guifg=orangered guibg=yellow2 " color terminal definitions hi SpecialKey ctermfg=darkgreen hi NonText cterm=bold ctermfg=darkblue hi Directory ctermfg=darkcyan hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green hi Search cterm=NONE ctermfg=grey ctermbg=blue hi MoreMsg ctermfg=darkgreen hi ModeMsg cterm=NONE ctermfg=brown hi LineNr ctermfg=3 hi Question ctermfg=green hi StatusLine cterm=bold,reverse hi StatusLineNC cterm=reverse hi VertSplit cterm=reverse hi Title ctermfg=5 hi Visual cterm=reverse hi VisualNOS cterm=bold,underline hi WarningMsg ctermfg=1 hi WildMenu ctermfg=0 ctermbg=3 hi Folded ctermfg=darkgrey ctermbg=NONE hi FoldColumn ctermfg=darkgrey ctermbg=NONE hi DiffAdd ctermbg=4 hi DiffChange ctermbg=5 hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 hi DiffText cterm=bold ctermbg=1 hi Comment ctermfg=darkcyan hi Constant ctermfg=brown hi Special ctermfg=5 hi Identifier ctermfg=6 hi Statement ctermfg=3 hi PreProc ctermfg=5 hi Type ctermfg=2 hi Underlined cterm=underline ctermfg=5 hi Ignore cterm=bold ctermfg=7 hi Ignore ctermfg=darkgrey hi Error cterm=bold ctermfg=7 ctermbg=1 "vim: sw=4
附录3 c.vim "not wrap set nowrap if filereadable("tags.vim") so tags.vim endif hi cFunction guifg=LightGreen hi cMacro guifg=LightRed hi cGlobal guifg=LightBlue hi cMember guifg=LightMagenta hi def link cTypedef cType
附录4 htags.sh #!/bin/bash ctags -R --fields=+l ; awk -F '"' '$2 ~ /^\tf/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cFunction " $1}' 1> tags.vim ; awk -F '"' '$2 ~ /^\t[de]/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cMacro " $1}' 1>> tags.vim ; awk -F '"' '$2 ~ /^\tt/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cTypedef " $1}' 1>> tags.vim ; awk -F '"' '$2 ~ /^\tv/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cGlobal " $1}' 1>> tags.vim ;
附录5 .ycm_extra_conf.py import os flags = [ '-x', 'c', '-Wall', '-DOS=LINUX', '-I./mycode/igmpsnoop/h', '-I./mycode/mldsnoop/h', '-I./mycode/head_files', '-I./mycode/g8132/inc', '-I./mycode/nqa/inc', '-I./mycode/mplste/inc', '-I./mycode/mplsoam/inc', '-I./mycode/cli', '-I./mycode/trill/inc', '-I./mycode/igmpsnoop_onu/inc', '-I./mycode/hqos/inc', '-I./mycode/qos/inc', '-I./mycode/mplsqos/inc', '-I./mycode/pim/inc', '-I./USP_HEADFILE/protocol/acl/h', '-I./USP_HEADFILE/protocol/hwroute/h', '-I./USP_HEADFILE/protocol/uspIf/inc', '-I/home/taopeng/Workspace/vmware/linux_share/osal_linux/inc', '-I/home/taopeng/Workspace/vmware/linux_share/usp_linux3.12.17/inc' ] def MakeFinalFlag(): workDir = os.path.dirname(os.path.abspath(__file__)) finalFlags = [] for flag in flags: if flag.startswith('-I'): path = flag[len('-I'):] flag = '-I' + os.path.join(workDir, path) finalFlags.append(flag) return finalFlags def FlagsForFile(fileName, **kwargs): return { 'flags': MakeFinalFlag(), 'do_cache': True } if __name__ == '__main__': print(FlagsForFile("test"))
================================ 先上两个截图
# 安装ctags
附录1 .vimrc "===================通用配置====================== "文件搜索路径 set path=.,/usr/include,, " 控制 set nocompatible "关闭vi兼容 filetype off "关闭文件类型侦测,vundle需要 set fileencodings=utf-8,gbk "使用utf-8或gbk编码方式 syntax on "语法高亮 set backspace=2 "退格键正常模式 set whichwrap=<,>,[,] "当光标到行首或行尾,允许左右方向键换行 set autoread "文件在vim外修改过,自动重载 set nobackup "不使用备份 set confirm "在处理未保存或只读文件时,弹出确认消息 set scrolloff=3 "光标移动到距离顶部或底部开始滚到距离 set history=1000 "历史记录数 set mouse= "关闭鼠标 set selection=inclusive "选择包含最后一个字符 set selectmode=mouse,key "启动选择模式的方式 set completeopt=longest,menu "智能补全,弹出菜单,无歧义时才自动填充 set noswapfile "关闭交换文件 set hidden "允许在有未保存的修改时切换缓冲区 "显示 colorscheme mycolor "选择配色方案 set t_Co=256 "可以使用的颜色数目 set number "显示行号 set laststatus=2 "显示状态行 set ruler "显示标尺 set showcmd "显示输入的命令 set showmatch "高亮括号匹配 set matchtime=1 "匹配括号高亮的时间(十分之一秒) set matchpairs={:},(:) "匹配括号"{}""()" set hlsearch "检索时高亮匹配项 set incsearch "边检索边显示匹配 set go-=T "去除gvim的toolbar "格式 set noexpandtab "不要将tab转换为空格 set shiftwidth=4 "自动缩进的距离,也是平移字符的距离 set tabstop=4 "tab键对应的空格数 set autoindent "自动缩进 set smartindent "智能缩进 "===================按键映射====================== "按键映射的起始字符 let mapleader = '\' "使用Ctrl-l 和 Ctrl+h 切换标签页 nnoremap <C-l> gt nnoremap <c-h> gT "在行末加上分号 nnoremap <silent> <Leader>; :<Esc><End>a<Space>;<Esc><Down> "保存 nnoremap <C-s> :w<CR> "替换 nnoremap <C-h> :%s/<C-R>=expand("<cword>")<CR>/<C-R>=expand("<cword>")<CR> "===================插件管理====================== " 下载vundle " git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim " 下载pathogen " curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim " 将vundle加入到runtime path set rtp+=~/.vim/bundle/Vundle.vim " 下载到bundle目录的插件 call vundle#begin() " plugin on GitHub repo Plugin 'VundleVim/Vundle.vim' Plugin 'scrooloose/nerdtree' Plugin 'Lokaltog/vim-powerline.git' Plugin 'wincent/command-t' Plugin 'Valloric/YouCompleteMe' Plugin 'tomtom/tlib_vim' Plugin 'tomtom/viki_vim' " plugin from http://vim-scripts.org/vim/scripts.html Plugin 'taglist.vim' Plugin 'EasyGrep' " Git plugin not hosted on GitHub " Plugin 'git://...' " git repos on your local machine " Plugin 'file://...' call vundle#end() filetype plugin indent on " required "===================插件配置====================== "-----pathogen----- execute pathogen#infect() "-----NERDTree----- let g:NERDTreeCaseSensitiveSort = 1 let g:NERDTreeWinSize = 25 let g:NERDTreeWinPos = "right" nnoremap <silent> <Leader>t :NERDTreeToggle<CR> nnoremap <silent> <Leader>o :NERDTreeFind<CR> "-----Powerline----- set fillchars+=stl:\ ,stlnc:\ let g:Powerline_symbols = 'compatible' let g:Powerline_stl_path_style = 'filename' "只显示文件名 "-----Command-T----- let g:CommandTFileScanner = 'ruby' "使用ruby作为文件浏览器 let g:CommandTTraverseSCM = 'dir' "根目录为执行vim时所在的目录 "打开文件跳转 nnoremap <silent> <Leader>f :CommandT<CR> "-----taglist----- let Tlist_Show_One_File = 1 "只显示当前文件的taglist let Tlist_Exit_OnlyWindow = 1 "taglist是最后一个窗口时退出vim let Tlist_Use_Left_Window = 1 "在左侧窗口显示taglist let Tlist_GainFocus_On_ToggleOpen = 1 "打开taglist时,光标停在taglist窗口 let Tlist_Auto_Update = 1 "自动更新 " 打开标签浏览器 nnoremap <silent><Leader>dt :Tlist<CR> " 重新生成标签 nnoremap <silent><Leader>bt :!~/Myfiles/Tool/sh/ctags/hitags.sh<CR> " 高亮标签 nnoremap <silent><Leader>ht :so tags.vim<CR> "-----cscope----- "加载cscope库 if filereadable("cscope.out") cs add cscope.out endif set cscopequickfix=s-,c-,d-,i-,t-,e- "使用quickfix窗口显示结果 set cst "跳转时也使用cscope库 "打开引用窗口 nnoremap <silent><Leader>cw :cw<CR> "重新生成索引文件 nnoremap <silent><Leader>bc :!cscope -Rbq<CR> "s: 查找本C符号 "g: 查找本定义 "d: 查找本函数调用的函数 "c: 查找调用本函数的函数 "t: 查找本字符串 "e: 查找本egrep模式 "f: 查找本文件 "i: 查找包含本文件的文件 nnoremap <C-\>s :scs find s <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>g :scs find g <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>c :scs find c <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>t :scs find t <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>e :scs find e <C-R>=expand("<cword>")<CR><CR> nnoremap <C-\>f :scs find f <C-R>=expand("<cfile>")<CR><CR> nnoremap <C-\>i :scs find i <C-R>=expand("<cfile>")<CR><CR> nnoremap <C-\>d :scs find d <C-R>=expand("<cword>")<CR><CR> "-----YouCompleteMe----- let g:ycm_server_python_interpreter= '/usr/bin/python2' let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' "默认配置文件 let g:ycm_key_invoke_completion = '<C-Tab>' "跨文件补全 let g:ycm_confirm_extra_conf = 0 "关闭加载配置文件提示 let g:ycm_cache_omnifunc = 0 "关闭补全缓存 let g:ycm_enable_diagnostic_signs = 0 "关闭诊断提示符 let g:ycm_enable_diagnostic_highlighting = 1 "关闭诊断高亮 "let g:ycm_show_diagnostics_ui = 0 "关闭诊断ui let g:ycm_min_num_of_chars_for_completion = 3 "n字符开始自动补全 "获取变量类型 nnoremap <silent><Leader>yt :YcmCompleter GetType<CR> "跳转定义或声明 nnoremap <silent><Leader>yg :YcmCompleter GoTo<CR> "跳转包含文件 nnoremap <silent><Leader>yi :YcmCompleter GoToInclude<CR> "打开诊断信息 nnoremap <silent><Leader>yd :YcmDiags<CR> "-----EasyGrep----- let EasyGrepMode = 2 "根据文件类型搜索相应文件 let EasyGrepRecursive = 1 "递归搜索 let EasyGrepCommand = 1 "使用grep let EasyGrepJumpToMatch = 0 "不要跳转
附录2 mycolor.vim " Vim color file " Maintainer: Hans Fugal <[email protected]> " Last Change: $Date: 2004/06/13 19:30:30 $ " Last Change: $Date: 2004/06/13 19:30:30 $ " URL: http://hans.fugal.net/vim/colors/desert.vim " Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $ " cool help screens " :he group-name " :he highlight-groups " :he cterm-colors set background=dark if version > 580 " no guarantees for version 5.8 and below, but this makes it stop " complaining hi clear if exists("syntax_on") syntax reset endif endif let g:colors_name="desert" hi Normal guifg=White guibg=grey20 " highlight groups hi Cursor guibg=khaki guifg=slategrey "hi CursorIM "hi Directory "hi DiffAdd "hi DiffChange "hi DiffDelete "hi DiffText "hi ErrorMsg hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none hi Folded guibg=grey30 guifg=gold hi FoldColumn guibg=grey30 guifg=tan hi IncSearch guifg=slategrey guibg=khaki "hi LineNr hi ModeMsg guifg=goldenrod hi MoreMsg guifg=SeaGreen hi NonText guifg=LightBlue guibg=grey30 hi Question guifg=springgreen hi Search guibg=peru guifg=wheat hi SpecialKey guifg=yellowgreen hi StatusLine guibg=#c2bfa5 guifg=black gui=none hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none hi Title guifg=indianred hi Visual gui=none guifg=khaki guibg=olivedrab "hi VisualNOS hi WarningMsg guifg=salmon "hi WildMenu "hi Menu "hi Scrollbar "hi Tooltip " syntax highlighting groups hi Comment guifg=SkyBlue hi Constant guifg=#ffa0a0 hi Identifier guifg=palegreen hi Statement guifg=khaki hi PreProc guifg=indianred hi Type guifg=darkkhaki hi Special guifg=navajowhite "hi Underlined hi Ignore guifg=grey40 "hi Error hi Todo guifg=orangered guibg=yellow2 " color terminal definitions hi SpecialKey ctermfg=darkgreen hi NonText cterm=bold ctermfg=darkblue hi Directory ctermfg=darkcyan hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1 hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green hi Search cterm=NONE ctermfg=grey ctermbg=blue hi MoreMsg ctermfg=darkgreen hi ModeMsg cterm=NONE ctermfg=brown hi LineNr ctermfg=3 hi Question ctermfg=green hi StatusLine cterm=bold,reverse hi StatusLineNC cterm=reverse hi VertSplit cterm=reverse hi Title ctermfg=5 hi Visual cterm=reverse hi VisualNOS cterm=bold,underline hi WarningMsg ctermfg=1 hi WildMenu ctermfg=0 ctermbg=3 hi Folded ctermfg=darkgrey ctermbg=NONE hi FoldColumn ctermfg=darkgrey ctermbg=NONE hi DiffAdd ctermbg=4 hi DiffChange ctermbg=5 hi DiffDelete cterm=bold ctermfg=4 ctermbg=6 hi DiffText cterm=bold ctermbg=1 hi Comment ctermfg=darkcyan hi Constant ctermfg=brown hi Special ctermfg=5 hi Identifier ctermfg=6 hi Statement ctermfg=3 hi PreProc ctermfg=5 hi Type ctermfg=2 hi Underlined cterm=underline ctermfg=5 hi Ignore cterm=bold ctermfg=7 hi Ignore ctermfg=darkgrey hi Error cterm=bold ctermfg=7 ctermbg=1 "vim: sw=4
附录3 c.vim "not wrap set nowrap if filereadable("tags.vim") so tags.vim endif hi cFunction guifg=LightGreen hi cMacro guifg=LightRed hi cGlobal guifg=LightBlue hi cMember guifg=LightMagenta hi def link cTypedef cType
附录4 htags.sh #!/bin/bash ctags -R --fields=+l ; awk -F '"' '$2 ~ /^\tf/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cFunction " $1}' 1> tags.vim ; awk -F '"' '$2 ~ /^\t[de]/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cMacro " $1}' 1>> tags.vim ; awk -F '"' '$2 ~ /^\tt/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cTypedef " $1}' 1>> tags.vim ; awk -F '"' '$2 ~ /^\tv/ {print $1 "\n"}' tags | awk '$1 ~ /^[a-zA-Z]/ {print "syn keyword cGlobal " $1}' 1>> tags.vim ;
附录5 .ycm_extra_conf.py import os flags = [ '-x', 'c', '-Wall', '-DOS=LINUX', '-I./mycode/igmpsnoop/h', '-I./mycode/mldsnoop/h', '-I./mycode/head_files', '-I./mycode/g8132/inc', '-I./mycode/nqa/inc', '-I./mycode/mplste/inc', '-I./mycode/mplsoam/inc', '-I./mycode/cli', '-I./mycode/trill/inc', '-I./mycode/igmpsnoop_onu/inc', '-I./mycode/hqos/inc', '-I./mycode/qos/inc', '-I./mycode/mplsqos/inc', '-I./mycode/pim/inc', '-I./USP_HEADFILE/protocol/acl/h', '-I./USP_HEADFILE/protocol/hwroute/h', '-I./USP_HEADFILE/protocol/uspIf/inc', '-I/home/taopeng/Workspace/vmware/linux_share/osal_linux/inc', '-I/home/taopeng/Workspace/vmware/linux_share/usp_linux3.12.17/inc' ] def MakeFinalFlag(): workDir = os.path.dirname(os.path.abspath(__file__)) finalFlags = [] for flag in flags: if flag.startswith('-I'): path = flag[len('-I'):] flag = '-I' + os.path.join(workDir, path) finalFlags.append(flag) return finalFlags def FlagsForFile(fileName, **kwargs): return { 'flags': MakeFinalFlag(), 'do_cache': True } if __name__ == '__main__': print(FlagsForFile("test"))
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论