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的超簡單入門連結,但找了一下都沒有很滿意的,是以決定自己動手先來畫個入門用的說明圖。

PDF版下載
這個圖把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。
2. VsVim(免費)
位址:http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329/
以上兩個插件基本指令都有了,不過還是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,顯示中文幫助,說明安裝成功:
3、設定文法高亮
編輯安裝目錄下的_vimrc檔案(例如:我的在D:\Program Files\Vim)
加入以下内容:
set nu!
colorscheme desert
syntax enable
syntax on
再打開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,效果如下:
4、程式中跳轉
将ec57w32.zip解壓,在解壓後将檔案夾中的ctags.exe複制到D:\ProgramFiles\Vim\vim73下,并編輯_vimrc檔案,添加以下内容:
set tags=tags;
set autochdir
然後将D:\ProgramFiles\Vim\vim73加到環境變量的path中。在需要檢視的源代碼目錄下執行指令ctags -R;然後再用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
用gvim打開代碼檔案(已生成過tags檔案),輸入:Tlist,TagList視窗即出現在左側。再輸入:
:Tlist,左側欄消失;左側欄列出了目前檔案中的所有宏, 全局變量, 函數名等, 在檢視代碼時用這個視窗總攬全局, 切換位置相當友善
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",視窗如下:
左上角是浏覽檔案的視窗,左下角的是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打開多個源代碼檔案後,如圖:
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視窗中列出所有符合條件的搜尋結果
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,即添加了書簽。
使用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],就可以看到自動補全的代碼選項了
12、python編譯
下載下傳VimPdb,解壓後拷貝VimPdb.py,VimPdb.vim到plugin即可。
用vim代開python代碼檔案,按F5運作,然後按F2設定斷點,在運作到斷點後可以用按F12可以檢視Stack Trace,F3檢視變量和參數值。
不過這種方法使用了一下,經常會死掉,不知道為什麼,是以在網上找到了另外一種方法:
在_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運作
13、Python代碼檢查
下載下傳pyflakes,解壓縮後把pyflakes.vim檔案和pyflakes目錄拷貝套ftplugin\python目錄中,打開一個有問題的python源代碼檔案,執行指令:cc,即可進行代碼檢查:
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