我用的/etc/vimrc
" 映射非数字/字母键, 如:ctrl,shift, alt, home,end,功能键F1~F12, 要把这些键用尖括号括起来!如:
map <F3> :NERDTree<CR>
(pending 悬而未决的, 搁起的, 甩起的... the case/matter is still pending in court)
vim的operator pending操作符待决/悬挂 模式, 是指在操作符如dw的d, 和其操作的对象 按键w 之间存在的短暂时间.
vim的map有多种状态下的映射(共5种):nmap, vmap, omap, imap, cmap. 注意每种命令所对应的模式,
Command 命令 |
Normal 常规模式 |
Visual 可视化模式 |
Operator Pending 运算符模式 |
Insert Only 插入模式 |
Command Line 命令行模式 |
:map |
y | y | y | ||
:nmap |
y | ||||
:vmap |
y | ||||
:omap |
y | ||||
:map! |
y | y | |||
:imap |
y | ||||
:cmap |
y |
注意,map作用的是normal, visual,operator这三种模式, 其中 map! 作用的是插入insert和commandline命令行模式.
winpos 50 50 其中的winpos是一个命令, 不是参数,不要用set.
要实现某个插件的切换功能, 试试: :????Toggle<cr> 就是看有没有自动的切换那个功能?
------------------------------ /etc/vimrc ---------------------------------------
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=ucs-bom,utf-8,latin1
"这个是自定义将文件写入存储介质时的字符集这里设为gb2312
" fileencodings=gb2312,gbk
endif
set nocompatible
set guioptions-=T
"set guioptions-=m
set guifont=Monospace\ 12
colorscheme murphy
set shiftwidth=4
set softtabstop=4
set lines=40 columns=110
winpos 230 40
set nobackup
set noswapfile
" 设置文件修改时自动载入, 自动保存
set autoread
set autowrite
set cursorline
set magic
set syntax=on
set incsearch
set hlsearch
"搜索时,忽略大小写
set ignorecase
"按F3实现NERDTree的自动切换
map <F3> :NERDTreeToggle<CR>
map <C-A> ggvGy
" vi中的所有字符都没有特殊含义!vim要与vi兼容, 但是在表示vim中一些特殊含义的时候, 就得
" 要把这些特殊符合,从兼容集cpoptions中去掉!
set cpoptions-=<
" 从cpoptions中去掉C, 启用行继续符 \, 解决“E10:..."问题
set cpoptions-=C
set cpoptions-=u "去掉和vi兼容的撤销undo u命令?
"统一的,用一个命令来解决vim和vi的兼容性问题
"那就是, 不要让vim去兼容,去管vi的, 完全使用vim的操作方式, 不管vi的,
"也就不用一个一个地来设置cpoptions了
"set nocompatible
"在insert mode下也可以 快速移动到行尾和行首"
inoremap <c-h> <esc>I
inoremap <c-l> <esc>A
inoremap jk <esc>
inoremap jj <esc>ji
inoremap kk <esc>ki
inoremap hh <esc>ha
inoremap ll <esc>la
inoremap nn <esc>ji
set nu
" 自动匹配括号, 引号
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i
inoremap ' ''<ESC>i
" allow backspacing over everything in insert mode
set bs=indent,eol,start
" always set autoindenting on
set ai
set viminfo='20,\"50 " read/write a .viminfo file, don't store more
" than 50 lines of registers
set history=100
set ruler
" 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/*,/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 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=[4%dm
set t_Sf=[3%dm
endif
" Don't wake up system with blinking cursor:
" http://www.linuxpowertop.org/known.php
let &guicursor = &guicursor . ",a:blinkon0"
" 设置不生成备份和交换文件,这个要放在最后
" 同样的设置,后面的设置(可能从$runtime/...中引入其他配置)会覆盖前面的设置
" 如这里,当后面设置set backup, 将会覆盖前面的set nobackup
" 从而一直找不到生成backup文件的原因!!
" 将系统剪切板设置为默认的 “未命名”寄存器,便于粘贴
set clipboard=unnamed
cd ~
" 如果需要想对特定的文件类型使用特定的字体,则可以将下面的语句加入到vimrc文件中去:
" autocmd BufEnter *. txt set guifont = Arial \ 12
set mouse=a
let g:winManagerWindowLayout='FileExplorer|TagList'
map wm :WMToggle<CR>
--------------------------- ~/.vimrc 实现Vundle的自动化管理----------------------------
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'taglist.vim'
Plugin 'OmniCppComplete'
Plugin 'AutoComplPop'
Plugin 'c.vim'
Plugin 'supertab'
Plugin 'scrooloose/nerdtree'
Plugin 'winmanager'
Plugin 'minibufexplorerpp'
Plugin 'snipMate'
Plugin 'Lokaltog/vim-powerline'
call vundle#end()
filetype plugin indent on