开源中文网

您的位置: 首页 > Linux应用 > vim > 正文

Linux/Unix中VIM编辑器配置文件

来源: 网络整理  作者: 佚名

VIM编辑器是linux系统中一个常用的代码编辑器了,但这个编辑器在使用之前我们需要进行简单的配置了,下面给各位整理一个VIM编辑器配置文件

非常抱歉,这是我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<cr>
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 ( ()<LEFT>
"inoremap [ []<LEFT>
"inoremap { {}<LEFT>
"inoremap < <><LEFT>
"inoremap " ""<LEFT>
"inoremap ' ''<LEFT>

"set nowrap               " 设置不自动换行
set wrap                  " 设置自动换行
map nw :set nowrap<CR>

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 <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>   " 用空格键来开关折叠

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 <Esc>
imap jj <Esc>

autocmd BufEnter * cd %:p:h "自动将 Vim 工作目录迁移到所打开文本文件的目录下
map tt :tabnew<CR>  "tt新建标签;
map tn :tabn<CR>
map tp :tabp<CR>
"map <A-Left> :tabp<CR>  "切换标签页;使用Alt+←切换
"map <A-Right> :tabn<CR>  "切换标签页;使用Alt+→切换
"map <Tab> :tabn<CR>  "使用tab切换标签页

map cc :tabc<CR>  "按cc关闭当前标签
map <S-C> :tabc<CR>  "按Shift+c关闭当前标签
map to :tabo<CR>  "关闭其他标签

set showtabline=1  "设置标签栏的显示,0永远不显示 1两个以上显示 2 永远显示
map ft :set ft=html<CR>

nmap <S-L> dd       "提高用dd命令删除行的性能
nmap kil :g/^\s*$/d<CR>

"标签页栏中去除当前所编辑文件的路径信息,只保留文件名
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<CR> "打开最近打开文件

"###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\)\@<!$[[file]]']  "只显示txt文件
map ` :NERDTreeToggle<CR>
map ne :NERDTreeToggle<cr>
""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 <S-E> :WinResizerStartResize<CR>
map rs :WinResizerStartResize<CR>

"定制ZenCoding,用Ctrl+e替换ctrl+y+展开表达式
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
let g:user_emmet_expandabbr_key = '<c-e>'
let g:user_zen_settings = {
   \ 'php' : {
   \ 'extends' : 'html',
   \ 'filters' : 'c',
   \ },
   \ 'xml' : {
   \ 'extends' : 'html',
   \ },
   \ 'html' : {
   \ 'extends' : 'html',
   \ },
   \}
let g:use_zen_complete_tag = 1

map <C-S-R> :FufFileRecursive<CR>

"###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()

Tags:编辑器 文件
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明