VIMRC备忘


"""""""""""""""""""""""""""""""""""""""""
" my super vim configuration "
"""""""""""""""""""""""""""""""""""""""""

""""""""""""""""""""""""""
" 一般设定
""""""""""""""""""""""""""
set nocompatible " 设定非vi兼容模式
set fenc=utf-8 " 设定解码方式
set fencs=utf-8,usc-bom,gb18030,gb2312,gbk,euc-jp,cp936
set history=100 " history文件中需要记录的行数
set confirm " 在处理未保存或只读文件的时候,弹出确认
set clipboard+=unnamed " 与windows共享剪贴板
filetype on " 侦测文件类型
filetype plugin on " 载入文件类型插件
filetype indent on " 为特定文件类型载入相关缩进文件
set viminfo+=! " 保存全局变量
set iskeyword+=_,$,@,%,#,- " 带有如下符号的单词不要被换行分割
set mouse=a " 使用鼠标
set selection=exclusive
set selectmode=mouse,key
set wildmenu " 增强模式中的命令行自动完成操作
"set spell " 拼写检查
set updatetime=100 " 启动函数变量快速浏览的时间设置
set backspace=2 " 使回格键(backspace)正常处理indent, eol, start等
set autowrite " :next指令时自动保存文件内容
set timeoutlen=2000 " 设置map等待时间(毫秒)
set completeopt=preview,menu "代码补全
set acd " 自动改变路径
set tabpagemax=20 " 设置最大标签页数
let tlist_txt_settings = 'txt;c:content;f:figures;t:tables'
au BufRead,BufNewFile *.txt setlocal ft=txt
au BufRead,BufNewFile *.properties setlocal ft=properties

""""""""""""""""""""""""""
" 格式排版
""""""""""""""""""""""""""
set ai " 自动缩进
set formatoptions=tcrqn " 自动格式化
set smartindent " 为C程序提供自动缩进
set cindent " 使用C样式的缩进
set softtabstop=4 " 统一缩进为4
set sw=4 " 自动缩进的时候, 缩进尺寸为 4 个空格。
set ts=4 " Tab 宽度为 4 个字符。
set noexpandtab " 不要用空格代替制表符
set nowrap " 不要换行
set smarttab " 在行和段开始处使用制表符
set cino=:0g0t0 "(sus 设定C/C++ 风格自动缩进的选项)

""""""""""""""""""""""""""
" 显示相关
""""""""""""""""""""""""""
set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示
winpos 5 5 " 设定窗口位置
set lines=40 columns=155 " 设定窗口大小
set nu " 显示行号
set go= " 不要图形按钮
color asmanian2 " 设置背景主题
set guifont=Courier_New:h10:cANSI " 设置字体
syntax on " 语法高亮
autocmd InsertLeave * se nocul " 用浅色高亮当前行
autocmd InsertEnter * se cul " 用浅色高亮当前行
set ruler " 显示标尺
set showcmd " 输入的命令显示出来,看的清楚些
set cmdheight=1 " 命令行(在状态行下)的高度,设置为1
"set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议)
set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离
set novisualbell " 不要闪烁(不明白)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
set laststatus=1 " 启动显示状态行(1),总是显示状态行(2)
set foldenable " 允许折叠
set foldmethod=manual " 手动折叠


"""""""""windows"""""""""
set guioptions+=b " 因为设定为不换行,所以要显示底部滚动条
set guioptions+=r " 显示右滚动条
set guioptions-=l " 不显示左滚动条
set guioptions-=T " 不显示顶部工具栏
"""""""""windows"""""""""


""""""""""""""""""""""""""
" 搜索与匹配
""""""""""""""""""""""""""
set showmatch " 高亮显示匹配的括号
set showmode " 显示当前操作模式
set matchtime=5 " 匹配括号高亮的时间(单位是0.1秒)
set ignorecase " 在搜索的时候忽略大小写
set nohlsearch " 不要高亮被搜索的句子(phrases) [set hlsearch 设置高亮搜索]
set incsearch " 输入字符串就显示匹配点
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " 输入:set list命令是应该显示竖直对齐线条

""""""""""""""""""""""""""
" CTags的设定
""""""""""""""""""""""""""
let Tlist_Sort_Type = "name" " 按照名称排序
let Tlist_Use_Right_Window = 1 " 在右侧显示窗口
let Tlist_Compart_Format = 1 " 压缩方式
let Tlist_Exist_OnlyWindow = 1 " 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_File_Fold_Auto_Close = 0 " 不要关闭其他文件的tags
let Tlist_Enable_Fold_Column = 0 " 不要显示折叠树
autocmd FileType java set tags+=D:\tools\java\tags
autocmd FileType h,cpp,cc,c set tags+=D:\tools\cpp\tags

""""""""""""""""""""""""""
"Omnicppcomplete Configuration
""""""""""""""""""""""""""
let OmniCpp_DefaultNamespaces=["std"]
let OmniCpp_MayCompleteScope=1
set completeopt=longest,menu "关掉智能补全时的预览窗口


""""""""""""""""""""""""""
" taglist
""""""""""""""""""""""""""
let Tlist_Ctags_Cmd=' d:/tools/ctags.exe'
let Tlist_Show_One_File=1 "不同时显示多个文件的tag,只显示当前文件的

""""""""""""""""""""""""""
" 插件相关
""""""""""""""""""""""""""
autocmd FileType java let JavaBrowser_Ctags_Cmd='d:/tools/ctags.exe'


""""""""""""""""""""""""""
" map
""""""""""""""""""""""""""
"去空行
nnoremap <F2> :g/^\s*$/d<CR>
"比较文件
nnoremap <C-F2> :vert diffsplit
"新建标签
map <M-F2> :tabnew<CR>
"列出当前目录文件
"map <F3> :tabnew .<CR>
"打开树状文件目录
nnoremap <F3> :NERDTreeToggle<CR>
"管理打开的文件
map <C-F3> \be
"注释当前行
autocmd FileType java,cpp,cc map <F4> :.,.s/^\s*/\/\//<CR>=<Right>j
"取消注释当前行
autocmd FileType java,cpp,cc map <C-F4> :.,.s/\/\///<CR>=<Right>j
"注释当前行
autocmd FileType sh,properties map <F4> :.,.s/^/#/<CR>j
"取消注释当前行
autocmd FileType sh,properties map <C-F4> :.,.s/#//<CR>j
"注释当前行
autocmd FileType xml,html map <F4> :.,.s/^\s*/<!-- /<CR>:.,.s/\s*$/ -->/<CR>=<Right>j
"取消注释当前行
autocmd FileType xml,html map <C-F4> :.,.s/<!--\s*//<CR>:.,.s/\s*-->//<CR>=<Right>j
"一般格式化
map <F5> gg=G<CR>
"XML文件格式化
autocmd FileType xml map <C-F5> :FormatXML<CR>
"编译java
autocmd FileType java map <F7> :!javac.exe %<CR>
"执行java
autocmd FileType java map <C-F7> :!java %< <CR>
"JavaBrowser
autocmd FileType java nmap <F8> :JavaBrowser<CR>
autocmd FileType java imap <F8> <ESC><F8>
"编译C++
autocmd FileType cpp,cc map <F9> :!g++.exe % -enable-auto-import -o ./bin/Debug/%<.exe <CR>
"执行C++
map <C-F9> :! ".\bin\Debug\""%<.exe <CR>"
nnoremap <F10> :TlistToggle<CR>
map <silent> <F11> :!ctags -R --Java-kinds=+p --fields=+iaS --extra=+q .<CR>
"使用VC的C++编译器编译单个文件并运行
autocmd FileType cpp nnoremap <F12> :w!<CR>:!d:/tools/compile_vc.bat %<CR>
map <Up> gk
map <Down> gj
imap <A-h> <Left>
imap <A-j> <Down>
imap <A-k> <Up>
imap <A-l> <Right>
"空格用来跳过1单词
nnoremap <space> w
" 用alt+空格键来开关折叠
nnoremap <M-space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
nnoremap <Tab> i<Tab><Right><Esc>
nnoremap <M-q> :q<CR>
""""""交换上下两行
nmap <M-Down> :<C-u>move .+1<CR>
nmap <M-Up> :<C-u>move .-2<CR>
imap <M-Down> <C-o>:<C-u>move .+1<CR>
imap <M-Up> <C-o>:<C-u>move .-2<CR>
vmap <M-Down> :move '>+1<CR>gv
vmap <M-Up> :move '<-2<CR>gv
nmap <C-Down> 3<C-E>3j
nmap <C-Up> 3<C-Y>3k
nmap <C-J> 3<C-E>3j
nmap <C-K> 3<C-Y>3k
nmap <C-N> :bn<CR>
nmap <C-P> :bp<CR>
nmap <M-f> :%s/
imap <M-f> <Esc>:%s/
nmap <M-F> :%s/
imap <M-F> <Esc>:%s/
imap <M-c> <Esc>yiw
nmap <M-c> yiw
imap <M-C> <Esc>yiw
nmap <M-C> yiw
"""""""""windows"""""""""
inoremap <M-/> <C-n>
vnoremap <C-C> "+y
nnoremap <C-V> "+gP
cmap <C-V> <C-R>+
map <C-V> "+gP
inoremap <S-Insert> <C-V>
exe 'inoremap <script> <C-V>' paste#paste_cmd['i']
exe 'vnoremap <script> <C-V>' paste#paste_cmd['v']
vnoremap <C-X> "+x
inoremap <C-Z> <C-O>u
nnoremap <C-Z> u
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG
"""""""""windows"""""""""


""""""""""""""""""""""""""
" 代码缩写
""""""""""""""""""""""""""
function JavaSetting()
iab <buffer> class class{<CR>}<Esc>k0f{i
iab <buffer> pclass public class <C-R>% {<CR>}<Esc>k0f.5x0o
iab <buffer> aclass public abstract class <C-R>% {<CR>}<Esc>k0f.5x0o
iab <buffer> mclass public class <C-R>% {<CR>public static void main(String[] args){<CR>}<CR>}<Esc>3k0f.5xjo
iab <buffer> intf public interface <C-R>% {<CR>}<Esc>k0f.5x0o
iab <buffer> main public static void main(String[] args){<CR>}<Esc>O
iab <buffer> ifi if (){<CR>}<Esc>kf(
iab <buffer> ife if(){<CR>}else{<CR>}<Esc>2k0f(
iab <buffer> ifei if(){<CR>}else if(){<CR>}else{<CR>}<Esc>3k0f(
iab <buffer> while while (){<CR>}<Esc>kf(<Esc>
iab <buffer> for for(){<CR>}<Esc>kf(<Esc>
iab <buffer> fori for(int i=0;i<x;i++){<CR>}<Esc>kfxc
iab <buffer> switch switch (){<CR>case :<CR>break;<CR>case :<CR>break;<CR>default :<CR>break;<CR>}<Esc>7kf(
iab <buffer> try try{<CR>}catch(Exception e){<CR>e.printStackTrace();<CR>}<Esc>2kO
iab <buffer> tryf try{<CR>}catch(Exception e){<CR>e.printStackTrace();<CR>}finally{<CR>}<Esc>3kO
iab <buffer> syso System.out.println();<Esc>2h
iab <buffer> imp implements
iab <buffer> ext extends
endfunction

function CppSetting()
iab <buffer> main int main(int argc, char** argv){<CR>}<Esc>O
iab <buffer> class class{<CR>public:<CR>private:<CR>};<Esc>3k05li
iab <buffer> ifi if (){<CR>}<Esc>kf(
iab <buffer> ife if(){<CR>}else{<CR>}<Esc>2k0f(
iab <buffer> ifei if(){<CR>}else if(){<CR>}else{<CR>}<Esc>3k0f(
iab <buffer> while while (){<CR>}<Esc>kf(<Esc>
iab <buffer> for for(){<CR>}<Esc>kf(<Esc>
iab <buffer> fori for(int i=0;i<x;i++){<CR>}<Esc>kfxc
iab <buffer> switch switch (){<CR>case :<CR>break;<CR>case :<CR>break;<CR>default :<CR>break;<CR>}<Esc>7kf(
iab <buffer> #inc #include
iab <buffer> #ifn #ifndef
iab <buffer> #def #define
iab <buffer> #end #endif
iab <buffer> usn using namespace
endfunction

autocmd FileType java :call JavaSetting()
autocmd FileType h,cpp,cc :call CppSetting()

""""""""""""""""""""""""""
" xml格式化
""""""""""""""""""""""""""
function! DoFormatXML()
set encoding=cp936 fileencodings=utf-8 fileencoding=utf-8

let l:origft = &ft
set ft=
1s///e
0put =""
$put =""
cd D:\tools
silent %!java -classpath .;dom4j-1.6.1.jar xml.XmlFormater %
silent %<
1
exe "set ft=" . l:origft
endfunction
command! FormatXML call DoFormatXML()

""""""""""""""""""""""""""
" 编辑vimrc文件
""""""""""""""""""""""""""
function! Vimrc()
silent :e e:\Program Files\Vim\_vimrc
endfunction
command! Vimrc call Vimrc()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值