天天看點

Windows下vim方式操作軟體+Gvim使用

 Vim+ Total Command

http://sourceforge.net/p/viatc/home

im key At Total Commander

也許你和我一樣,使用着兩大神器, Vim 和 Total Commander

Vim的模式與快捷鍵讓人着迷,TC的高效和強大,讓人歡喜。

于是,我嘗試将Vim與TC結合,讓TC在操作上,變更加快捷起來。

  • 讓TC帶有Vim的模式 ,h,j,k,l移動和更多;
  • 按下:到指令行模式;按下i到編輯模式。
  • 不需要使用時,Alt+Esc禁用功能,或者幹脆退出ViATc, 對TC完全無影響 。
  • 任意一個快捷鍵都不與TC自帶的快捷鍵沖突,綠色。
  • 你可以常駐為 工作列圖示 ,輕按兩下工作列圖示,或者 Win+E調用TC 。
  • 做為一個 TC插件 安裝,友善快捷。
  • 多次移動、組合鍵、永久 儲存/恢複選擇清單、還有更多……

Vim Mode At Total Commander 簡介

也許你和我一樣,使用着兩大利器,Vim與TotalCommander。

Vim的模式與快捷鍵讓人着迷,TC的高效和強大,讓人歡喜。

于是,我嘗試将Vim模式與TC結合,讓TC操作“快捷”起來。

如果你曾經使用過Vim,又正在使用TC,那麼你會喜歡ViATc

如果你在使用TC,但又覺得滑鼠的點選不足以更快速地操作,那麼你會想用ViATc

把複雜的操作,用兩隻手在鍵盤上敲擊出來。是編寫ViATc的初衷。

讓TC帶有Vim的模式,h,j,k,l移動和更多;按下:到指令行模式。

不需要使用時,Alt+`禁用功能,或者幹脆退出ViATc,對TC完全無影響。

任意一個快捷鍵都不與TC自帶的快捷鍵沖突,綠色。

常駐為工作列圖示,輕按兩下工作列圖示,或者Win+w調用TC

多次移動、組合鍵、還有更多……

等待您的建議,一起讓ViATc變得更加好用

有關ViATC的使用過程遇到的問題和建議可以發郵件到[email protected]

關于ViATc的更多想法,也可以加Q群7995919

下載下傳:

程式: ViATc_0.5.1_CN.7z

報病毒和x64的TCer可以下載下傳源碼。然後安裝AHK_L,再運作源碼ViATc.ahk即可。

源碼: ViATc_0.5.1_CN_1016.ahk

安裝:

如果是安裝版TC,可以直接運作,配置檔案viatc.ini位于TC目錄中。

如果是綠色版TC,請将ViATc置于TC目錄中。

給程式設計師的Vim入門圖解說明

剛在寫那篇關於vi和文字編輯器的文章時,本來想附上一個vim的超簡單入門連結,但找了一下都沒有很滿意的,是以決定自己動手先來畫個入門用的說明圖。

Windows下vim方式操作軟體+Gvim使用

PDF版下載

Windows下vim方式操作軟體+Gvim使用

這個圖把vim中基本的移動方法都畫上去了,為了友善programmer,特別列出了很多隻有寫程式才會用的按鍵。除了這些以外,其實還有一些好用的東西我還沒想到怎麼畫上去比較好(像是tags、沒有標準快速鍵的tab、man..),如果大家有idea歡迎提供。

這些圖示依照移動的單位大小分為以下幾個種類,分別用不同顏色標示:

(注意,這不是完整的vim快速鍵清單,隻是我覺得比較常用的鍵而已。)

字元(character)
h
j
k
l
單字(word)
w 下一個word
W 下一個word(跳過標點符號)
b 前一個word
e 跳到目前word的尾端
行(line)
跳到目前行的開頭
^ 跳到目前行第一個非空白字元
$ 跳到行尾
段落(paragraph)、區塊(block)
{ 上一段(以空白行分隔)
} 下一段(以空白行分隔)
[{ 跳到目前區塊開頭
]} 跳到目前區塊結尾
% 跳到目前對應的括號上(適用各種括號,有設定好的話連HTML tag都能跳)
螢幕(screen)、絕對位置
H 螢幕頂端
M 螢幕中間
L 螢幕底部
: x xG 跳到第x行(x是行號)
搜尋(search)
/xxxx 搜尋xxxx
# 往前搜尋目前遊標所在的字(word)
* 往後搜尋目前遊標所在的字(word)
f x 在目前行往後搜尋字元x
gd 跳到目前遊標所在的字(word)的定義位置(寫程式用, 跳到定義變數/函式的地方)
分割視窗
:split 分割視窗(可加檔名順便開啟另一檔案)
:diffsplit xxx 以分割視窗和檔案xxx做比較(diff)
Ctrl-W p 跳到前一個分割視窗(在兩個分割窗來回切換)
Ctrl-W j 跳到下面的分割窗
Ctrl-W h 跳到左邊的分割窗
Ctrl-W k 跳到上面的分割窗
Ctrl-W l 跳到右邊的分割窗
自動補齊(Auto-completion) (在Insert Mode中使用)
Ctrl-N 自動補齊檔案內的下一個可能字(word)
Ctrl-P 自動補齊檔案內的上

用vim的方式操作你的軟體

一、Visual Studio中的Vim插件:

1.    ViEmu(收費)

位址:http://www.viemu.com/

還有在Word , Outlook和SQL Server Management Studio中的使用的ViEmu。

Windows下vim方式操作軟體+Gvim使用
Windows下vim方式操作軟體+Gvim使用
Windows下vim方式操作軟體+Gvim使用
Windows下vim方式操作軟體+Gvim使用

2.   VsVim(免費)

位址:http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329/

Windows下vim方式操作軟體+Gvim使用

以上兩個插件基本指令都有了,不過還是ViEmu好用。

3.  visual_studio.vim(免費)

位址:http://www.vim.org/scripts/script.php?script_id=864

支援Visual Studio 2003, 2005 and 2008

這個沒用過,隻是當時在官網上看到過。

4.  VisVim(免費)

以上都隻是支援visual Studio,如果還在用VC6.0可以考慮一下這個,此插件是打開vim來編輯目前檔案的,并且vim得是OLE的GUI版本才行。

使用方法可以參考http://blog.csdn.net/absurd/article/details/1164127

二、Eclipse中的vim插件:

1. viPlugin(收費)

位址:http://www.viplugin.com/ 

不錯的插件,功能上比其他的要好,不過要收費。

2. Vrapper(免費)

位址:http://vrapper.sourceforge.net 

Vrapper也比較不錯,但是比上面那位還是弱點。

已知的問題有當要删的詞位于行末時dw會連換行符也删掉,搜尋結果不高亮。

3. VimPlugin(免費)

位址:http://sourceforge.net/projects/vimplugin/

VimPlugin需要gvim的支援。

使用方法可以參考:http://akunamotata.iteye.com/blog/324637

4. eclim(免費)

eclim是直接調用了vim,而不是模拟。

位址:http://eclim.org/

項目首頁:http://eclim.sourceforge.net/

關于eclipse中的插件還可以參考:http://paddy-w.iteye.com/blog/969366

以下紅字部分來自http://ihacklog.com/software/cool_software_share/vim-plugins-for-ide.html

三、Netbeans IDE中的Vim插件: Jvi

http://jvi.sourceforge.net/

jVi是Vim一些基本功能的JAVA版實作。在netbeans裡面可以很友善地啟用和禁用jVi編輯器。jVi目前支援超過200個vim指令:

http://jvi.sourceforge.net/vimhelp/help.txt.html#reference_toc

四、JetBrains PhpStorm中的Vim插件:IdeaVIM

支援以下功能:

Motion keys

Deletion/Changing

Insert mode commands

Marks

Registers

VIM undo/redo

Visual mode commands

Some Ex commands

Some :set options

Full VIM regular expressions for search and search/replace

Macros

Diagraphs

VIM help

按ctrl+alt+v 可啟用此Vim模拟器。

相比于netbeans中的Vim插件,這個稍微遜色一些。

參考資料:http://coolshell.cn/articles/1837.html

五、Chrome

Vimium:

位址:https://chrome.google.com/webstore/detail/dbepggeogbaibhgnhhndojpepiihcmeb

用這個插件的人貌似比較多,?可以檢視可以使用的指令。

具體使用可以參考http://kejibo.com/chrome-vimium/

Vrome:

https://chrome.google.com/webstore/detail/godjoomfiimiddapohpmfklhgmbfffjj

最近才發現另一個不錯的插件 Vrome,前身是Vimlike Smooziee ,作者是個中國人,支援一下。感覺功能比Vimium強,不過似乎不太火。

特色:

縮放網頁

C-y 縮短目前網址,并且複制縮短後的位址到剪貼闆(此功能需要設定,此插件設定很不錯,可以像配置vim一樣簡單配置下)

C-i  使用外部編輯器編輯等。

具體可以參考:http://linuxtoy.org/archives/vimlike-smooziee-chrome-vim-extension.html#comment-133032

六、Firefox

Pentadactyl:https://addons.mozilla.org/en-US/firefox/addon/pentadactyl/

Vimperator:

https://addons.mozilla.org/en-US/firefox/addon/vimperator/

不怎麼用火狐,感興趣的話可以參考:http://xbeta.info/vimperator.htm

七、在bash中使用vi

Bash中預設是emacs模,你可以用指令set -o vi   來設定為vi模式。如果想一直使用vi模式,你可以把set -o vi加入到家目錄下的配置檔案.bashrc中。

其實還可以用autohotkey來在别的軟體中實作vim模式的,有人已經寫了一個叫Vim_Mode的腳本,有興趣的可以下載下傳使用http://dl.dbank.com/c0e7mpz675

Gvim開發環境配置筆記--Windows篇

1、安裝Gvim7.3 : 下載下傳位址http://www.vim.org/download.php#pc。

2、安裝中文幫助:vimcdoc-1.8.0-setup.exe 位址http://vimcdoc.sourceforge.net/

      會自動識别gvim的安裝路徑,

      安裝完後,gvim菜單中文出現亂碼,在_vimrcset檔案中增加:

" 配置多語言環境,解決中文亂碼問題

if has("multi_byte")

    " UTF-8 編碼

    set encoding=utf-8

    set termencoding=utf-8

    set formatoptions+=mM

    set fencs=utf-8,gbk

    if v:lang =~? '^/(zh/)/|/(ja/)/|/(ko/)'

        set ambiwidth=double

    endif

    if has("win32")

        source $VIMRUNTIME/delmenu.vim

        source $VIMRUNTIME/menu.vim

        language messages zh_CN.utf-8

    endif

else

    echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"

endif

     輸入:help,顯示中文幫助,說明安裝成功:

Windows下vim方式操作軟體+Gvim使用

3、設定文法高亮

編輯安裝目錄下的_vimrc檔案(例如:我的在D:\Program Files\Vim)

     加入以下内容:

     set nu!

     colorscheme desert

     syntax enable

     syntax on

再打開gvim,打開一個源代碼檔案:

Windows下vim方式操作軟體+Gvim使用

這些設定使得gvim可以顯示行号,并使用了desert配色方案,而且打開了文法高亮功能(用不同顔色顯示注釋、關鍵字、字元串等)。

我們還可以讓函數名也高亮起來,

這裡對C、C++的代碼進行配置:在D:\Program Files\Vim\vim73\syntax下找到 c.vim 和 cpp.vim,分别添加以下内容:

syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2

syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1

hi cFunction gui=NONE guifg=#B5A1FF

重新打開gvim,效果如下:

Windows下vim方式操作軟體+Gvim使用

4、程式中跳轉

将ec57w32.zip解壓,在解壓後将檔案夾中的ctags.exe複制到D:\ProgramFiles\Vim\vim73下,并編輯_vimrc檔案,添加以下内容:

set tags=tags;

set autochdir

然後将D:\ProgramFiles\Vim\vim73加到環境變量的path中。在需要檢視的源代碼目錄下執行指令ctags -R;然後再用gvim打開源代碼檔案:

Windows下vim方式操作軟體+Gvim使用

按住“CTRL”鍵,點選對應的函數名或“CTRL+]”,會自動跳轉到函數的定義部分,“CTRL+T”則傳回;

5、源代碼分析工具 taglist

将taglist_45.zip解壓,解壓後包含一個doc檔案夾和一個plugin檔案夾,将其中内容分别複制到d:\Program Files\Vim\vim73下的doc及plugin中。

在_vimrc檔案中加入以下内容:

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

Windows下vim方式操作軟體+Gvim使用

用gvim打開代碼檔案(已生成過tags檔案),輸入:Tlist,TagList視窗即出現在左側。再輸入:

:Tlist,左側欄消失;左側欄列出了目前檔案中的所有宏,  全局變量,  函數名等,  在檢視代碼時用這個視窗總攬全局,  切換位置相當友善

Windows下vim方式操作軟體+Gvim使用

6、檔案浏覽元件 WinManager

winmanager.zip 位址http://www.vim.org/scripts/download_script.php?src_id=754

将winmanager.zip解壓和拷貝,解壓後包含一個doc檔案夾和一個plugin檔案夾,将其中内容分别複制到d:\Program Files\Vim\vim73下的doc及plugin中

在_vimrc檔案中加入以下内容:

let g:winManagerWindowLayout='FileExplorer|TagList'

nmap wm :WMToggle<cr>

用gvim打開代碼檔案,normal狀态下輸入指令"wm",視窗如下:

Windows下vim方式操作軟體+Gvim使用

左上角是浏覽檔案的視窗,左下角的是TagList視窗;

7、多文檔編輯

minibufexpl.vim 位址http://www.vim.org/scripts/download_script.php?src_id=3640

解壓後将将minibufexpl.vim複制到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:

let g:miniBufExplMapCTabSwitchBufs=1

let g:miniBufExplMapWindowsNavVim=1

let g:miniBufExplMapWindowNavArrows=1

用GVIM打開多個源代碼檔案後,如圖:

Windows下vim方式操作軟體+Gvim使用

ctrl+Tab,切換到前一個buffer,并在目前視窗打開檔案;

ctrl+shift+Tab,切換到後一個buffer,并在目前視窗打開檔案;

ctrl+箭頭鍵,可以切換到上下左右視窗中;

ctrl+h,j,k,l,切換到上下左右的視窗中。

8、在工程中快速查找

grep.vim 位址http://www.vim.org/scripts/download_script.php?src_id=7645

解壓後把grep.vim檔案拷貝到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:

nnoremap <silent> <F3> :Grep<CR>

因為windows下是不帶grep的,需要下載下傳Grep for Windows http://gnuwin32.sourceforge.net/packages/grep.htm

下載下傳後在環境變量中增加grep的路徑;

用gvim打開一個源代碼檔案,光标選擇需要查找的内容,按F3,确定要查找的内容和搜尋範圍,gvim會在彈出的QuickFix視窗中列出所有符合條件的搜尋結果

Windows下vim方式操作軟體+Gvim使用

9、h\c切換(針對C、C++)

下載下傳插件:a.vim 位址http://www.vim.org/scripts/download_script.php?src_id=7218

将a.vim複制到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加:

nnoremap <silent> <F12> :A<CR>

用gvim打開源碼檔案後,按F12即可以在c/h檔案中切換,也可以通過輸入:A實作。

10、高亮書簽

下載下傳插件:visualmark.vim 位址http://www.vim.org/scripts/download_script.php?src_id=4700

将visualmark.vim複制到d:\Program Files\Vim\vim73\plugin。

用gvim打開源碼檔案,将光标定位在需要添加書簽的地方,按下ctrl+F2,即添加了書簽。

Windows下vim方式操作軟體+Gvim使用

使用F2在書簽之間正向切換,shift+F2反向切換。

11、Python代碼補全

下載下傳插件pydiction-1.2.zip

解壓後,将裡面的python_pydiction.vim檔案複制到D:\Program Files\Vim\vimfiles\ftplugin

将complete-dict 和 pydiction.py複制到D:\Program Files\Vim\vimfiles\ftplugin\pydiction

在_vimrc檔案中增加配置如下:

filetype plugin on  “啟用filetype插件

let g:pydiction_location = 'D:\Program Files\Vim\vimfiles\ftplugin\pydiction\complete-dict'

let g:pydiction_menu_height = 20 ”設定彈出菜單的高度,預設是15

用gvim打開一個py檔案,輸入row+[tab],就可以看到自動補全的代碼選項了

Windows下vim方式操作軟體+Gvim使用

12、python編譯

下載下傳VimPdb,解壓後拷貝VimPdb.py,VimPdb.vim到plugin即可。

用vim代開python代碼檔案,按F5運作,然後按F2設定斷點,在運作到斷點後可以用按F12可以檢視Stack Trace,F3檢視變量和參數值。

Windows下vim方式操作軟體+Gvim使用

不過這種方法使用了一下,經常會死掉,不知道為什麼,是以在網上找到了另外一種方法:

在_vimrc增加

python << EOF import time
import vim
def SetBreakpoint():
    nLine = int( vim.eval( 'line(".")'))
    strLine = vim.current.line i = 0 strWhite = "" while strLine[i] == ' ' or strLine[i] == "\t":
        i += 1 strWhite += strLine[i] vim.current.buffer.append(
       "%(space)spdb.set_trace() %(mark)s Breakpoint %(mark)s" %
         {'space':strWhite, 'mark': '#' * 30}, nLine - 1)
    for strLine in vim.current.buffer:
        if strLine == "import pdb":
            break
        else:
            vim.current.buffer.append( 'import pdb', 0)
            vim.command( 'normal j1')
            break
vim.command( 'map <C-M> :py SetBreakpoint()<cr>')
 
def RemoveBreakpoints():
    nCurrentLine = int( vim.eval( 'line(".")'))
    nLines = []
    nLine = 1
    for strLine in vim.current.buffer:
        if strLine == 'import pdb' or strLine.lstrip()[:15] == 'pdb.set_trace()':
            nLines.append( nLine)
        nLine += 1
    nLines.reverse()
    for nLine in nLines:
        vim.command( 'normal %dG' % nLine)
        vim.command( 'normal dd')
        if nLine < nCurrentLine: nCurrentLine -= 1 vim.command( 'normal %dG' % nCurrentLine)
vim.command( 'map <C-U> :py RemoveBreakpoints()<cr>')
vim.command( 'map <C-D> :!python %<cr>')
EOF
           

然後在要調試的代碼裡面用ctrl-M設斷點 

ctrl-D運作

Windows下vim方式操作軟體+Gvim使用
Windows下vim方式操作軟體+Gvim使用

13、Python代碼檢查

下載下傳pyflakes,解壓縮後把pyflakes.vim檔案和pyflakes目錄拷貝套ftplugin\python目錄中,打開一個有問題的python源代碼檔案,執行指令:cc,即可進行代碼檢查:

Windows下vim方式操作軟體+Gvim使用

Windows下Gvim的_vimrc設定

===========  my vimrc  =============

" 設定檔案編碼檢測類型及支援格式

set fencs=utf-8,gbk,ucs-bom,gb18030,gb2312,cp936

"解決consle輸出亂碼

language messages zh_CN.utf-8

set termencoding=cp936

"設定編碼

set encoding=utf-8

set fileencodings=utf-8,chinese,latin-1

if has("win32")

set fileencoding=chinese

else

set fileencoding=utf-8

endif

" 指定菜單語言

set langmenu=zh_CN.utf-8

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

set guifont=DejaVu\ Sans\ Mono:h12

set guifontwide=新宋體:h12

"幫助語言

set helplang=cn

"TAB距離

set tabstop=4

set softtabstop=4

set shiftwidth=4

set expandtab

set cindent

"打開行号

set nu

"自動折行

set wrap

"開啟文法高亮設定

if !exists("syntax_on")

    syntax on

endif

"Switch on search pattern highlighting.

set hlsearch

"Hide the mouse when typing text

set mousehide

"設定預設語言為C

set filetype=c

"設定鍵映射快捷鍵

"map <C-F9> :!d:\usr\perl\bin\perl %

"map <C-F11> :!e:\firefox\firefox localhost:8080/perl/%

"設定預設目錄

lcd D:\Workspace\SVN_Root\BTS_SC_DSP\trunk\workarea\C_Application\SC_DSP

"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

http://apps.hi.baidu.com/share/detail/34338515  

1  "======================================================================            
2 "        Filename: vimrc      
3 "          Author: Wu Yin(吳垠)      
4 "           Email: lazy_fox#gmail.com      
5 "        Homepage: http://blog.csdn.net/wooin      
6 "         Created: 2007-10-26      
7 "===============================================================================      
8 set encoding=gb2312      
9 set guifont=Luxi\ Mono\ 9   " 設定字型,字型名稱和字号      
10 set tabstop=4       " 設定tab鍵的寬度      
11 set backspace=2     " 設定倒退鍵可用      
12 set nu!             " 顯示行号      
13 set vbt_vb=        " vim進行編輯時,如果指令錯誤,會發出一個響聲,該設定去掉響聲      
14 "set wrap            " 自動換行      
15 "set nowrap          " 不自動換行      
16 set linebreak       " 整詞換行      
17 set whichwrap=b,s,<,>,[,]       " 光标從行首和行末時可以跳到另一行去      
18 "set list                        " 顯示制表符      
19 "set listchars = tab:>-,trail:- " 将制表符顯示為'>---',将行尾空格顯示為'-'      
20 set listchars=tab:.\ ,trail:.   " 将制表符顯示為'.   '      
21 set autochdir                   " 自動設定目錄為正在編輯的檔案所在的目錄      
22 set hidden          " 沒有儲存的緩沖區可以自動被隐藏      
23 set scrolloff=5      
24       
25 "--------------------------------------------------------------------------------      
26 " 查找/替換相關的設定      
27 "--------------------------------------------------------------------------------      
28 set hlsearch        " 高亮顯示搜尋結果      
29 set incsearch       " 查詢時非常友善,如要查找book單詞,當輸入到/b時,會自動找到      
30                      " 第一個b開頭的單詞,當輸入到/bo時,會自動找到第一個bo開頭的      
31                      " 單詞,依次類推,進行查找時,使用此設定會快速找到答案,當你      
32                      " 找要比對的單詞時,别忘記回車      
33 set gdefault        " 替換時所有的行内比對都被替換,而不是隻有第一個      
34       
35 "--------------------------------------------------------------------------------      
36 " 狀态欄相關的設定      
37 "--------------------------------------------------------------------------------      
38 set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]      
39 set laststatus=2    " always show the status line      
40 set ruler           " 在編輯過程中,在右下角顯示光标位置的狀态行      
41       
42 "--------------------------------------------------------------------------------      
43 " 程式設計相關的設定      
44 "--------------------------------------------------------------------------------      
45 set completeopt=longest,menu    " 關掉智能補全時的預覽視窗      
46 filetype pluginindenton       " 加了這句才可以用智能補全      
47 :set tags=/home/nfs/microwindows/src/tags      
48 syn on              " 打開文法高亮      
49 set showmatch       " 設定比對模式,類似當輸入一個左括号時會比對相應的那個右括号      
50 set smartindent     " 智能對齊方式      
51 set shiftwidth=4    " 換行時行間交錯使用4個空格      
52 set autoindent      " 自動對齊      
53 set ai!             " 設定自動縮進      
54 colorscheme desert_wuyin      
55       
56 "--------------------------------------------------------------------------------      
57 " 代碼折疊      
58 "--------------------------------------------------------------------------------      
59 "set foldmarker={,}      
60 "set foldmethod=marker      
61 set foldmethod=syntax      
62 set foldlevel=100       " Don't autofold anything (but I can still fold manually)      
63 "set foldopen-=search    " don't open folds when you search into them      
64 "set foldopen-=undo      " don't open folds when you undo stuff      
65 "set foldcolumn=4      
66       
67 "--------------------------------------------------------------------------------      
68 " 模仿MS Windows中的快捷鍵      
69 "--------------------------------------------------------------------------------      
70 vmap <C-c> "yy      
71 vmap <C-x> "yd      
72 nmap <C-v> "yp      
73 vmap <C-v> "yp      
74 nmap <C-a> ggvG$      
75       
76 "--------------------------------------------------------------------------------      
77 " 視窗操作的快捷鍵      
78 "--------------------------------------------------------------------------------      
79 nmap wv     <C-w>v     " 垂直分割目前視窗      
80 nmap wc     <C-w>c     " 關閉目前視窗      
81 nmap ws     <C-w>s     " 水準分割目前視窗      
82       
83 "--------------------------------------------------------------------------------      
84 " 模仿MS Windows中的儲存指令: Ctrl+S      
85 "--------------------------------------------------------------------------------      
86 imap <C-s> <Esc>:wa<cr>i<Right>      
87 nmap <C-s> :wa<cr>      
88       
89       
90       
91       
92 "###############################################################################      
93 " The following is the Plugins' setting      
94 "###############################################################################      
95       
96 "--------------------------------------------------------------------------------      
97 " TagList :Tlist      
98 "--------------------------------------------------------------------------------      
99 let Tlist_Show_One_File=1      
100 let Tlist_Exit_OnlyWindow = 1      
101 "let Tlist_Use_Right_Window=1      
102       
103 "--------------------------------------------------------------------------------      
104 " netrw 檔案浏覽器 :e <PATH>      
105 "--------------------------------------------------------------------------------      
106 "let g:netrw_winsize = 30        " 浏覽器寬度      
107       
108 "--------------------------------------------------------------------------------      
109 " QuickFix      
110 "--------------------------------------------------------------------------------      
111 nmap <F6> :cn<cr>   " 切換到下一個結果      
112 nmap <F7> :cp<cr>   " 切換到上一個結果      
113       
114 "--------------------------------------------------------------------------------      
115 " WinManager :WMToggle      
116 "--------------------------------------------------------------------------------      
117 let g:winManagerWindowLayout='FileExplorer|TagList'      
118 "let g:winManagerWidth = 30      
119 "let g:defaultExplorer = 0      
120 "nmap <C-w><C-b> :BottomExplorerWindow<cr> " 切換到最下面一個窗格      
121 "nmap <C-w><C-f> :FirstExplorerWindow<cr>    " 切換到最上面一個窗格      
122 nmap wm :WMToggle<cr> " 是nomal模式的指令,不是Ex模式的      
123       
124 "--------------------------------------------------------------------------------      
125 " MiniBufExp      
126 "--------------------------------------------------------------------------------      
127 "let g:miniBufExplMapWindowNavVim = 1      
128 let g:miniBufExplMapWindowNavArrows = 1      
129 let g:miniBufExplMapCTabSwitchBufs = 1      
130 "let g:miniBufExplModSelTarget = 1      
131       
132 "--------------------------------------------------------------------------------      
133 " cscope      
134 "--------------------------------------------------------------------------------      
135 cs add /home/nfs/microwindows/src/cscope.out /home/nfs/microwindows/src      
136 :set cscopequickfix=s-,c-,d-,i-,t-,e-      
137 :set cscopetag      
138 " 按下面這種組合鍵有技巧,按了<C-_>後要馬上按下一個鍵,否則螢幕一閃      
139 " 就回到nomal狀态了      
140 " <C-_>s的按法是先按"Ctrl+Shift+-",然後很快再按"s"      
141 nmap <C-_>s :cs find s <C-R>=expand("<cword>")<cr><cr> :cw<cr>      
142 nmap <C-_>g :cs find g <C-R>=expand("<cword>")<cr><cr> :cw<cr>      
143 nmap <C-_>c :cs find c <C-R>=expand("<cword>")<cr><cr> :cw<cr>      
144 nmap <C-_>t :cs find t <C-R>=expand("<cword>")<cr><cr> :cw<cr>      
145 nmap <C-_>e :cs find e <C-R>=expand("<cword>")<cr><cr> :cw<cr>      
146 nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<cr><cr>      
147 nmap <C-_>i :cs find i <C-R>=expand("<cfile>")<cr><cr> :cw<cr>      
148 nmap <C-_>d :cs find d <C-R>=expand("<cword>")<cr><cr> :cw<cr>      
149       
150 "--------------------------------------------------------------------------------      
151 " Grep      
152 "--------------------------------------------------------------------------------      
153 "直接按下<F3>鍵來查找光标所在的字元串      
154 nnoremap <silent> <F3> :Rgrep<CR>      
155       
156 "--------------------------------------------------------------------------------      
157 " A      
158 "--------------------------------------------------------------------------------      
159 nnoremap <silent> <F12> :A<CR>      
160       
161 "--------------------------------------------------------------------------------      
162 " NERD_commenter      
163 "--------------------------------------------------------------------------------      
164 let NERD_c_alt_style = 1    " 将C語言的注釋符号改為//, 預設是/**/      
165 "nmap <F5> ,cc      
166       
167 "--------------------------------------------------------------------------------      
168 " SuperTab :SuperTabHelp      
169 "--------------------------------------------------------------------------------      
170 let g:SuperTabRetainCompletionType = 2      
171 let g:SuperTabDefaultCompletionType = "<C-X><C-O>"      
172       
173 "--------------------------------------------------------------------------------      
174 " CVim :help csupport      
175 "--------------------------------------------------------------------------------      
176 let g:C_Comments = "no"         " 用C++的注釋風格      
177 let g:C_BraceOnNewLine = "no"   " '{'是否獨自一行      
178 let g:C_AuthorName = "Wu Yin"      
179 let g:C_Project="F9"      
180 let g:Cpp_Template_Function = "c-function-description-wuyin"      
181 let g:C_TypeOfH = "c"           " *.h檔案的檔案類型是C還是C++      
182       
183 "##################################################################      
184 "########################## End Of Vimrc ##########################      
185 "##################################################################      
186       
187 " if filetype is C      
188 "   TODO      
189 " fi      

http://my.oschina.net/alphajay/blog/30419