天天看點

vim學習筆記-0

先看截圖

linux:

vim學習筆記-0

windows

vim學習筆記-0

0.序

參考

[1]vim下載下傳,http://www.vim.org/download.php

[2]手把手教你把Vim改裝成一個IDE程式設計環境(圖文),http://blog.csdn.net/wooin/archive/2007 /10/31/1858917.aspx

[3]vim中文幫助文檔下 載,http://vimcdoc.sf.net

[4]史上最強的 Vim 配置檔案,http://amix.dk/vim/vimrc.html

[5]vim使用進階,http://easwy.com /blog/archives/advanced-vim-skills-catalog/

安裝中文幫助文檔非常重要,仔細閱讀vim幫助文檔,這裡是最權威、最準确的介紹。

浏覽過文檔後我發覺,即使什麼插件也不安裝,vim也基本夠用 了。

心裡有了底之後,在怎麼折騰也就不怕了。

後續章節是操作記錄

1.windows配置

1.1. plugin

 //C:/PROGRAM FILES/VIM/VIMFILES/PLUGIN

    bufexplorer.vim

    minibufexpl.vim

    mru.vim

    surround.vim

    taglist.vim

    vimcdoc.vim

    winfileexplorer.vim

    winmanager.vim

    wintagexplorer.vim

1.2. _vimrc

//C:/Program Files/Vim/_vimrc

set nocompatible

source $VIMRUNTIME/vimrc_example.vim

source $VIMRUNTIME/mswin.vim

behave mswin

set diffexpr=MyDiff()

function MyDiff()

  let opt = '-a --binary '

  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif

  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif

  let arg1 = v:fname_in

  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif

  let arg2 = v:fname_new

  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif

  let arg3 = v:fname_out

  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif

  let eq = ''

  if $VIMRUNTIME =~ ' '

    if &sh =~ '/<cmd'

      let cmd = '""' . $VIMRUNTIME . '/diff"'

      let eq = '"'

    else

      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '/diff"'

    endif

  else

    let cmd = $VIMRUNTIME . '/diff'

  endif

  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq

endfunction

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 以下copy自amix

" 黑體部分為新加或變更

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => General

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Sets how many lines of history VIM has to remember

set history=700

" Enable filetype plugin

filetype plugin on

filetype indent on

" Set to auto read when a file is changed from the outside

set autoread

" With a map leader it's possible to do extra key combinations

" like <leader>w saves the current file

let mapleader = ","

let g:mapleader = ","

" Fast saving

nmap <leader>w :w!<cr>

" Fast editing of the .vimrc

map <leader>e :e! $VIM/_vimrc<cr>

" When vimrc is edited, reload it

autocmd! bufwritepost vimrc source $VIM/_vimrc

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => VIM user interface

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Set 7 lines to the curors - when moving vertical..

set so=7

set wildmenu "Turn on WiLd menu

set ruler "Always show current position

set cmdheight=2 "The commandbar height

set hid "Change buffer - without saving

" Set backspace config

set backspace=eol,start,indent

set whichwrap+=<,>,h,l

set ignorecase "Ignore case when searching

set smartcase

set hlsearch "Highlight search things

set incsearch "Make search act like search in modern browsers

set nolazyredraw "Don't redraw while executing macros

set magic "Set magic on, for regular expressions

set showmatch "Show matching bracets when text indicator is over them

set mat=2 "How many tenths of a second to blink

" No sound on errors

set noerrorbells

set novisualbell

set t_vb=

set tm=500

" Show line number

set nu!

" ColorScheme

colo desert

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => Text, tab and indent related

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

set expandtab

set shiftwidth=4

set tabstop=4

set smarttab

set lbr

set tw=500

set ai "Auto indent

set si "Smart indet

set wrap "Wrap lines

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => Moving around, tabs and buffers

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Map space to / (search) and c-space to ? (backgwards search)

map <space> /

map <c-space> ?

map <silent> <leader><cr> :noh<cr>

" Smart way to move btw. windows

map <C-j> <C-W>j

map <C-k> <C-W>k

map <C-h> <C-W>h

map <C-l> <C-W>l

" Close the current buffer

map <leader>bd :Bclose<cr>

" Close all the buffers

map <leader>ba :1,300 bd!<cr>

" Use the arrows to something usefull

map <right> :bn<cr>

map <left> :bp<cr>

" Tab configuration

map <leader>tn :tabnew<cr>

map <leader>te :tabedit

map <leader>tc :tabclose<cr>

map <leader>tm :tabmove

" When pressing <leader>cd switch to the directory of the open buffer

map <leader>cd :cd %:p:h<cr>

command! Bclose call <SID>BufcloseCloseIt()

function! <SID>BufcloseCloseIt()

   let l:currentBufNum = bufnr("%")

   let l:alternateBufNum = bufnr("#")

   if buflisted(l:alternateBufNum)

     buffer #

   else

     bnext

   endif

   if bufnr("%") == l:currentBufNum

     new

   endif

   if buflisted(l:currentBufNum)

     execute("bdelete! ".l:currentBufNum)

   endif

endfunction

" Specify the behavior when switching between buffers

try

  set switchbuf=usetab

  set stal=2

catch

endtry

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => Statusline

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Always hide the statusline

set laststatus=2

" Format the statusline

set statusline=/ %{HasPaste()}%F%m%r%h/ %w/ / CWD:/ %r%{CurDir()}%h/ / / Line:/ %l/%L:%c

function! CurDir()

    let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")

    return curdir

endfunction

function! HasPaste()

    if &paste

        return 'PASTE MODE  '

    else

        return ''

    endif

endfunction

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" Plugins_Included:

"     > minibufexpl.vim - http://www.vim.org/scripts/script.php?script_id=159

"       Makes it easy to get an overview of buffers:

"           info -> :e ~/.vim_runtime/plugin/minibufexpl.vim

"

"     > bufexplorer - http://www.vim.org/scripts/script.php?script_id=42

"       Makes it easy to switch between buffers:

"           info -> :help bufExplorer

"

"     > yankring.vim - http://www.vim.org/scripts/script.php?script_id=1234

"       Emacs's killring, useful when using the clipboard:

"           info -> :help yankring

"

"     > surround.vim - http://www.vim.org/scripts/script.php?script_id=1697

"       Makes it easy to work with surrounding text:

"           info -> :help surround

"

"     > snipMate.vim - http://www.vim.org/scripts/script.php?script_id=2540

"       Snippets for many languages (similar to TextMate's):

"           info -> :help snipMate

"

"     > mru.vim - http://www.vim.org/scripts/script.php?script_id=521

"       Plugin to manage Most Recently Used (MRU) files:

"           info -> :e ~/.vim_runtime/plugin/mru.vim

"

"     > Command-T - http://www.vim.org/scripts/script.php?script_id=3025

"       Command-T plug-in provides an extremely fast, intuitive mechanism for opening filesa:

"           info -> :help CommandT

"           screencast and web-help -> http://amix.dk/blog/post/19501

"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => Taglist

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

set tags=./tags,./../tags,.tags

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" => winManager

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

let g:winManagerWindowLayout='FileExplorer|TagList'

nmap wm :WMToggle<cr>