" An example for a vimrc file. " " Maintainer: Bram Moolenaar <Bram@vim.org> " Last change: 2008 Dec 17 " " To use it, copy it to " for Unix and OS/2: ~/.vimrc " for Amiga: s:.vimrc " for MS-DOS and Win32: $VIM\_vimrc " for OpenVMS: sys$login:.vimrc
" When started as "evim", evim.vim will already have done these settings. if v:progname =~? "evim" finish endif
" Use Vim settings, rather than Vi settings (much better!). " This must be first, because it changes other options as a side effect. set nocompatible
" allow backspacing over everything in insert mode set backspace=indent,eol,start
if has("vms") set nobackup " do not keep a backup file, use versions instead else set backup " keep a backup file endif set history=50 " keep 50 lines of command line history set ruler " show the cursor position all the time set showcmd " display incomplete commands set incsearch " do incremental searching
" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries " let &guioptions = substitute(&guioptions, "t", "", "g")
" Don't use Ex mode, use Q for formatting map Q gq
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, " so that you can undo CTRL-U after inserting a line break. inoremap <C-U> <C-G>u<C-U>
" In many terminal emulators the mouse works just fine, thus enable it. if has('mouse') set mouse=a endif
" Switch syntax highlighting on, when the terminal has colors " Also switch on highlighting the last used search pattern. if &t_Co > 2 || has("gui_running") syntax on set hlsearch endif
" Only do this part when compiled with support for autocommands. if has("autocmd")
" Enable file type detection. " Use the default filetype settings, so that mail gets 'tw' set to 72, " 'cindent' is on in C files, etc. " Also load indent files, to automatically do language-dependent indenting. filetype plugin indent on
" Put these in an autocmd group, so that we can delete them easily. augroup vimrcEx au!
" For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78
" When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). " Also don't do it when the mark is in the first line, that is the default " position when opening a file. autocmd BufReadPost * \ if line("'\"") > 1 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif
augroup END
else
set autoindent " always set autoindenting on
endif " has("autocmd")
" Convenient command to see the difference between the current buffer and the " file it was loaded from, thus the changes you made. " Only define it when not defined already. if !exists(":DiffOrig") command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis \ | wincmd p | diffthis endif
" Set options and add mapping such that Vim behaves a lot like MS-Windows " " Maintainer: Bram Moolenaar <Bram@vim.org> " Last change: 2006 Apr 02
" bail out if this isn't wanted (mrsvim.vim uses this). if exists("g:skip_loading_mswin") && g:skip_loading_mswin finish endif
" set the 'cpoptions' to its Vim default if 1 " only do this when compiled with expression evaluation let s:save_cpo = &cpoptions endif set cpo&vim
" set 'selection', 'selectmode', 'mousemodel' and 'keymodel' for MS-Windows behave mswin
" backspace and cursor keys wrap to previous/next line set backspace=indent,eol,start whichwrap+=<,>,[,]
" backspace in Visual mode deletes selection vnoremap <BS> d
" CTRL-X and SHIFT-Del are Cut vnoremap <C-X> "+x vnoremap <S-Del> "+x
" CTRL-C and CTRL-Insert are Copy vnoremap <C-C> "+y vnoremap <C-Insert> "+y
" CTRL-V and SHIFT-Insert are Paste map <C-V> "+gP map <S-Insert> "+gP
cmap <C-V> <C-R>+ cmap <S-Insert> <C-R>+
" Pasting blockwise and linewise selections is not possible in Insert and " Visual mode without the +virtualedit feature. They are pasted as if they " were characterwise instead. " Uses the paste.vim autoload script.
" Use CTRL-Q to do what CTRL-V used to do noremap <C-Q> <C-V>
" Use CTRL-S for saving, also in Insert mode noremap <C-S> :update<CR> vnoremap <C-S> <C-C>:update<CR> inoremap <C-S> <C-O>:update<CR>
" For CTRL-V to work autoselect must be off. " On Unix we have two selections, autoselect can be used. if !has("unix") set guioptions-=a endif
" CTRL-Z is Undo; not in cmdline though noremap <C-Z> u inoremap <C-Z> <C-O>u
" CTRL-Y is Redo (although not repeat); not in cmdline though noremap <C-Y> <C-R> inoremap <C-Y> <C-O><C-R>
" Alt-Space is System menu if has("gui") noremap <M-Space> :simalt ~<CR> inoremap <M-Space> <C-O>:simalt ~<CR> cnoremap <M-Space> <C-C>:simalt ~<CR> endif
"缩进线设置,这里你可以把“|”改为你喜欢的缩进线符号,推荐使用“:”或者“.”。这里要注意的是,缩进线只有对Tab缩进有效,而空格缩进无效 set list set listchars=tab:\|\
"设定文件浏览器目录为当前目录 set autochdir
"设置不自动换行 set nowrap
"显示下方的横向滚动条 set guioptions+=b
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 一般设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 设定默认解码 set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
" 不要使用vi的键盘模式,而是vim自己的 set nocompatible
" history文件中需要记录的行数 set history=100
" 在处理未保存或只读文件的时候,弹出确认 set confirm
" 与windows共享剪贴板 set clipboard+=unnamed
" 侦测文件类型 filetype on
" 载入文件类型插件 filetype plugin on filetype plugin indent on
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文件设置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 不要备份文件(根据自己需要取舍) set nobackup
" 不要生成swap文件,当buffer被丢弃的时候隐藏它 setlocal noswapfile set bufhidden=hide
" 字符间插入的像素行数目 set linespace=0
" 增强模式中的命令行自动完成操作 set wildmenu
" 在状态行上显示光标所在位置的行号和列号 set ruler set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)
" 命令行(在状态行下)的高度,默认为1,这里是2 set cmdheight=2
" 使回格键(backspace)正常处理indent, eol, start等 set backspace=2
" 允许backspace和光标键跨越行边界 set whichwrap+=<,>,h,l
" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) set mouse=a set selection=exclusive set selectmode=mouse,key
" 启动的时候不显示那个援助索马里儿童的提示 set shortmess=atI
" 通过使用: commands命令,告诉我们文件的哪一行被改变过 set report=0
" 不让vim发出讨厌的滴滴声 set noerrorbells
" 在被分割的窗口间显示空白,便于阅读 set fillchars=vert:\ ,stl:\ ,stlnc:\
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 搜索和匹配 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 高亮显示匹配的括号 set showmatch
" 匹配括号高亮的时间(单位是十分之一秒) set matchtime=5
" 在搜索的时候忽略大小写 set ignorecase
" 不要高亮被搜索的句子(phrases) set nohlsearch
" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索) set incsearch
" 输入:set list命令是应该显示些啥? set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
" 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=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=2
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文本格式和排版 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 自动格式化 set formatoptions=tcrqn
" 继承前一行的缩进方式,特别适用于多行注释 set autoindent
" 为C程序提供自动缩进 set smartindent
" 使用C样式的缩进 set cindent
" 制表符为2 set tabstop=2
" 统一缩进为2 set softtabstop=2 set shiftwidth=2
" 不要用空格代替制表符 set noexpandtab
" 不要换行 set nowrap
" 在行和段开始处使用制表符 set smarttab
let fortran_free_source=1 let fortran_more_precise=1 let fortran_do_enddo=1 "去掉固定格式每行开头的红色填充 let fortran_have_tabs=1
" 配置ctags set tags=tags set autochdir
" 配置taglist let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1
nnoremap <silent> <F4> :Grep<CR>
"允许Fortran代码折叠 let fortran_fold=1
"设置代码折叠的方式,这样每个program、module、subroutine、function都可以折叠了 set foldmethod=syntax
"如果前面启用了代码折叠,那么文件一打开代码全部是折叠的,需再按“zO”打开全部折叠的代码 "如果想在文件打开后所有折叠都自动展开,请加入以下配置 set foldlevelstart=99
"设置代码折叠符号(行号左侧),可要可不要,看自己喜欢了 set foldcolumn=4
"配置WinManager let g:winManagerWindowLayout='FileExplorer|TagList|BufExplorer' let g:winManagerWidth=35 "这里设置左侧栏目的宽度 nmap <F3> :WMToggle<cr> "映射F3键为开关Winmanager