set nocompatible "不兼容vi syntax on "语法高亮度显示 set noerrorbells " 不让vim发出讨厌的滴滴声 set shortmess=atI " 启动的时候不显示那个援助索马里儿童的提示 set t_Co=256 "开启256色支持 set hlsearch "搜索设置高亮 colorscheme desert "配色方案 set background=dark "配置主题整体的色调,只有两个选择:dark和light(暗色调和亮色调) highlight Function cterm=bold,underline ctermbg=red ctermfg=green "color set set nu "显示行号 set relativenumber "显示相对行号 set cursorcolumn "add cursor in column set cursorline "add cursor in line "set guifont=Monospace\ 16 "gui style set guifont=Courier_new:h16 set lines=35 columns=118 "其中lines是窗口显示的行数,columns是窗口显示的列数 winpos 200 100 "后面两个参数指的自屏幕左上角像素值参考位置 set tabstop=4 "tab键相当于4个空格键 set expandtab "來將 tab 转成 space combine with tabstop set shiftwidth=4 "换行自动变为空格 set autoindent "设置自动缩进 自动缩进,当你第一行敲 tab + 文字 回车后 下一行自动给你加个 tab set backspace=2 "enable backspace set novisualbell "不要闪烁 set laststatus=2 "启动显示状态行 set encoding=utf-8 "文件编码 set completeopt=menu,preview,longest "自动补全相关的设置 "不要生成swap文件,当buffer被丢弃的时候隐藏它 set local noswapfile set bufhidden=hide inoremap ( ()<ESC>i inoremap [ []<ESC>i "ban up and also keys "imap <Up> <Nop> "imap <Down> <Nop> "imap <Left> <Nop> "imap <Right> <Nop> "nmap <Up> <Nop> "nmap <Down> <Nop> "nmap <Left> <Nop> "nmap <Right> <Nop>
imap jk <Esc> "在编辑模式下使用jk替代ESC进入命令模式 imap <C-L> <C-X><C-L> “使用CTRL L 代替 CTRL X +CTRL L 就是整个句子的补全 nmap ,l ^ nmap ,r $ "进行版权声明的设置 "添加或更新头 map <F3> :call TitleDet()<cr>'s function AddTitle() call append(0,"/*=============================================================================") call append(1,"#") call append(2,"# Author: meng - email@vip.qq.com") call append(3,"#") call append(4,"# QQ : xxxxxxxxx ") call append(5,"#") call append(6,"# Last modified: ".strftime("%Y-%m-%d %H:%M")) call append(7,"#") call append(8,"# Filename: ".expand("%:t")) call append(9,"#") call append(10,"# Description: ") call append(11,"#") call append(12,"=============================================================================*/") echohl WarningMsg | echo"Successful in adding the copyright." | echohl None endf "更新最近修改时间和文件名 function UpdateTitle() normal m' execute '/# *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@' normal '' normal mk execute '/# *Filename:/s@:.*$@\=":\t\t".expand("%:t")@' execute "noh" normal 'k echohl WarningMsg | echo "Successful in updating the copy right." | echohl None endfunction "判断前10行代码里面,是否有Last modified这个单词, "如果没有的话,代表没有添加过作者信息,需要新添加; "如果有的话,那么只需要更新即可 function TitleDet() let n=1 "默认为添加 while n < 10 let line = getline(n) if line =~ '^\#\s*\S*Last\smodified:\S*.*$' call UpdateTitle() return endif let n = n + 1 endwhile call AddTitle() endfunction
几点说明
1,禁用方向键,使用 jk 代替ESC
在VIN中操作,为了使得双手脱离键盘,但是方向键距离手指较远,ESC同样,因此禁用掉方向键,同时使用jk代替ESC进入命令模式。 VIM中有三种模式:命令模式,输入模式,命令行模式,其map映射 在vim配置文件中经常会看到map、nmap、imap n ——表示在普通模式下生效。 v ——表示在可视模式下生效。 i ——表示在插入模式下效。 具体配置方式见上