我用的/etc/vimrc

时间:2023-03-09 04:29:30
我用的/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

相关文章