zlizhe

您所在的位置:网站首页 gvim命令 zlizhe

zlizhe

2023-01-12 18:16| 来源: 网络整理| 查看: 265

title date tags VIM 配置 2015-12-11 13:31:49 -0800 vim 编辑器

VIM 7.4 以上版本,大部分配置同时适用于 Linux / Mac OS 终端 以及 gVim

安装插件管理器 git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle 完整配置

编辑本用户的 vim 配置文件 Linux / Mac OS 一般创建文件 ~/.vimrc Windows 可在用户名文件夹下创建 .vimrc 文件 (C:\Users\USERNAME)

" ----------------------------------------------------------------------------- let g:iswindows = 0 let g:islinux = 0 if(has("win32") || has("win64") || has("win95") || has("win16")) let g:iswindows = 1 else let g:islinux = 1 endif " ----------------------------------------------------------------------------- " < 判断是终端还是 Gvim > " ----------------------------------------------------------------------------- if has("gui_running") let g:isGUI = 1 else let g:isGUI = 0 endif " ============================================================================= " > " ============================================================================= " ----------------------------------------------------------------------------- " < Windows Gvim 默认配置> 做了一点修改 " ----------------------------------------------------------------------------- if (g:iswindows && g:isGUI) source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin set diffexpr=MyDiff() function MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '\ ' . arg3 . eq endfunction endif " ----------------------------------------------------------------------------- " < Linux Gvim/Vim 默认配置> 做了一点修改 " ----------------------------------------------------------------------------- if g:islinux set hlsearch "高亮搜索 set incsearch "在输入要搜索的文字时,实时匹配 " Uncomment the following to have Vim jump to the last position when " reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") " ----------------------------------------------------------------------------- " 用于更方便的管理vim插件,具体用法参考 :h vundle 帮助 " Vundle工具安装方法为在终端输入如下命令 " git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle " 如果想在 windows 安装就必需先安装 "git for window",可查阅网上资料 set nocompatible "禁用 Vi 兼容模式 filetype off "禁用文件类型侦测 if g:islinux set rtp+=~/.vim/bundle/vundle/ call vundle#rc() else set rtp+=$VIM/vimfiles/bundle/vundle/ call vundle#rc('$VIM/vimfiles/bundle/') endif " 使用Vundle来管理插件,这个必须要有。 Bundle 'gmarik/vundle' " 以下为要安装或更新的插件,不同仓库都有(具体书写规范请参考帮助) " ----------------------------------------------------------------------------- " < a.vim 插件配置 > " ----------------------------------------------------------------------------- " :AS ---切换头文件并水平分割窗口 " Bundle 'a.vim' " ----------------------------------------------------------------------------- " < Align 插件配置 > " ----------------------------------------------------------------------------- " 一个对齐的插件,用来——排版与对齐代码,功能强大,不过用到的机会不多 Bundle 'Align' " ----------------------------------------------------------------------------- " < tab 键自动补全 > " ----------------------------------------------------------------------------- " Bundle 'SuperTab' " ----------------------------------------------------------------------------- " < auto-pairs 插件配置 > " ----------------------------------------------------------------------------- " 用于括号与引号自动补全,不过会与函数原型提示插件echofunc冲突 Bundle 'jiangmiao/auto-pairs' " ----------------------------------------------------------------------------- " < BufExplorer 插件配置 > " ----------------------------------------------------------------------------- " 快速轻松的在缓存中切换(相当于另一种多个文件间的切换方式) Bundle 'bufexplorer.zip' " ----------------------------------------------------------------------------- " < ccvext.vim 插件配置 > " ----------------------------------------------------------------------------- " 用于对指定文件自动生成tags与cscope文件并连接 " Bundle 'ccvext.vim' " ----------------------------------------------------------------------------- " < cSyntaxAfter 插件配置 > " ----------------------------------------------------------------------------- " 高亮括号与运算符等 Bundle 'cSyntaxAfter' " ----------------------------------------------------------------------------- " < ctrlp.vim 插件配置 > " ----------------------------------------------------------------------------- " 一个全路径模糊文件,缓冲区,最近最多使用,... 检索插件;详细帮助见 :h ctrlp " 常规模式下输入:Ctrl + p 调用插件 Bundle 'ctrlpvim/ctrlp.vim' " ----------------------------------------------------------------------------- " < emmet-vim(前身为Zen coding) 插件配置 > " ----------------------------------------------------------------------------- " HTML/CSS代码快速编写神器,详细帮助见 :h emmet.txt Bundle 'mattn/emmet-vim' " ----------------------------------------------------------------------------- " < indentLine 插件配置 > " ----------------------------------------------------------------------------- " 用于显示对齐线,与 indent_guides 在显示方式上不同,根据自己喜好选择了 " 在终端上会有屏幕刷新的问题,这个问题能解决有更好了 Bundle 'Yggdroot/indentLine' " ----------------------------------------------------------------------------- " < vim-javacompleteex(也就是 javacomplete 增强版)插件配置 > " ----------------------------------------------------------------------------- " java 补全插件 " Bundle 'vim-javacompleteex' " ----------------------------------------------------------------------------- " < Mark--Karkat(也就是 Mark) 插件配置 > " ----------------------------------------------------------------------------- " 给不同的单词高亮,表明不同的变量时很有用,详细帮助见 :h mark.txt Bundle 'Mark--Karkat' " ----------------------------------------------------------------------------- " < neocomplcache 插件配置 > " ----------------------------------------------------------------------------- " 关键字补全、文件路径补全、tag补全等等,各种,非常好用,速度超快。 Bundle 'Shougo/neocomplcache.vim' " ----------------------------------------------------------------------------- " < nerdcommenter 插件配置 > " ----------------------------------------------------------------------------- " 我主要用于C/C++代码注释(其它的也行) " 以下为插件默认快捷键,其中的说明是以C/C++为例的,其它语言类似 Bundle 'scrooloose/nerdcommenter' " ----------------------------------------------------------------------------- " < nerdtree 插件配置 > " ----------------------------------------------------------------------------- " 有目录村结构的文件浏览插件 " 常规模式下输入 F2 调用插件 Bundle 'scrooloose/nerdtree' " ----------------------------------------------------------------------------- " < omnicppcomplete 插件配置 > " ----------------------------------------------------------------------------- " 用于C/C++代码补全,这种补全主要针对命名空间、类、结构、共同体等进行补全,详细 " 说明可以参考帮助或网络教程等 " 使用前先执行如下 ctags 命令(本配置中可以直接使用 ccvext 插件来执行以下命令) " ctags -R --c++-kinds=+p --fields=+iaS --extra=+q " 我使用上面的参数生成标签后,对函数使用跳转时会出现多个选择 " Bundle 'OmniCppComplete' " ----------------------------------------------------------------------------- " < powerline 插件配置 > " ----------------------------------------------------------------------------- " 状态栏插件,更好的状态栏效果 Bundle 'Lokaltog/vim-powerline' " ----------------------------------------------------------------------------- " < repeat 插件配置 > " ----------------------------------------------------------------------------- " 主要用"."命令来重复上次插件使用的命令 Bundle 'repeat.vim' " ----------------------------------------------------------------------------- " < snipMate 插件配置 > " ----------------------------------------------------------------------------- " 用于各种代码补全,这种补全是一种对代码中的词与代码块的缩写补全,详细用法可以参 " 考使用说明或网络教程等。不过有时候也会与 supertab 插件在补全时产生冲突,如果大 " 侠有什么其它解决方法希望不要保留呀 Bundle 'msanders/snipmate.vim' " ----------------------------------------------------------------------------- " < SrcExpl 插件配置 > " ----------------------------------------------------------------------------- " 增强源代码浏览,其功能就像Windows中的"Source Insight" Bundle 'wesleyche/SrcExpl' " ----------------------------------------------------------------------------- " < std_c 插件配置 > " ----------------------------------------------------------------------------- " Bundle 'std_c.zip' " ----------------------------------------------------------------------------- " < surround 插件配置 > " ----------------------------------------------------------------------------- " 快速给单词/句子两边增加符号(包括html标签),缺点是不能用"."来重复命令 " 不过 repeat 插件可以解决这个问题,详细帮助见 :h surround.txt Bundle 'tpope/vim-surround' " ----------------------------------------------------------------------------- " < Syntastic 插件配置 > " ----------------------------------------------------------------------------- " 用于保存文件时查检语法 Bundle 'scrooloose/syntastic' " ----------------------------------------------------------------------------- " < Tagbar 插件配置 > " ----------------------------------------------------------------------------- " 相对 TagList 能更好的支持面向对象 " 常规模式下输入 tb 调用插件,如果有打开 TagList 窗口则先将其关闭 Bundle 'majutsushi/tagbar' " ----------------------------------------------------------------------------- " < TagList 插件配置 > " ----------------------------------------------------------------------------- " 高效地浏览源码, 其功能就像vc中的workpace " 那里面列出了当前文件中的所有宏,全局变量, 函数名等 " 常规模式下输入 tl 调用插件,如果有打开 Tagbar 窗口则先将其关闭 Bundle 'taglist.vim' " ----------------------------------------------------------------------------- " < txtbrowser 插件配置 > " ----------------------------------------------------------------------------- " 用于文本文件生成标签与与语法高亮(调用TagList插件生成标签,如果可以) Bundle 'TxtBrowser' " ----------------------------------------------------------------------------- " < ZoomWin 插件配置 > " ----------------------------------------------------------------------------- " 用于分割窗口的最大化与还原 " 常规模式下按快捷键 o 在最大化与还原间切换 Bundle 'ZoomWin' " Go 语法高亮 https://github.com/fatih/vim-go Bundle 'fatih/vim-go' " Go 语法检查 Bundle 'rjohnsondev/vim-compiler-go' " PHP DOC MAC ONLY Bundle 'rizzatti/dash.vim' " 全文搜索(项目) 函数名 " 需要先安装 ack " yum install ack Bundle 'mileszs/ack.vim' Bundle 'dyng/ctrlsf.vim' " 全局搜索 leader - t 开启 Bundle 'wincent/command-t' " coffee-script compile Bundle 'kchmck/vim-coffee-script' " ----------------------------------------------------------------------------- " < 编码配置 > " ----------------------------------------------------------------------------- " 注:使用utf-8格式后,软件与程序源码、文件路径不能有中文,否则报错 set encoding=utf-8 "设置gvim内部编码,默认不更改 set fileencoding=utf-8 "设置当前文件编码,可以更改,如:gbk(同cp936) set fileencodings=ucs-bom,utf-8,gbk,cp936,latin-1 "设置支持打开的文件的编码 " 文件格式,默认 ffs=dos,unix set fileformat=unix "设置新(当前)文件的格式,可以更改,如:dos(windows系统常用) set fileformats=unix,dos,mac "给出文件的格式类型 if (g:iswindows && g:isGUI) "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim "解决consle输出乱码 language messages zh_CN.utf-8 endif " ----------------------------------------------------------------------------- " < 编写文件时的配置 > " ----------------------------------------------------------------------------- filetype on "启用文件类型侦测 filetype plugin on "针对不同的文件类型加载对应的插件 filetype plugin indent on "启用缩进 set smartindent "启用智能对齐方式 set expandtab "将Tab键转换为空格 set tabstop=4 "设置Tab键的宽度,可以更改,如:宽度为2 set shiftwidth=4 "换行时自动缩进宽度,可更改(宽度同tabstop) set smarttab "指定按一次backspace就删除shiftwidth宽度 " set foldenable "启用折叠 " set foldmethod=indent "indent 折叠方式 " set foldmethod=marker "marker 折叠方式 " 常规模式下用空格键来开关光标行所在折叠(注:zR 展开所有折叠,zM 关闭所有折叠) nnoremap @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo') " 当文件在外部被修改,自动更新该文件 set autoread " 常规模式下输入 cS 清除行尾空格 nmap cS :%s/\s\+$//g:noh " 常规模式下输入 cM 清除行尾 ^M 符号 nmap cM :%s/\r$//g:noh set ignorecase "搜索模式里忽略大小写 " set smartcase "如果搜索模式包含大写字符,不使用 'ignorecase' 选项,只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用 " set noincsearch "在输入要搜索的文字时,取消实时匹配 " Ctrl + K 插入模式下光标向上移动 imap " Ctrl + J 插入模式下光标向下移动 imap " Ctrl + H 插入模式下光标向左移动 imap " Ctrl + L 插入模式下光标向右移动 imap " 启用每行超过80列的字符提示(字体变蓝并加下划线),不启用就注释掉 " au BufWinEnter * let w:m2=matchadd('Underlined', '\%>' . 80 . 'v.\+', -1) " ----------------------------------------------------------------------------- " < 界面配置 > " ----------------------------------------------------------------------------- set number "显示行号 set laststatus=2 "启用状态栏信息 set cmdheight=2 "设置命令行的高度为2,默认为1 set cursorline "突出显示当前行 " set guifont=YaHei_Consolas_Hybrid:h10 "设置字体:字号(字体名称空格用下划线代替) set guifont=courier_new:h9 "设置字体:字号(字体名称空格用下划线代替) " set nowrap "设置不自动换行 set shortmess=atI "去掉欢迎界面 " 设置 gVim 窗口初始位置及大小 if g:isGUI set guifont=courier_new:h16 "设置字体:字号(字体名称空格用下划线代替) " au GUIEnter * simalt ~x "窗口启动时自动最大化 winpos 100 10 "指定窗口出现的位置,坐标原点在屏幕左上角 set lines=50 columns=180 "指定窗口大小,lines为高度,columns为宽度 endif " 设置代码配色方案 if g:isGUI colorscheme molokai "Gvim配色方案 else colorscheme molokai "终端配色方案 endif " 显示/隐藏菜单栏、工具栏、滚动条,可用 Ctrl + F11 切换 if g:isGUI set guioptions-=m set guioptions-=T set guioptions-=r set guioptions-=L nmap :if &guioptions =~# 'm' \set guioptions-=m \set guioptions-=T \set guioptions-=r \set guioptions-=L \else \set guioptions+=m \set guioptions+=T \set guioptions+=r \set guioptions+=L \endif endif " ----------------------------------------------------------------------------- " < 编译、连接、运行配置 (目前只配置了C、C++、Java语言)> " ----------------------------------------------------------------------------- " F9 一键保存、编译、连接存并运行 nmap :call Run() imap :call Run() " Ctrl + F9 一键保存并编译 nmap :call Compile() imap :call Compile() " Ctrl + F10 一键保存并连接 nmap :call Link() imap :call Link() let s:LastShellReturn_C = 0 let s:LastShellReturn_L = 0 let s:ShowWarning = 1 let s:Obj_Extension = '.o' let s:Exe_Extension = '.exe' let s:Class_Extension = '.class' let s:Sou_Error = 0 let s:windows_CFlags = 'gcc\ -fexec-\ -Wall\ -g\ -O0\ -c\ %\ -o\ % " ----------------------------------------------------------------------------- " 相对 TagList 能更好的支持面向对象 " 常规模式下输入 tb 调用插件,如果有打开 TagList 窗口则先将其关闭 nmap tb :TlistClose:TagbarToggle let g:tagbar_width=30 "设置窗口宽度 " let g:tagbar_left=1 "在左侧窗口中显示 " ----------------------------------------------------------------------------- " < TagList 插件配置 > " ----------------------------------------------------------------------------- " 高效地浏览源码, 其功能就像vc中的workpace " 那里面列出了当前文件中的所有宏,全局变量, 函数名等 " 常规模式下输入 tl 调用插件,如果有打开 Tagbar 窗口则先将其关闭 nmap tl :TagbarClose:Tlist let Tlist_Show_One_File=1 "只显示当前文件的tags " let Tlist_Enable_Fold_Column=0 "使taglist插件不显示左边的折叠行 let Tlist_Exit_OnlyWindow=1 "如果Taglist窗口是最后一个窗口则退出Vim let Tlist_File_Fold_Auto_Close=1 "自动折叠 let Tlist_WinWidth=30 "设置窗口宽度 let Tlist_Use_Right_Window=1 "在右侧窗口中显示 " ----------------------------------------------------------------------------- " < txtbrowser 插件配置 > " ----------------------------------------------------------------------------- " 用于文本文件生成标签与与语法高亮(调用TagList插件生成标签,如果可以) au BufRead,BufNewFile *.txt setlocal ft=txt " \ r 快速执行GO " au FileType go nmap r (go-run) " ----------------------------------------------------------------------------- " " 语法检查 Go 路径 " ----------------------------------------------------------------------------- autocmd FileType go compiler golang let g:golang_goroot = "/usr/local/go" " compile coffee on write let coffee_compile_vert = 1 au BufWritePost *.coffee silent execute 'CoffeeMake! -o'.expand(':p:h').'./' " auto compile on save " ============================================================================= " > " ============================================================================= " ----------------------------------------------------------------------------- " < cscope 工具配置 > " ----------------------------------------------------------------------------- " 用Cscope自己的话说 - "你可以把它当做是超过频的ctags" if has("cscope") "设定可以使用 quickfix 窗口来查看 cscope 结果 set cscopequickfix=s-,c-,d-,i-,t-,e- "使支持用 Ctrl+] 和 Ctrl+t 快捷键在代码间跳转 set cscopetag "如果你想反向搜索顺序设置为1 set csto=0 "在当前目录中添加任何数据库 if filereadable("cscope.out") cs add cscope.out "否则添加数据库环境中所指出的 elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set cscopeverbose "快捷键设置 nmap s :cs find s =expand("") nmap g :cs find g =expand("") nmap c :cs find c =expand("") nmap t :cs find t =expand("") nmap e :cs find e =expand("") nmap f :cs find f =expand("") nmap i :cs find i ^=expand("")$ nmap d :cs find d =expand("") endif " ----------------------------------------------------------------------------- " < ctags 工具配置 > " ----------------------------------------------------------------------------- " 对浏览代码非常的方便,可以在函数,变量之间跳转等 set tags=./tags; "向上级目录递归查找tags文件(好像只有在Windows下才有用) " ----------------------------------------------------------------------------- " < gvimfullscreen 工具配置 > 请确保已安装了工具 " ----------------------------------------------------------------------------- " 用于 Windows Gvim 全屏窗口,可用 F11 切换 " 全屏后再隐藏菜单栏、工具栏、滚动条效果更好 if (g:iswindows && g:isGUI) nmap :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0) endif " ----------------------------------------------------------------------------- " < vimtweak 工具配置 > 请确保以已装了工具 " ----------------------------------------------------------------------------- " 这里只用于窗口透明与置顶 " 常规模式下 Ctrl + Up(上方向键) 增加不透明度,Ctrl + Down(下方向键) 减少不透明度,t 窗口置顶与否切换 if (g:iswindows && g:isGUI) let g:Current_Alpha = 255 let g:Top_Most = 0 func! Alpha_add() let g:Current_Alpha = g:Current_Alpha + 10 if g:Current_Alpha > 255 let g:Current_Alpha = 255 endif call libcallnr("vimtweak.dll","SetAlpha",g:Current_Alpha) endfunc func! Alpha_sub() let g:Current_Alpha = g:Current_Alpha - 10 if g:Current_Alpha < 155 let g:Current_Alpha = 155 endif call libcallnr("vimtweak.dll","SetAlpha",g:Current_Alpha) endfunc func! Top_window() if g:Top_Most == 0 call libcallnr("vimtweak.dll","EnableTopMost",1) let g:Top_Most = 1 else call libcallnr("vimtweak.dll","EnableTopMost",0) let g:Top_Most = 0 endif endfunc "快捷键设置 nmap :call Alpha_add() nmap :call Alpha_sub() nmap t :call Top_window() endif " ============================================================================= " > " ============================================================================= " 自动切换目录为当前编辑文件所在目录 au BufRead,BufNewFile,BufEnter * cd %:p:h " ============================================================================= " > " ============================================================================= " windows 默认编码为 cp936,而 Gvim(Vim) 内部编码为 utf-8,所以常常输出为乱码 " 以下代码可以将编码为 cp936 的输出信息转换为 utf-8 编码,以解决输出乱码问题 " 但好像只对输出信息全部为中文才有满意的效果,如果输出信息是中英混合的,那可能 " 不成功,会造成其中一种语言乱码,输出信息全部为英文的好像不会乱码 " 如果输出信息为乱码的可以试一下下面的代码,如果不行就还是给它注释掉 " if g:iswindows " function QfMakeConv() " let qflist = getqflist() " for i in qflist " let i.text = iconv(i.text, "cp936", "utf-8") " endfor " call setqflist(qflist) " endfunction " au QuickfixCmdPost make call QfMakeConv() " endif " ============================================================================= " > " ============================================================================= " 注:上面配置中的""在本软件中设置为"\"键(引号里的反斜杠),如t " 指在常规模式下按"\"键加"t"键,这里不是同时按,而是先按"\"键后按"t"键,间隔在一 " 秒内,而cs是先按"\"键再按"c"又再按"s"键;如要修改""键,可以把 " 下面的设置取消注释,并修改双引号中的键为你想要的,如修改为逗号键。 " let mapleader = "," " " ============================================================================= " " > " " 调用 C + S + 空格 " " ============================================================================= let g:ywvim_ims=[ \['wb', '五笔', 'wubi.ywvim'], \['py', '拼音', 'pinyin.ywvim'], \] let g:ywvim_py = { 'helpim':'py', 'gb':0 } let g:ywvim_zhpunc = 1 let g:ywvim_listmax = 5 let g:ywvim_esc_autoff = 0 let g:ywvim_autoinput = 0 let g:ywvim_circlecandidates = 1 let g:ywvim_helpim_on = 0 let g:ywvim_matchexact = 0 let g:ywvim_chinesecode = 1 let g:ywvim_gb = 0 let g:ywvim_preconv = 'g2b' let g:ywvim_conv = '' let g:ywvim_lockb = 1">" ============================================================================= " " ============================================================================= " ----------------------------------------------------------------------------- " < 判断操作系统是否是 Windows 还是 Linux > " ----------------------------------------------------------------------------- let g:iswindows = 0 let g:islinux = 0 if(has("win32") || has("win64") || has("win95") || has("win16")) let g:iswindows = 1 else let g:islinux = 1 endif " ----------------------------------------------------------------------------- " < 判断是终端还是 Gvim > " ----------------------------------------------------------------------------- if has("gui_running") let g:isGUI = 1 else let g:isGUI = 0 endif " ============================================================================= " > " ============================================================================= " ----------------------------------------------------------------------------- " < Windows Gvim 默认配置> 做了一点修改 " ----------------------------------------------------------------------------- if (g:iswindows && g:isGUI) source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin set diffexpr=MyDiff() function MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '\ ' . arg3 . eq endfunction endif " ----------------------------------------------------------------------------- " < Linux Gvim/Vim 默认配置> 做了一点修改 " ----------------------------------------------------------------------------- if g:islinux set hlsearch "高亮搜索 set incsearch "在输入要搜索的文字时,实时匹配 " Uncomment the following to have Vim jump to the last position when " reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") " ----------------------------------------------------------------------------- " 用于更方便的管理vim插件,具体用法参考 :h vundle 帮助 " Vundle工具安装方法为在终端输入如下命令 " git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle " 如果想在 windows 安装就必需先安装 "git for window",可查阅网上资料 set nocompatible "禁用 Vi 兼容模式 filetype off "禁用文件类型侦测 if g:islinux set rtp+=~/.vim/bundle/vundle/ call vundle#rc() else set rtp+=$VIM/vimfiles/bundle/vundle/ call vundle#rc('$VIM/vimfiles/bundle/') endif " 使用Vundle来管理插件,这个必须要有。 Bundle 'gmarik/vundle' " 以下为要安装或更新的插件,不同仓库都有(具体书写规范请参考帮助) " ----------------------------------------------------------------------------- " < a.vim 插件配置 > " ----------------------------------------------------------------------------- " :AS ---切换头文件并水平分割窗口 " Bundle 'a.vim' " ----------------------------------------------------------------------------- " < Align 插件配置 > " ----------------------------------------------------------------------------- " 一个对齐的插件,用来——排版与对齐代码,功能强大,不过用到的机会不多 Bundle 'Align' " ----------------------------------------------------------------------------- " < tab 键自动补全 > " ----------------------------------------------------------------------------- " Bundle 'SuperTab' " ----------------------------------------------------------------------------- " < auto-pairs 插件配置 > " ----------------------------------------------------------------------------- " 用于括号与引号自动补全,不过会与函数原型提示插件echofunc冲突 Bundle 'jiangmiao/auto-pairs' " ----------------------------------------------------------------------------- " < BufExplorer 插件配置 > " ----------------------------------------------------------------------------- " 快速轻松的在缓存中切换(相当于另一种多个文件间的切换方式) Bundle 'bufexplorer.zip' " ----------------------------------------------------------------------------- " < ccvext.vim 插件配置 > " ----------------------------------------------------------------------------- " 用于对指定文件自动生成tags与cscope文件并连接 " Bundle 'ccvext.vim' " ----------------------------------------------------------------------------- " < cSyntaxAfter 插件配置 > " ----------------------------------------------------------------------------- " 高亮括号与运算符等 Bundle 'cSyntaxAfter' " ----------------------------------------------------------------------------- " < ctrlp.vim 插件配置 > " ----------------------------------------------------------------------------- " 一个全路径模糊文件,缓冲区,最近最多使用,... 检索插件;详细帮助见 :h ctrlp " 常规模式下输入:Ctrl + p 调用插件 Bundle 'ctrlpvim/ctrlp.vim' " ----------------------------------------------------------------------------- " < emmet-vim(前身为Zen coding) 插件配置 > " ----------------------------------------------------------------------------- " HTML/CSS代码快速编写神器,详细帮助见 :h emmet.txt Bundle 'mattn/emmet-vim' " ----------------------------------------------------------------------------- " < indentLine 插件配置 > " ----------------------------------------------------------------------------- " 用于显示对齐线,与 indent_guides 在显示方式上不同,根据自己喜好选择了 " 在终端上会有屏幕刷新的问题,这个问题能解决有更好了 Bundle 'Yggdroot/indentLine' " ----------------------------------------------------------------------------- " < vim-javacompleteex(也就是 javacomplete 增强版)插件配置 > " ----------------------------------------------------------------------------- " java 补全插件 " Bundle 'vim-javacompleteex' " ----------------------------------------------------------------------------- " < Mark--Karkat(也就是 Mark) 插件配置 > " ----------------------------------------------------------------------------- " 给不同的单词高亮,表明不同的变量时很有用,详细帮助见 :h mark.txt Bundle 'Mark--Karkat' " ----------------------------------------------------------------------------- " < neocomplcache 插件配置 > " ----------------------------------------------------------------------------- " 关键字补全、文件路径补全、tag补全等等,各种,非常好用,速度超快。 Bundle 'Shougo/neocomplcache.vim' " ----------------------------------------------------------------------------- " < nerdcommenter 插件配置 > " ----------------------------------------------------------------------------- " 我主要用于C/C++代码注释(其它的也行) " 以下为插件默认快捷键,其中的说明是以C/C++为例的,其它语言类似 Bundle 'scrooloose/nerdcommenter' " ----------------------------------------------------------------------------- " < nerdtree 插件配置 > " ----------------------------------------------------------------------------- " 有目录村结构的文件浏览插件 " 常规模式下输入 F2 调用插件 Bundle 'scrooloose/nerdtree' " ----------------------------------------------------------------------------- " < omnicppcomplete 插件配置 > " ----------------------------------------------------------------------------- " 用于C/C++代码补全,这种补全主要针对命名空间、类、结构、共同体等进行补全,详细 " 说明可以参考帮助或网络教程等 " 使用前先执行如下 ctags 命令(本配置中可以直接使用 ccvext 插件来执行以下命令) " ctags -R --c++-kinds=+p --fields=+iaS --extra=+q " 我使用上面的参数生成标签后,对函数使用跳转时会出现多个选择 " Bundle 'OmniCppComplete' " ----------------------------------------------------------------------------- " < powerline 插件配置 > " ----------------------------------------------------------------------------- " 状态栏插件,更好的状态栏效果 Bundle 'Lokaltog/vim-powerline' " ----------------------------------------------------------------------------- " < repeat 插件配置 > " ----------------------------------------------------------------------------- " 主要用"."命令来重复上次插件使用的命令 Bundle 'repeat.vim' " ----------------------------------------------------------------------------- " < snipMate 插件配置 > " ----------------------------------------------------------------------------- " 用于各种代码补全,这种补全是一种对代码中的词与代码块的缩写补全,详细用法可以参 " 考使用说明或网络教程等。不过有时候也会与 supertab 插件在补全时产生冲突,如果大 " 侠有什么其它解决方法希望不要保留呀 Bundle 'msanders/snipmate.vim' " ----------------------------------------------------------------------------- " < SrcExpl 插件配置 > " ----------------------------------------------------------------------------- " 增强源代码浏览,其功能就像Windows中的"Source Insight" Bundle 'wesleyche/SrcExpl' " ----------------------------------------------------------------------------- " < std_c 插件配置 > " ----------------------------------------------------------------------------- " Bundle 'std_c.zip' " ----------------------------------------------------------------------------- " < surround 插件配置 > " ----------------------------------------------------------------------------- " 快速给单词/句子两边增加符号(包括html标签),缺点是不能用"."来重复命令 " 不过 repeat 插件可以解决这个问题,详细帮助见 :h surround.txt Bundle 'tpope/vim-surround' " ----------------------------------------------------------------------------- " < Syntastic 插件配置 > " ----------------------------------------------------------------------------- " 用于保存文件时查检语法 Bundle 'scrooloose/syntastic' " ----------------------------------------------------------------------------- " < Tagbar 插件配置 > " ----------------------------------------------------------------------------- " 相对 TagList 能更好的支持面向对象 " 常规模式下输入 tb 调用插件,如果有打开 TagList 窗口则先将其关闭 Bundle 'majutsushi/tagbar' " ----------------------------------------------------------------------------- " < TagList 插件配置 > " ----------------------------------------------------------------------------- " 高效地浏览源码, 其功能就像vc中的workpace " 那里面列出了当前文件中的所有宏,全局变量, 函数名等 " 常规模式下输入 tl 调用插件,如果有打开 Tagbar 窗口则先将其关闭 Bundle 'taglist.vim' " ----------------------------------------------------------------------------- " < txtbrowser 插件配置 > " ----------------------------------------------------------------------------- " 用于文本文件生成标签与与语法高亮(调用TagList插件生成标签,如果可以) Bundle 'TxtBrowser' " ----------------------------------------------------------------------------- " < ZoomWin 插件配置 > " ----------------------------------------------------------------------------- " 用于分割窗口的最大化与还原 " 常规模式下按快捷键 o 在最大化与还原间切换 Bundle 'ZoomWin' " Go 语法高亮 https://github.com/fatih/vim-go Bundle 'fatih/vim-go' " Go 语法检查 Bundle 'rjohnsondev/vim-compiler-go' " PHP DOC MAC ONLY Bundle 'rizzatti/dash.vim' " 全文搜索(项目) 函数名 " 需要先安装 ack " yum install ack Bundle 'mileszs/ack.vim' Bundle 'dyng/ctrlsf.vim' " 全局搜索 leader - t 开启 Bundle 'wincent/command-t' " coffee-script compile Bundle 'kchmck/vim-coffee-script' " ----------------------------------------------------------------------------- " < 编码配置 > " ----------------------------------------------------------------------------- " 注:使用utf-8格式后,软件与程序源码、文件路径不能有中文,否则报错 set encoding=utf-8 "设置gvim内部编码,默认不更改 set fileencoding=utf-8 "设置当前文件编码,可以更改,如:gbk(同cp936) set fileencodings=ucs-bom,utf-8,gbk,cp936,latin-1 "设置支持打开的文件的编码 " 文件格式,默认 ffs=dos,unix set fileformat=unix "设置新(当前)文件的格式,可以更改,如:dos(windows系统常用) set fileformats=unix,dos,mac "给出文件的格式类型 if (g:iswindows && g:isGUI) "解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim "解决consle输出乱码 language messages zh_CN.utf-8 endif " ----------------------------------------------------------------------------- " < 编写文件时的配置 > " ----------------------------------------------------------------------------- filetype on "启用文件类型侦测 filetype plugin on "针对不同的文件类型加载对应的插件 filetype plugin indent on "启用缩进 set smartindent "启用智能对齐方式 set expandtab "将Tab键转换为空格 set tabstop=4 "设置Tab键的宽度,可以更改,如:宽度为2 set shiftwidth=4 "换行时自动缩进宽度,可更改(宽度同tabstop) set smarttab "指定按一次backspace就删除shiftwidth宽度 " set foldenable "启用折叠 " set foldmethod=indent "indent 折叠方式 " set foldmethod=marker "marker 折叠方式 " 常规模式下用空格键来开关光标行所在折叠(注:zR 展开所有折叠,zM 关闭所有折叠) nnoremap @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo') " 当文件在外部被修改,自动更新该文件 set autoread " 常规模式下输入 cS 清除行尾空格 nmap cS :%s/\s\+$//g:noh " 常规模式下输入 cM 清除行尾 ^M 符号 nmap cM :%s/\r$//g:noh set ignorecase "搜索模式里忽略大小写 " set smartcase "如果搜索模式包含大写字符,不使用 'ignorecase' 选项,只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用 " set noincsearch "在输入要搜索的文字时,取消实时匹配 " Ctrl + K 插入模式下光标向上移动 imap " Ctrl + J 插入模式下光标向下移动 imap " Ctrl + H 插入模式下光标向左移动 imap " Ctrl + L 插入模式下光标向右移动 imap " 启用每行超过80列的字符提示(字体变蓝并加下划线),不启用就注释掉 " au BufWinEnter * let w:m2=matchadd('Underlined', '\%>' . 80 . 'v.\+', -1) " ----------------------------------------------------------------------------- " < 界面配置 > " ----------------------------------------------------------------------------- set number "显示行号 set laststatus=2 "启用状态栏信息 set cmdheight=2 "设置命令行的高度为2,默认为1 set cursorline "突出显示当前行 " set guifont=YaHei_Consolas_Hybrid:h10 "设置字体:字号(字体名称空格用下划线代替) set guifont=courier_new:h9 "设置字体:字号(字体名称空格用下划线代替) " set nowrap "设置不自动换行 set shortmess=atI "去掉欢迎界面 " 设置 gVim 窗口初始位置及大小 if g:isGUI set guifont=courier_new:h16 "设置字体:字号(字体名称空格用下划线代替) " au GUIEnter * simalt ~x "窗口启动时自动最大化 winpos 100 10 "指定窗口出现的位置,坐标原点在屏幕左上角 set lines=50 columns=180 "指定窗口大小,lines为高度,columns为宽度 endif " 设置代码配色方案 if g:isGUI colorscheme molokai "Gvim配色方案 else colorscheme molokai "终端配色方案 endif " 显示/隐藏菜单栏、工具栏、滚动条,可用 Ctrl + F11 切换 if g:isGUI set guioptions-=m set guioptions-=T set guioptions-=r set guioptions-=L nmap :if &guioptions =~# 'm' \set guioptions-=m \set guioptions-=T \set guioptions-=r \set guioptions-=L \else \set guioptions+=m \set guioptions+=T \set guioptions+=r \set guioptions+=L \endif endif " ----------------------------------------------------------------------------- " < 编译、连接、运行配置 (目前只配置了C、C++、Java语言)> " ----------------------------------------------------------------------------- " F9 一键保存、编译、连接存并运行 nmap :call Run() imap :call Run() " Ctrl + F9 一键保存并编译 nmap :call Compile() imap :call Compile() " Ctrl + F10 一键保存并连接 nmap :call Link() imap :call Link() let s:LastShellReturn_C = 0 let s:LastShellReturn_L = 0 let s:ShowWarning = 1 let s:Obj_Extension = '.o' let s:Exe_Extension = '.exe' let s:Class_Extension = '.class' let s:Sou_Error = 0 let s:windows_CFlags = 'gcc\ -fexec-charset=gbk\ -Wall\ -g\ -O0\ -c\ %\ -o\ % " ----------------------------------------------------------------------------- " 相对 TagList 能更好的支持面向对象 " 常规模式下输入 tb 调用插件,如果有打开 TagList 窗口则先将其关闭 nmap tb :TlistClose:TagbarToggle let g:tagbar_width=30 "设置窗口宽度 " let g:tagbar_left=1 "在左侧窗口中显示 " ----------------------------------------------------------------------------- " < TagList 插件配置 > " ----------------------------------------------------------------------------- " 高效地浏览源码, 其功能就像vc中的workpace " 那里面列出了当前文件中的所有宏,全局变量, 函数名等 " 常规模式下输入 tl 调用插件,如果有打开 Tagbar 窗口则先将其关闭 nmap tl :TagbarClose:Tlist let Tlist_Show_One_File=1 "只显示当前文件的tags " let Tlist_Enable_Fold_Column=0 "使taglist插件不显示左边的折叠行 let Tlist_Exit_OnlyWindow=1 "如果Taglist窗口是最后一个窗口则退出Vim let Tlist_File_Fold_Auto_Close=1 "自动折叠 let Tlist_WinWidth=30 "设置窗口宽度 let Tlist_Use_Right_Window=1 "在右侧窗口中显示 " ----------------------------------------------------------------------------- " < txtbrowser 插件配置 > " ----------------------------------------------------------------------------- " 用于文本文件生成标签与与语法高亮(调用TagList插件生成标签,如果可以) au BufRead,BufNewFile *.txt setlocal ft=txt " \ r 快速执行GO " au FileType go nmap r (go-run) " ----------------------------------------------------------------------------- " " 语法检查 Go 路径 " ----------------------------------------------------------------------------- autocmd FileType go compiler golang let g:golang_goroot = "/usr/local/go" " compile coffee on write let coffee_compile_vert = 1 au BufWritePost *.coffee silent execute 'CoffeeMake! -o'.expand(':p:h').'./' " auto compile on save " ============================================================================= " > " ============================================================================= " ----------------------------------------------------------------------------- " < cscope 工具配置 > " ----------------------------------------------------------------------------- " 用Cscope自己的话说 - "你可以把它当做是超过频的ctags" if has("cscope") "设定可以使用 quickfix 窗口来查看 cscope 结果 set cscopequickfix=s-,c-,d-,i-,t-,e- "使支持用 Ctrl+] 和 Ctrl+t 快捷键在代码间跳转 set cscopetag "如果你想反向搜索顺序设置为1 set csto=0 "在当前目录中添加任何数据库 if filereadable("cscope.out") cs add cscope.out "否则添加数据库环境中所指出的 elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set cscopeverbose "快捷键设置 nmap s :cs find s =expand("") nmap g :cs find g =expand("") nmap c :cs find c =expand("") nmap t :cs find t =expand("") nmap e :cs find e =expand("") nmap f :cs find f =expand("") nmap i :cs find i ^=expand("")$ nmap d :cs find d =expand("") endif " ----------------------------------------------------------------------------- " < ctags 工具配置 > " ----------------------------------------------------------------------------- " 对浏览代码非常的方便,可以在函数,变量之间跳转等 set tags=./tags; "向上级目录递归查找tags文件(好像只有在Windows下才有用) " ----------------------------------------------------------------------------- " < gvimfullscreen 工具配置 > 请确保已安装了工具 " ----------------------------------------------------------------------------- " 用于 Windows Gvim 全屏窗口,可用 F11 切换 " 全屏后再隐藏菜单栏、工具栏、滚动条效果更好 if (g:iswindows && g:isGUI) nmap :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0) endif " ----------------------------------------------------------------------------- " < vimtweak 工具配置 > 请确保以已装了工具 " ----------------------------------------------------------------------------- " 这里只用于窗口透明与置顶 " 常规模式下 Ctrl + Up(上方向键) 增加不透明度,Ctrl + Down(下方向键) 减少不透明度,t 窗口置顶与否切换 if (g:iswindows && g:isGUI) let g:Current_Alpha = 255 let g:Top_Most = 0 func! Alpha_add() let g:Current_Alpha = g:Current_Alpha + 10 if g:Current_Alpha > 255 let g:Current_Alpha = 255 endif call libcallnr("vimtweak.dll","SetAlpha",g:Current_Alpha) endfunc func! Alpha_sub() let g:Current_Alpha = g:Current_Alpha - 10 if g:Current_Alpha < 155 let g:Current_Alpha = 155 endif call libcallnr("vimtweak.dll","SetAlpha",g:Current_Alpha) endfunc func! Top_window() if g:Top_Most == 0 call libcallnr("vimtweak.dll","EnableTopMost",1) let g:Top_Most = 1 else call libcallnr("vimtweak.dll","EnableTopMost",0) let g:Top_Most = 0 endif endfunc "快捷键设置 nmap :call Alpha_add() nmap :call Alpha_sub() nmap t :call Top_window() endif " ============================================================================= " > " ============================================================================= " 自动切换目录为当前编辑文件所在目录 au BufRead,BufNewFile,BufEnter * cd %:p:h " ============================================================================= " > " ============================================================================= " windows 默认编码为 cp936,而 Gvim(Vim) 内部编码为 utf-8,所以常常输出为乱码 " 以下代码可以将编码为 cp936 的输出信息转换为 utf-8 编码,以解决输出乱码问题 " 但好像只对输出信息全部为中文才有满意的效果,如果输出信息是中英混合的,那可能 " 不成功,会造成其中一种语言乱码,输出信息全部为英文的好像不会乱码 " 如果输出信息为乱码的可以试一下下面的代码,如果不行就还是给它注释掉 " if g:iswindows " function QfMakeConv() " let qflist = getqflist() " for i in qflist " let i.text = iconv(i.text, "cp936", "utf-8") " endfor " call setqflist(qflist) " endfunction " au QuickfixCmdPost make call QfMakeConv() " endif " ============================================================================= " > " ============================================================================= " 注:上面配置中的""在本软件中设置为"\"键(引号里的反斜杠),如t " 指在常规模式下按"\"键加"t"键,这里不是同时按,而是先按"\"键后按"t"键,间隔在一 " 秒内,而cs是先按"\"键再按"c"又再按"s"键;如要修改""键,可以把 " 下面的设置取消注释,并修改双引号中的键为你想要的,如修改为逗号键。 " let mapleader = "," " " ============================================================================= " " > " " 调用 C + S + 空格 " " ============================================================================= let g:ywvim_ims=[ \['wb', '五笔', 'wubi.ywvim'], \['py', '拼音', 'pinyin.ywvim'], \] let g:ywvim_py = { 'helpim':'py', 'gb':0 } let g:ywvim_zhpunc = 1 let g:ywvim_listmax = 5 let g:ywvim_esc_autoff = 0 let g:ywvim_autoinput = 0 let g:ywvim_circlecandidates = 1 let g:ywvim_helpim_on = 0 let g:ywvim_matchexact = 0 let g:ywvim_chinesecode = 1 let g:ywvim_gb = 0 let g:ywvim_preconv = 'g2b' let g:ywvim_conv = '' let g:ywvim_lockb = 1

保存配置文件于 ~/.vimrc ,进入 vim 执行 :PluginInstall,进行插件安装

部分插件说明 Bundle

Windows 使用 Bundle 安装插件之前还需要先安装 Git for Windows 然后将 git 目录加入环境变量 ,如 C:\Program Files (x86)\Git\bin 运行 vim 执行 :PluginInstall , 等待插件全部安装完成。

ctags 自动提示

Ctags 需要先下载并编译 http://ctags.sf.net , Windows版本下载 zip 文件 并加入环境变量 C:\Program Files (x86)\Vim\ctags58 Linux 下载源码包编译安装 或使用 apt-get 安装

sudo apt-get install ctags

Mac 下使用 brew 安装

brew install ctags

由于 mac 自带一个ctags,而taglist要求的是exuberant crags,所以我们给我们安装的 tags 一个别名

vim ~/.zsh_aliases

如果使用的是默认的 bash 那应该修改 ~/.bash_aliases 或者 ~/.profile

添加行

alias ctags2="/usr/local/Cellar/ctags/5.8_1/bin/ctags"

使用 ctags 命令生成 ctags 文件

ctags -R

生成完 ctags 文件于本目录中 Vim 中使用

C + ] 命令跳转至函数定义处

C + t 返回跳转前函数

Align 自动对齐 \t= : align assignments (don't count logic, like == or !=) \t, : align on commas \t| : align on vertical bars (|) \tsp : align on whitespace \tt : align LaTeX tabular tables ACK 快速查询函数定义 sudo apt-get install ack

默认配置中使用快捷键 F3 触发查看

NERDTree 文件目录树查看

默认配置中使用快捷键 F2 切换打开/关闭 NERDTree提供了丰富的键盘操作方式来浏览和打开文件,一些常用的快捷键:

通过h j k l移动光标定位 o 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中 go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功能 i和s可以水平分割或纵向分割窗口打开文件,前面加g类似go的功能 t 在标签页中打开 T 在后台标签页中打开 p 到上层目录 P 到根目录 K 到同目录第一个节点 J 到同目录最后一个节点 m 显示文件系统菜单(添加、删除、移动操作) ? 帮助 q 关闭 " be 在当前窗口显示缓存列表并打开选定文件 " bs 水平分割窗口显示缓存列表,并在缓存列表窗口中打开选定文件 " bv 垂直分割窗口显示缓存列表,并在缓存列表窗口中打开选定文件 指 \ 反斜杠 想了解更多操作方式,可以通过? 查看详细的帮助信息。 VIM 的其他命令 转到您的目录 cd xx 首次启动时执行 ctags -R 自动生成 tag 启动VIM vim F2 打开左侧文件树,r 刷新当前目录 R 刷新全部目录 tb 打开右侧函数列表 (或 tl) F3 打开变量/方法说明 C + ] 跳转至方法/变量 定义处 同上一个方法 只是这个会跳转, 如果只是想瞥一下方法的功能使用 F4 即可, F3 全项目搜索该函数定义 C + t 上一个方法跳过去后使用这个跳回来 C + p 全项目搜索文件名称 C + h / j /k / l 可以在多窗口中移动 亦可用于 主窗口中跳至文件树列表或跳至 函数列表等 在文件树窗口中 o 打开文件在主窗口 / 折叠或展开目录 t 在新 tab 中打开 T 在新 tab 中打开不激活(即后台) i 水平分隔主窗口并打开该文件 s 纵向分隔主窗口并打开该文件 打开了多个文件后 \be 查看在缓存中的文件 (有点像 tab 如果没有关闭的都可以切换) \cc 注释掉选择行 \cu 反注释 \cc 的行 如果开了多个 tab (即使用 t / T 打开了文件) gt 切换到下一个 tab gT 切换到上一个 tab 自动提示 使用 C + j / C + k 选择列表中的内容 Html 文件中 emmet 使用 c + y 后 , 逗号 来展开 \t= 格式化选中行 Esc 离得比较远的可以将 Caps Lock 键换成 Esc 在 插入 (insert) 模式下 还可以使用 C + h / j / k / l 来移动 可参考 互换-Ctrl-Caps-Lock-按键 输入中文 C + S + SPACE 默认五笔 z 键临时拼音,用拼音的直接删除配置中的五笔即可 编译相关 F9 保存、编译、打开


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3