📄 vimrc_example.vim
字号:
" An example for a vimrc file."" Maintainer: Bram Moolenaar <Bram@vim.org>" Last change: 2000 Oct 14"" 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" Use Vim settings, rather then Vi settings (much better!)." This must be first, because it changes other options as a side effect.set nocompatibleset bs=2 " allow backspacing over everything in insert modeset ai " always set autoindenting onif has("vms") set nobackup " do not keep a backup file, use versions insteadelse set backup " keep a backup fileendifset viminfo='20,\"50 " read/write a .viminfo file, don't store more " than 50 lines of registersset history=50 " keep 50 lines of command line historyset ruler " show the cursor position all the time" 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 formattingmap Q gq" Make p in Visual mode replace the selected text with the "" register.vnoremap p <Esc>:let current_reg = @"<CR>gvdi<C-R>=current_reg<CR><Esc>" 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 hlsearchendif" Only do this part when compiled with support for autocommands.if has("autocmd") " In text files, always limit the width of text to 78 characters autocmd BufRead *.txt set tw=78 augroup cprog " Remove all cprog autocommands au! " When starting to edit a file: " For C and C++ files set formatting of comments and set C-indenting on. " For other files switch it off. " Don't change the order, it's important that the line with * comes first. autocmd FileType * set formatoptions=tcql nocindent comments& autocmd FileType c,cpp set formatoptions=croql cindent comments=sr:/*,mb:*,el:*/,:// augroup END augroup gzip " Remove all gzip autocommands au! " Enable editing of gzipped files " set binary mode before reading the file " use "gzip -d", gunzip isn't always available autocmd BufReadPre,FileReadPre *.gz,*.bz2 set bin autocmd BufReadPost,FileReadPost *.gz call GZIP_read("gzip -d") autocmd BufReadPost,FileReadPost *.bz2 call GZIP_read("bzip2 -d") autocmd BufWritePost,FileWritePost *.gz call GZIP_write("gzip") autocmd BufWritePost,FileWritePost *.bz2 call GZIP_write("bzip2") autocmd FileAppendPre *.gz call GZIP_appre("gzip -d") autocmd FileAppendPre *.bz2 call GZIP_appre("bzip2 -d") autocmd FileAppendPost *.gz call GZIP_write("gzip") autocmd FileAppendPost *.bz2 call GZIP_write("bzip2") " After reading compressed file: Uncompress text in buffer with "cmd" fun! GZIP_read(cmd) " set 'cmdheight' to two, to avoid the hit-return prompt let ch_save = &ch set ch=3 " when filtering the whole buffer, it will become empty let empty = line("'[") == 1 && line("']") == line("$") let tmp = tempname() let tmpe = tmp . "." . expand("<afile>:e") " write the just read lines to a temp file "'[,']w tmp.gz" execute "'[,']w " . tmpe " uncompress the temp file: call system("gzip -d tmp.gz") call system(a:cmd . " " . tmpe) " delete the compressed lines '[,']d " read in the uncompressed lines "'[-1r tmp" set nobin execute "'[-1r " . tmp " if buffer became empty, delete trailing blank line if empty normal Gdd'' endif " delete the temp file call delete(tmp) let &ch = ch_save " When uncompressed the whole buffer, do autocommands if empty execute ":doautocmd BufReadPost " . expand("%:r") endif endfun " After writing compressed file: Compress written file with "cmd" fun! GZIP_write(cmd) if rename(expand("<afile>"), expand("<afile>:r")) == 0 call system(a:cmd . " " . expand("<afile>:r")) endif endfun " Before appending to compressed file: Uncompress file with "cmd" fun! GZIP_appre(cmd) call system(a:cmd . " " . expand("<afile>")) call rename(expand("<afile>:r"), expand("<afile>")) endfun augroup END " This is disabled, because it changes the jumplist. Can't use CTRL-O to go " back to positions in previous files more than once. if 0 " When editing a file, always jump to the last cursor position. " This must be after the uncompress commands. autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") | exe "normal `\"" | endif endifendif " has("autocmd")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -