linux vim 配置文件(高亮+自动缩进+行号+折叠+优化




linux vim 配置文件(高亮+自动缩进+行号+折叠+优化

2022-07-20 20:30:51 网络知识 官方管理员

如果想所有用户生效请修改/etc/vimrc(建议先cp一份)
"=========================================================================
"DesCRiption:适合自己使用的vimrc文件,forLinux/Windows,GUI/Console
"
"LastChange:2010年08月02日15时13分
"
"Version:1.80
"
"=========================================================================

setnocompatible"关闭vi兼容模式
syntaxon"自动语法高亮
colorschememolokai"设定配色方案
setnumber"显示行号
setcursorline"突出显示当前行
setruler"打开状态栏标尺
setshift width=4"设定<<和>>命令移动时的宽度为4
setsofttabstop=4"使得按退格键时可以一次删掉4个空格
settabstop=4"设定tab长度为4
setnobackup"覆盖文件时不备份
setautochdir"自动切换当前目录为当前文件所在的目录
filetypepluginindenton"开启插件
setbackupcopy=yes"设置备份时的行为为覆盖
setignorecasesmartcase"搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
setnowrapscan"禁止在搜索到文件两端时重新搜索
setincsearch"输入搜索内容时就显示搜索结果
sethlsearch"搜索时高亮显示被找到的文本
setnoerrorbells"关闭错误信息响铃
setnovisualbell"关闭使用可视响铃代替呼叫
sett_vb="置空错误铃声的终端代码
"setshowmatch"插入括号时,短暂地跳转到匹配的对应括号
"setmatchtime=2"短暂跳转到匹配括号的时间
setmagic"设置魔术
sethidden"允许在有未保存的修改时切换缓冲区,此时的修改由vim负责保存
setguioptions-=T"隐藏工具栏
setguioptions-=m"隐藏菜单栏
setsmartindent"开启新行时使用智能自动缩进
setbackspace=indent,eol,start
"不设定在插入状态无法用退格键和Delete键删除回车符
setcmdheight=1"设定命令行的行数为1
setlaststatus=2"显示状态栏(默认值为1,无法显示状态栏)
setstatusline=\%<%F[%1*%M%*%n%R%H]%=\%y\%0(%{&fileformat}\%{&encoding}\%c:%l/%L%)\
"设置在状态行显示的信息
setfoldenable"开始折叠
setfoldmethod=syntax"设置语法折叠
setfoldcolumn=0"设置折叠区域的宽度
setlocalfoldlevel=1"设置折叠层数为
"setfoldclose=all"设置为自动关闭折叠
"nnoremap<space>@=((foldclosed(line('.'))<0)?'zc':'zo')<CR>
"用空格键来开关折叠


"returnOStype,eg:windows,orlinux,mac,et.st..
function!MySys()
ifhas("win16")||has("win32")||has("win64")||has("win95")
return"windows"
elseifhas("unix")
return"linux"
endif
endfunction

"用户目录变量$VIMFILES
ifMySys()=="windows"
let$VIMFILES=$VIM.'/vimfiles'
elseifMySys()=="linux"
let$VIMFILES=$HOME.'/.vim'
endif

"设定doc文档目录
lethelptags=$VIMFILES.'/doc'

"设置字体以及中文支持
ifhas("win32")
setguifont=Inconsolata:h12:cANSI
endif

"配置多语言环境
ifhas("multi_byte")
"UTF-8编码
setencoding=utf-8
settermencoding=utf-8
setformatoptions+=mM
setfencs=utf-8,gbk

ifv:lang=~?'^\(zh\)\|\(ja\)\|\(ko\)'
setambi width=double
endif

ifhas("win32")
source$VIMRUNTIME/delmenu.vim
source$VIMRUNTIME/menu.vim
languagemessageszh_CN.utf-8
endif
else
echoerr"Sorry,thisversionof(g)vimwasnotcompiledwith+multi_byte"
endif

"Buffers操作快捷方式!
nnoremap<C-RETURN>:bnext<CR>
nnoremap<C-S-RETURN>:bprevious<CR>

"Tab操作快捷方式!
nnoremap<C-TAB>:tabnext<CR>
nnoremap<C-S-TAB>:tabprev<CR>

"关于tab的快捷键
"maptn:tabnext<cr>
"maptp:tabprevious<cr>
"maptd:tabnew.<cr>
"mapte:tabedit
"maptc:tabclose<cr>

"窗口分割时,进行切换的按键热键需要连接两次,比如从下方窗口移动
"光标到上方窗口,需要<c-w><c-w>k,非常麻烦,现在重映射为<c-k>,切换的
"时候会变得非常方便.
nnoremap<C-h><C-w>h
nnoremap<C-j><C-w>j
nnoremap<C-k><C-w>k
nnoremap<C-l><C-w>l

"一些不错的映射转换语法(如果在一个文件中混合了不同语言时有用)
nnoremap<leader>1:setfiletype=xhtml<CR>
nnoremap<leader>2:setfiletype=css<CR>
nnoremap<leader>3:setfiletype=javascript<CR>
nnoremap<leader>4:setfiletype=php<CR>

"setfileformats=unix,dos,mac
"nmap<leader>fd:sefileformat=dos<CR>
"nmap<leader>fu:sefileformat=unix<CR>

"useCtrl+[l|n|p|cc]tolist|next|previous|jumptocounttheresult
"map<C-x>l<ESC>:cl<CR>
"map<C-x>n<ESC>:cn<CR>
"map<C-x>p<ESC>:cp<CR>
"map<C-x>c<ESC>:cc<CR>


"让Tohtml产生有CSS语法的html
"syntax/2html.vim,可以用:runtime!syntax/2html.vim
lethtml_use_css=1

"Python文件的一般设置,比如不要tab等
autocmdFileTypepythonsettabstop=4shift width=4expandtab
autocmdFileTypepythonmap<F12>:!python%<CR>

"选中状态下Ctrl+c复制
vmap<C-c>"+y

"打开javascript折叠
letb:javascript_fold=1
"打开javascript对dom、html和css的支持
letjavascript_enable_domhtmlcss=1
"设置字典~/.vim/dict/文件的路径
autocmdfiletypejavascriptsetdictionary=$VIMFILES/dict/javascript.dict
autocmdfiletypecsssetdictionary=$VIMFILES/dict/css.dict
autocmdfiletypephpsetdictionary=$VIMFILES/dict/php.dict

"-----------------------------------------------------------------
"plugin-bufexplorer.vimBuffers切换
"\be全屏方式查看全部打开的文件列表
"\bv左右方式查看\bs上下方式查看
"-----------------------------------------------------------------


"-----------------------------------------------------------------
"plugin-taglist.vim查看函数列表,需要ctags程序
"F4打开隐藏taglist窗口
"-----------------------------------------------------------------
ifMySys()=="windows""设定windows系统中ctags程序的位置
letTlist_Ctags_Cmd='"'.$VIMRUNTIME.'/ctags.exe"'
elseifMySys()=="linux""设定windows系统中ctags程序的位置
letTlist_Ctags_Cmd='/usr/bin/ctags'
endif
nnoremap<silent><F4>:TlistToggle<CR>
letTlist_Show_One_File=1"不同时显示多个文件的tag,只显示当前文件的
letTlist_Exit_OnlyWindow=1"如果taglist窗口是最后一个窗口,则退出vim
letTlist_Use_Right_Window=1"在右侧窗口中显示taglist窗口
letTlist_File_Fold_Auto_Close=1"自动折叠当前非编辑文件的方法列表
letTlist_Auto_Open=0
letTlist_Auto_Update=1
letTlist_Hightlight_Tag_On_BufEnter=1
letTlist_Enable_Fold_Column=0
letTlist_Process_File_Always=1
letTlist_Display_Prototype=0
letTlist_Compact_Format=1


"-----------------------------------------------------------------
"plugin-mark.vim给各种tags标记不同的颜色,便于观看调式的插件。
"\mmarkorunmarkthewordunder(orbefore)thecursor
"\rmanuallyinputaregularexpression.用于搜索.
"\nclearthismark(i.e.themarkunderthecursor),orclearallhighlightedmarks.
"\*当前MarkWord的下一个\#当前MarkWord的上一个
"\/所有MarkWords的下一个\?所有MarkWords的上一个
"-----------------------------------------------------------------


"-----------------------------------------------------------------
"plugin-NERD_tree.vim以树状方式浏览系统中的文件和目录
":ERDtree打开NERD_tree:NERDtreeClose关闭NERD_tree
"o打开关闭文件或者目录t在标签页中打开
"T在后台标签页中打开!执行此文件
"p到上层目录P到根目录
"K到第一个节点J到最后一个节点
"u打开上层目录m显示文件系统菜单(添加、删除、移动操作)
"r递归刷新当前目录R递归刷新当前根目录
"-----------------------------------------------------------------
"F3NERDTree切换
map<F3>:NERDTreeToggle<CR>
imap<F3><ESC>:NERDTreeToggle<CR>


"-----------------------------------------------------------------
"plugin-NERD_commenter.vim注释代码用的,
"[count],cc光标以下count行逐行添加注释(7,cc)
"[count],cu光标以下count行逐行取消注释(7,cu)
"[count],cm光标以下count行尝试添加块注释(7,cm)
",cA在行尾插入/**/,并且进入插入模式。这个命令方便写注释。
"注:count参数可选,无则默认为选中行或当前行
"-----------------------------------------------------------------
letNERDSpaceDelims=1"让注释符与语句之间留一个空格
letNERDCompactSexyComs=1"多行注释时样子更好看


"-----------------------------------------------------------------
"plugin-DoxygenToolkit.vim由注释生成文档,并且能够快速生成函数标准注释
"-----------------------------------------------------------------
letg:DoxygenToolkit_authorName="Asins-asinsimpleATgmailDOTcom"
letg:DoxygenToolkit_briefTag_funcName="yes"
map<leader>da:DoxAuthor<CR>
map<leader>df:Dox<CR>
map<leader>db:DoxBlock<CR>
map<leader>dca/**/<LEFT><LEFT><LEFT>


"-----------------------------------------------------------------
"plugin–ZenCoding.vim很酷的插件,HTML代码生成
"插件最新版:http://github.com/mattn/zencoding-vim
"常用命令可看:http://nootn.com/blog/Tool/23/
"-----------------------------------------------------------------


"-----------------------------------------------------------------
"plugin–checksyntax.vimJavaScript常见语法错误检查
"默认快捷方式为F5
"-----------------------------------------------------------------
letg:checksyntax_auto=0"不自动检查


"-----------------------------------------------------------------
"plugin-NeoComplCache.vim自动补全插件
"-----------------------------------------------------------------
letg:AutoComplPop_NotEnableAtStartup=1
letg:NeoComplCache_EnableAtStartup=1
letg:NeoComplCache_SmartCase=1
letg:NeoComplCache_TagsAutoUpdate=1
letg:NeoComplCache_EnableInfo=1
letg:NeoComplCache_EnableCamelCaseCompletion=1
letg:NeoComplCache_MinSyntaxLength=3
letg:NeoComplCache_EnableSkipCompletion=1
letg:NeoComplCache_SkipInputTime='0.5'
letg:NeoComplCache_SnippetsDir=$VIMFILES.'/snippets'
"<TAB>completion.
inoremap<expr><TAB>pumvisible()?"\<C-n>":"\<TAB>"
"snippetsexpandkey
imap<silent><C-e><Plug>(neocomplcache_snippets_expand)
smap<silent><C-e><Plug>(neocomplcache_snippets_expand)


"-----------------------------------------------------------------
"plugin-matchit.vim对%命令进行扩展使得能在嵌套标签和语句之间跳转
"%正向匹配g%反向匹配
"[%定位块首]%定位块尾
"-----------------------------------------------------------------


"-----------------------------------------------------------------
"plugin-vcscommand.vim对%命令进行扩展使得能在嵌套标签和语句之间跳转
"SVN/git管理工具
"-----------------------------------------------------------------


"-----------------------------------------------------------------
"plugin–a.vim
"-----------------------------------------------------------------


发表评论:

最近发表
网站分类
标签列表