星期四, 7月 21, 2011

vim 環境設定

  • 環境
    • 將vi以vim啟動
      就是下vi等於下vim
      # vi ~/.bashrc
      ---------/root/.bashrc----------
      alias vi='vim'  #加入這一行
    • 支援編碼
      vim /etc/vim/vimrc
      
      -----------/etc/vim/vimrc-------------------
      
      set fileencoding=utf-8,big5,gb18030  //支援中文utf-8,繁體big5及簡體gb
    • Turn on or off color syntax highlighting in vi or vim
      • 從環境變數設定
        # echo 'syntax on' >> /root/.vimrc
      • 使用中設定
        //command mode
        
        :syntax on //or off
    • 取消自動產生的*.ext~, .*.swp檔
      這是vi自動產生的備份檔 在/etc/vimrc下加入
      set nobackup #不產生*.ext~
      set noswapfile #不產生.*swp
      set nowritebackup #不管不產生哪一項,這個都要給
      
    • 關掉吵人的beep聲
      set vb
      vb = visual bell
    • 設定tab長度及自動縮排長度
      為了follow PSR規範... 不用tab,要用4個whitespace
      vi ~/.vimrc
      set tabstop=4
      set shiftwidth=4
  • 縮排 indent

    1. 取得indent檔
      先取得相關的indent檔,例如html縮排,會得到html.vim
      其他相關縮排檔
      • javascript
      • jQuery
      • php
      • php(html enhanced)
        由於php裡,常會夾html,而在原php的縮排對html的支援不是很好,所以有人做了加強版
        p.s. 作者預設縮3個空格,如果要改成縮8個,在第27行,set sw=3 //改成8即可
    2. 放到~/.vim/indent 
      如果沒有就自行建資料夾
    3. 啟動縮排
      在~/.vimrc中(如果沒有就自行建),加入 filetype indent on
  • 編輯
    • 取代斷行符號
      用vi編輯時,有時會遇到^M的斷行符號
      雖然不影響,不過還挺礙眼的
      幾百行下來還挺難改的,又打不出取代的符號,總算在找到取代的方法了
      :%s/^V^M//g

      ^v為CONTROL-V,而^m是CONTROL-M當打完這兩個時,就會出現
      :%s/^M//g
  • 縮排
    1. Html, JavaScript
      JavaScript Indent : Javascript indenter (HTML indent is included) , Preston Koprivica  
      直接下載 
      安裝:
      # tar xvf web-indent.tar  //解壓
      # cd web-indent/indent/     //進到html.vim及javascript.vim的資料夾
      # cp *.vim ~/.vim/indent/  //將*.vim全放到runtime目錄下的vim環境

參考網路的範例,調成自己用的
" encoding
 set encoding=utf-8
 set fileencodings=utf-8,cp950,latin1

"syntax
 syntax on " 語法上色顯示
 set nocompatible " VIM 不使用和 VI 相容的模式
 au BufReadPost *.volt set syntax=php
 au BufReadPost *.zep set syntax=php

"indent
 set shiftwidth=4 " 設定縮排寬度 = 4
 set tabstop=4 " tab 的字元數
 set softtabstop=4
 set expandtab

" setting
 set ruler " 顯示右下角設定值
 set backspace=2 " 在 insert 也可用 backspace
 set ic " 設定搜尋忽略大小寫
 set ru " 第幾行第幾個字
 set hlsearch " 設定高亮度顯示搜尋結果
 set incsearch " 在關鍵字還沒完全輸入完畢前就顯示結果
 set smartindent " 設定 smartindent
 set confirm " 操作過程有衝突時,以明確的文字來詢問
 set history=100 " 保留 100 個使用過的指令
 set cursorline " 顯示目前的游標位置
 set laststatus=2
 set statusline=%4*%<\%m%<[%f\%r%h%w][%{&ff},%{&fileencoding},%Y]%=\[Position=%l,%v,%p%%]
 set nu
 set cursorline

 " Color configuration
 set bg="solarized dark"
 color evening " Same as :colorscheme evening
 hi LineNr cterm=bold ctermfg=DarkGrey ctermbg=NONE
 hi CursorLineNr cterm=bold ctermfg=Green ctermbg=NONE

效果見下圖



References

沒有留言: