使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮、智能缩进等功能的。如果想让vim具有这些功能,需要手动设置一个配置文件【.vimrc,该文件会保持在用户的根目录下】
先show下我的.vimrc文件:
set nu set tabstop=4 set shiftwidth=4 syntax on "colorscheme wombat colorscheme desert set hlsearch set incsearch set smartindent set autoindent set cursorline set showmatch set ruler set textwidth=1000 set cindent set nobackup filetype on nmap <F4> :NERDTreeToggle<cr> nmap <F2> :TlistToggle<cr> nmap <F12> :Calendar<cr> nmap <C-k> <C-W>k nmap <C-j> <C-W>j nmap <C-h> <C-W>h nmap <C-l> <C-W>l let Tlist_Use_Right_Window=1 let Tlist_File_Fold_Auto_Close=0 let Tlist_Exist_OnlyWindow = 1 let Tlist_Sort_Type = "name" let Tlist_Compart_Format = 1 let g:winManagerWindowLayout='FileExplorer|TagList' "let g:miniBufExplMapWindowNavVim = 1 "let g:miniBufExplMapWindowNavArrows = 1 "let g:miniBufExplMapCTabSwitchBufs = 1 "let g:miniBufExplModSelTarget = 1 " C/C++ map <F5> :call CompileRunGcc5()<CR> func! CompileRunGcc5() exec "!make clean" exec "w" exec "!make" endfunc " C/C++ map <F7> :call CompileRunGcc7()<CR> func! CompileRunGcc7() exec "w" exec "!make" endfunc " Encoding settings if has("multi_byte") " Set fileencoding priority if getfsize(expand("%")) > 0 set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1 else set fileencodings=cp936,big5,euc-jp,euc-kr,latin1 endif " CJK environment detection and corresponding setting if v:lang =~ "^zh_CN" " Use cp936 to support GBK, euc-cn == gb2312 set encoding=cp936 set termencoding=cp936 set fileencoding=cp936 elseif v:lang =~ "^zh_TW" " cp950, big5 or euc-tw " Are they equal to each other? set encoding=big5 set termencoding=big5 set fileencoding=big5 elseif v:lang =~ "^ko" " Copied from someone's dotfile, untested set encoding=euc-kr set termencoding=euc-kr set fileencoding=euc-kr elseif v:lang =~ "^ja_JP" " Copied from someone's dotfile, unteste set encoding=euc-jp set termencoding=euc-jp set fileencoding=euc-jp endif " Detect UTF-8 locale, and replace CJK setting if needed if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set encoding=utf-8 set termencoding=utf-8 set fileencoding=utf-8 endif endif
当然了,你的配置文件,不用照搬我的,请参阅下网上老外的example【 http://www.vi-improved.org/vimrc.php】:
1 " Modeline and Notes { 2 " vim: set foldmarker={,} foldlevel=0 spell: 3 " 4 " This is my personal .vimrc, I don't recommend you copy it, just 5 " use the " pieces you want(and understand!). When you copy a 6 " .vimrc in its entirety, weird and unexpected things can happen. 7 " 8 " If you find an obvious mistake hit me up at: 9 " http://robertmelton.com/contact (many forms of communication) 10 " } 11 12 " Basics { 13 set nocompatible " explicitly get out of vi-compatible mode 14 set noexrc " don't use local version of .(g)vimrc, .exrc 15 set background=dark " we plan to use a dark background 16 set cpoptions=aABceFsmq 17 " ||||||||| 18 " ||||||||+-- When joining lines, leave the cursor 19 " ||||||| between joined lines 20 " |||||||+-- When a new match is created (showmatch) 21 " |||||| pause for .5 22 " ||||||+-- Set buffer options when entering the 23 " ||||| buffer 24 " |||||+-- :write command updates current file name 25 " ||||+-- Automatically add <CR> to the last line 26 " ||| when using :@r 27 " |||+-- Searching continues at the end of the match 28 " || at the cursor position 29 " ||+-- A backslash has no special meaning in mappings 30 " |+-- :write updates alternative file name 31 " +-- :read updates alternative file name 32 syntax on " syntax highlighting on 33 " } 34 35 " General { 36 filetype plugin indent on " load filetype plugins/indent settings 37 set autochdir " always switch to the current file directory 38 set backspace=indent,eol,start " make backspace a more flexible 39 set backup " make backup files 40 set backupdir=~/.vim/backup " where to put backup files 41 set clipboard+=unnamed " share windows clipboard 42 set directory=~/.vim/tmp " directory to place swap files in 43 set fileformats=unix,dos,mac " support all three, in this order 44 set hidden " you can change buffers without saving 45 " (XXX: #VIM/tpope warns the line below could break things) 46 set iskeyword+=_,$,@,%,# " none of these are word dividers 47 set mouse=a " use mouse everywhere 48 set noerrorbells " don't make noise 49 set whichwrap=b,s,h,l,<,>,~,[,] " everything wraps 50 " | | | | | | | | | 51 " | | | | | | | | +-- "]" Insert and Replace 52 " | | | | | | | +-- "[" Insert and Replace 53 " | | | | | | +-- "~" Normal 54 " | | | | | +-- <Right> Normal and Visual 55 " | | | | +-- <Left> Normal and Visual 56 " | | | +-- "l" Normal and Visual (not recommended) 57 " | | +-- "h" Normal and Visual (not recommended) 58 " | +-- <Space> Normal and Visual 59 " +-- <BS> Normal and Visual 60 set wildmenu " turn on command line completion wild style 61 " ignore these list file extensions 62 set wildignore=*.dll,*.o,*.obj,*.bak,*.exe,*.pyc, 63 \*.jpg,*.gif,*.png 64 set wildmode=list:longest " turn on wild mode huge list 65 " } 66 67 " Vim UI { 68 set cursorcolumn " highlight the current column 69 set cursorline " highlight current line 70 set incsearch " BUT do highlight as you type you 71 " search phrase 72 set laststatus=2 " always show the status line 73 set lazyredraw " do not redraw while running macros 74 set linespace=0 " don't insert any extra pixel lines 75 " betweens rows 76 set list " we do what to show tabs, to ensure we get them 77 " out of my files 78 set listchars=tab:>-,trail:- " show tabs and trailing 79 set matchtime=5 " how many tenths of a second to blink 80 " matching brackets for 81 set nohlsearch " do not highlight searched for phrases 82 set nostartofline " leave my cursor where it was 83 set novisualbell " don't blink 84 set number " turn on line numbers 85 set numberwidth=5 " We are good up to 99999 lines 86 set report=0 " tell us when anything is changed via :... 87 set ruler " Always show current positions along the bottom 88 set scrolloff=10 " Keep 10 lines (top/bottom) for scope 89 set shortmess=aOstT " shortens messages to avoid 90 " 'press a key' prompt 91 set showcmd " show the command being typed 92 set showmatch " show matching brackets 93 set sidescrolloff=10 " Keep 5 lines at the size 94 set statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v] 95 " | | | | | | | | | | | 96 " | | | | | | | | | | + current 97 " | | | | | | | | | | column 98 " | | | | | | | | | +-- current line 99 " | | | | | | | | +-- current % into file 100 " | | | | | | | +-- current syntax in 101 " | | | | | | | square brackets 102 " | | | | | | +-- current fileformat 103 " | | | | | +-- number of lines 104 " | | | | +-- preview flag in square brackets 105 " | | | +-- help flag in square brackets 106 " | | +-- readonly flag in square brackets 107 " | +-- rodified flag in square brackets 108 " +-- full path to file in the buffer 109 " } 110 111 " Text Formatting/Layout { 112 set completeopt= " don't use a pop up menu for completions 113 set expandtab " no real tabs please! 114 set formatoptions=rq " Automatically insert comment leader on return, 115 " and let gq format comments 116 set ignorecase " case insensitive by default 117 set infercase " case inferred by default 118 set nowrap " do not wrap line 119 set shiftround " when at 3 spaces, and I hit > ... go to 4, not 5 120 set smartcase " if there are caps, go case-sensitive 121 set shiftwidth=4 " auto-indent amount when using cindent, 122 " >>, << and stuff like that 123 set softtabstop=4 " when hitting tab or backspace, how many spaces 124 "should a tab be (see expandtab) 125 set tabstop=8 " real tabs should be 8, and they will show with 126 " set list on 127 " } 128 129 " Folding { 130 set foldenable " Turn on folding 131 set foldmarker={,} " Fold C style code (only use this as default 132 " if you use a high foldlevel) 133 set foldmethod=marker " Fold on the marker 134 set foldlevel=100 " Don't autofold anything (but I can still 135 " fold manually) 136 set foldopen=block,hor,mark,percent,quickfix,tag " what movements 137 " open folds 138 function SimpleFoldText() " { 139 return getline(v:foldstart).' ' 140 endfunction " } 141 set foldtext=SimpleFoldText() " Custom fold text function 142 " (cleaner than default) 143 " } 144 145 " Plugin Settings { 146 let b:match_ignorecase = 1 " case is stupid 147 let perl_extended_vars=1 " highlight advanced perl vars 148 " inside strings 149 150 " TagList Settings { 151 let Tlist_Auto_Open=0 " let the tag list open automagically 152 let Tlist_Compact_Format = 1 " show small menu 153 let Tlist_Ctags_Cmd = 'ctags' " location of ctags 154 let Tlist_Enable_Fold_Column = 0 " do show folding tree 155 let Tlist_Exist_OnlyWindow = 1 " if you are the last, kill 156 " yourself 157 let Tlist_File_Fold_Auto_Close = 0 " fold closed other trees 158 let Tlist_Sort_Type = "name" " order by 159 let Tlist_Use_Right_Window = 1 " split to the right side 160 " of the screen 161 let Tlist_WinWidth = 40 " 40 cols wide, so i can (almost always) 162 " read my functions 163 " Language Specifics { 164 " just functions and classes please 165 let tlist_aspjscript_settings = 'asp;f:function;c:class' 166 " just functions and subs please 167 let tlist_aspvbs_settings = 'asp;f:function;s:sub' 168 " don't show variables in freaking php 169 let tlist_php_settings = 'php;c:class;d:constant;f:function' 170 " just functions and classes please 171 let tlist_vb_settings = 'asp;f:function;c:class' 172 " } 173 " } 174 " } 175 176 " Mappings { 177 " ROT13 - fun 178 map <F12> ggVGg? 179 180 " space / shift-space scroll in normal mode 181 noremap <S-space> <C-b> 182 noremap <space> <C-f> 183 184 " Make Arrow Keys Useful Again { 185 map <down> <ESC>:bn<RETURN> 186 map <left> <ESC>:NERDTreeToggle<RETURN> 187 map <right> <ESC>:Tlist<RETURN> 188 map <up> <ESC>:bp<RETURN> 189 " } 190 " } 191 192 " Autocommands { 193 " Ruby { 194 " ruby standard 2 spaces, always 195 au BufRead,BufNewFile *.rb,*.rhtml set shiftwidth=2 196 au BufRead,BufNewFile *.rb,*.rhtml set softtabstop=2 197 " } 198 " Notes { 199 " I consider .notes files special, and handle them differently, I 200 " should probably put this in another file 201 au BufRead,BufNewFile *.notes set foldlevel=2 202 au BufRead,BufNewFile *.notes set foldmethod=indent 203 au BufRead,BufNewFile *.notes set foldtext=foldtext() 204 au BufRead,BufNewFile *.notes set listchars=tab:\ \ 205 au BufRead,BufNewFile *.notes set noexpandtab 206 au BufRead,BufNewFile *.notes set shiftwidth=8 207 au BufRead,BufNewFile *.notes set softtabstop=8 208 au BufRead,BufNewFile *.notes set tabstop=8 209 au BufRead,BufNewFile *.notes set syntax=notes 210 au BufRead,BufNewFile *.notes set nocursorcolumn 211 au BufRead,BufNewFile *.notes set nocursorline 212 au BufRead,BufNewFile *.notes set guifont=Consolas:h12 213 au BufRead,BufNewFile *.notes set spell 214 " } 215 au BufNewFile,BufRead *.ahk setf ahk 216 " } 217 218 " GUI Settings { 219 if has("gui_running") 220 " Basics { 221 colorscheme metacosm " my color scheme (only works in GUI) 222 set columns=180 " perfect size for me 223 set guifont=Consolas:h10 " My favorite font 224 set guioptions=ce 225 " || 226 " |+-- use simple dialogs rather than pop-ups 227 " + use GUI tabs, not console style tabs 228 set lines=55 " perfect size for me 229 set mousehide " hide the mouse cursor when typing 230 " } 231 232 " Font Switching Binds { 233 map <F8> <ESC>:set guifont=Consolas:h8<CR> 234 map <F9> <ESC>:set guifont=Consolas:h10<CR> 235 map <F10> <ESC>:set guifont=Consolas:h12<CR> 236 map <F11> <ESC>:set guifont=Consolas:h16<CR> 237 map <F12> <ESC>:set guifont=Consolas:h20<CR> 238 " } 239 endif 240 " }
其他参考网址: