linuxunix中vim编辑器配置文件_Linux/Unix中VIM编辑器配置文件

更新时间:2019-10-31    来源:linux    手机版     字体:

【www.bbyears.com--linux】


非常抱歉,这是我12年的配置了,曾经在开源中国社区分享过,后面也在不断更新和修改。比较适合前端工程师使用。
vim的配置如下:


set nocompatible
syntax enable                " 打开语法高亮
syntax on                    " 开启文件类型侦测
filetype indent on           " 针对不同的文件类型采用不同的缩进格式;indent on就是按indent目录下脚本自动缩进
filetype plugin off          " 针对不同的文件类型加载对应的插件;plugin on就是允许执行 ftplugin目录下的文件类型特定的脚本。
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle "maksimr/vim-jsbeautify"
"filetype plugin indent on   "合并写法
set tabstop=4                " 设置tab键的宽度
set shiftwidth=4             " 换行时行间交错使用4个空格
set autoindent               " 自动对齐
set backspace=2              " 设置退格键可用
set cindent shiftwidth=4     " 自动缩进4空格
set smartindent              " 智能自动缩进
set ai!                      " 设置自动缩进
set nu!                      " 显示行号
set showmatch                " 显示括号配对情况
set matchtime=5              " 匹配括号高亮的时间(单位是十分之一秒)
set mouse=a                  " 启用鼠标
set ruler                    " 右下角显示光标位置的状态行
set incsearch                " 查找book时,当输入/b时会自动找到
set hlsearch                 " 开启高亮显示结果
set incsearch                " 开启实时搜索功能
set nowrapscan               " 搜索到文件两端时不重新搜索
map nh :noh
set nocompatible             " 关闭兼容模式
set vb t_vb=                 " 关闭提示音
set cursorline               " 突出显示当前行
set hidden                   " 允许在有未保存的修改时切换缓冲区
set list
set lcs=tab:\|\
hi SpecialKey guifg=#0087AF
 
set history=1000       " 历史记录数
set ignorecase         "搜索忽略大小写
 
" 自动插入匹配括号
"inoremap ( ()
"inoremap [ []
"inoremap { {}
"inoremap < <>
"inoremap " ""
"inoremap " ""
 
"set nowrap               " 设置不自动换行
set wrap                  " 设置自动换行
map nw :set nowrap
 
set writebackup              " 设置无备份文件
set nobackup
set directory=.,$TEMP        "解决“无法打开未命名交换文件,恢复将不可能”错误
"set autochdir                " 设定文件浏览器目录为当前目录
 
"set foldenable              " 开始折叠
"set foldmethod=indent       " 设置语法折叠;za/zo/zO折叠和展开
"set foldcolumn=0            " 设置折叠区域的宽度
"setlocal foldlevel=1        " 设置折叠层数为
"set foldlevelstart=99       " 打开文件是默认不折叠代码
"set foldclose=all          " 设置为自动关闭折叠               
"nnoremap @=((foldclosed(line(".")) < 0) ? "zc" : "zo")   " 用空格键来开关折叠
 
set laststatus=2                          " 开启状态栏信息
set cmdheight=1                           " 命令行的高度,默认为1,这里可以重设
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %y%r%m%*%=\ %{strftime(\"%y/%m/%d\ -\ %H:%M\")} " 状态行显示的内容 [包括系统平台、文件类型、坐标、所占比例、时间等
 
set shm+=I  "去掉启动画面
map JJ
imap jj
 
autocmd BufEnter * cd %:p:h "自动将 Vim 工作目录迁移到所打开文本文件的目录下
map tt :tabnew  "tt新建标签;
map tn :tabn
map tp :tabp
"map :tabp  "切换标签页;使用Alt+←切换
"map :tabn  "切换标签页;使用Alt+→切换
"map :tabn  "使用tab切换标签页
 
map cc :tabc  "按cc关闭当前标签
map :tabc  "按Shift+c关闭当前标签
map to :tabo  "关闭其他标签
 
set showtabline=1  "设置标签栏的显示,0永远不显示 1两个以上显示 2 永远显示
map ft :set ft=html
 
nmap dd       "提高用dd命令删除行的性能
nmap kil :g/^\s*$/d
 
"标签页栏中去除当前所编辑文件的路径信息,只保留文件名
function ShortTabLabel ()
 let bufnrlist = tabpagebuflist (v:lnum)
 let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])
 let filename = fnamemodify (label, ":t")
 return filename
endfunction
set guitablabel=%{ShortTabLabel()}
 
""""""""""""""""""""
""""""插件类""""""""
""""""""""""""""""""
 
"###MRU###
nmap mr :MRU "打开最近打开文件
 
"###NERDTree###
 
let NERDTreeWinPos ="left"                      "将NERDTree的窗口设置在gvim窗口的左边
let NERDTreeShowBookmarks=1                     "当打开NERDTree窗口时,自动显示Bookmarks
"let NERDTreeMinimalUI=1                        "不显示帮助面板
let NERDTreeChDirMode=2                         "选中root即设置为当前目录
let NERDTreeCaseSensitiveSort=0                 "不分大小写排序 
let NERDTreeQuitOnOpen=0                        "打开文件后, 关闭NERDTrre窗口 
let NERDTreeHighlightCursorline=1               "高亮NERDTrre窗口的当前行 
let NERDTreeIgnore=["\.zip$","\~$","\.png$","\.gif$","\.jpg$","\.bak$","\.html$","\.rar$","\.swp$"]                "不显示指定的类型的文件
"let NERDTreeIgnore += ["\(\.txt\)\@ map ` :NERDTreeToggle
map ne :NERDTreeToggle
""open a NERDTree automatically when vim starts up
"autocmd vimenter * NERDTree
"" open a NERDTree automatically when vim starts up if no files were specified
"autocmd vimenter * if !argc() | NERDTree | endif
"close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
 
"###session###
let g:session_autosave = "yes"
let g:session_autoload = "yes"
 
"###WinResizer###
"let g:winresizer_enable = 0
map :WinResizerStartResize
map rs :WinResizerStartResize
 
"定制ZenCoding,用Ctrl+e替换ctrl+y+展开表达式
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
let g:user_emmet_expandabbr_key = ""
let g:user_zen_settings = {
   \ "php" : {
   \ "extends" : "html",
   \ "filters" : "c",
   \ },
   \ "xml" : {
   \ "extends" : "html",
   \ },
   \ "html" : {
   \ "extends" : "html",
   \ },
   \}
let g:use_zen_complete_tag = 1
 
map :FufFileRecursive
 
"###auto_save
let g:auto_save = 0  " enable AutoSave on Vim startup
"let g:auto_save_no_updatetime = 1  " do not change the "updatetime" option
 
"JsBeautify
map  :call JsBeautify()
" or
autocmd FileType javascript noremap    :call JsBeautify()
" for html
autocmd FileType html noremap   :call HtmlBeautify()
" for css or scss
autocmd FileType css noremap   :call CSSBeautify()

本文来源:http://www.bbyears.com/caozuoxitong/76572.html