Linux 终端模式下 vim 的一些个人配置

环境: 腾讯云的主机

默认的全局配置在/etc/vimrc

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
    set fileencodings=ucs-bom,utf-8,latin1
endif
set nocompatible " Use Vim defaults (much better!)
set bs=indent,eol,start "allow backspacing over everything in insert mode 
"set ai " always set autoindenting on
"set backup " keep a backup file
set viminfo='20,\"50 " read/write a .viminfo file, don't store more than 50 lines of registers 
set history=50 " keep 50 lines of command line history 
set ruler " show the cursor position all the time 
" Only do this part when compiled with support for autocommands 
if has("autocmd") 
  augroup redhat 
  autocmd! 
  " In text files, always limit the width of text to 78 characters 
  " autocmd BufRead *.txt set tw=78 
  " When editing a file, always jump to the last cursor position 
  autocmd BufReadPost * 
    \ if line("'\"") > 0 && line ("'\"") <= line("$") | 
        \ exe "normal! g'\"" | 
    \ endif 
  " don't write swapfile on most commonly used directories for NFS mounts or USB sticks 
  autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp 
  " start with spec file template 
  autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec 
  augroup END 
endif 
if has("cscope") && filereadable("/usr/bin/cscope") 
  set csprg=/usr/bin/cscope 
  set csto=0 set cst 
  set nocsverb 
  " add any database in current directory 
  if filereadable("cscope.out") 
      cs add $PWD/cscope.out 
  " else add database pointed to by environment 
  elseif $CSCOPE_DB != "" 
      cs add $CSCOPE_DB 
  endif 
  set csverb 
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 
filetype plugin on 
if &term=="xterm" 
  set t_Co=8 
  set t_Sb=m 
  set t_Sf=m 
endif 
" Don't wake up system with blinking cursor: 
" http://www.linuxpowertop.org/known.php 
let &guicursor = &guicursor . ",a:blinkon0"

个人的配置

"""""""""""""""""""""""""""""""""""""
" 显示相关
"""""""""""""""""""""""""""""""""""""
" 显示行号
set number
" 语法高亮
syntax on
" 标尺
set ruler 
" 执行的命令
set showcmd
" 命令行高度
set cmdheight=1
" 缓冲行保持三行的缓冲
set scrolloff=3
" 状态栏格式
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 foldenable
if version >= 603 
 set helplang=cn
 set encoding=utf-8 
endif
" 编码
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
"""""""""""""""""""""""""""""""""""""
" Bash新文件添加相关信息
"""""""""""""""""""""""""""""""""""""
autocmd BufNewFile *.sh,*.java exec ":call SetTitle()"
func SetTitle() 
 if &filetype == 'sh' 
 call setline(1,"#!/bin/bash")
 call append(line("."),"\########################################################################")
 call append(line(".")+1, "\# File Name: ".expand("%")) 
 call append(line(".")+2, "\# Author: YangShengPing") 
 call append(line(".")+3, "\# mail: yangshengping@163.com") 
 call append(line(".")+4, "\# Created Time: ".strftime("%c")) 
 call append(line(".")+5, "\#########################################################################") 
 call append(line(".")+6, "") 
 else 
 call setline(1, "/*************************************************************************") 
 call append(line("."), " > File Name: ".expand("%")) 
 call append(line(".")+1, " > Author: YangShengPing") 
 call append(line(".")+2, " > Mail: yangshengping@163.com ") 
 call append(line(".")+3, " > Created Time: ".strftime("%c")) 
 call append(line(".")+4, " ************************************************************************/") 
 call append(line(".")+5, "") 
 endif 
" 自动定位到文件尾,没效果,应该是需要在GUI界面才成吧!没试过!
 autocmd BufReadPost * normal G 
endfunc 
" 自动缩进
set autoindent 
" tab 宽度
set tabstop=4
set softtabstop=4
set shiftwidth=4