Windows下vim方式操作软件+Gvim使用

来源:互联网 发布:程序员常用字体 编辑:程序博客网 时间:2024/05/22 13:53

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的使用过程遇到的问题和建议可以发邮件到linxinhong.sky@gmail.com
关于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的超簡單入門連結,但找了一下都沒有很滿意的,所以決定自己動手先來畫個入門用的說明圖。

vim-cheat-sheet-full
PDF版下載

vim-cheat-sheet-diagram

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

這些圖示依照移動的單位大小分為以下幾個種類,分別用不同顏色標示:
(注意,這不是完整的vim快速鍵列表,只是我覺得比較常用的鍵而已。)

字元(character)
h
j
k
l
右單字(word)
w
下一個word
W
下一個word(跳過標點符號)
b
前一個word
e
跳到目前word的尾端行(line)
0
跳到目前行的開頭
^
跳到目前行第一個非空白字元
$
跳到行尾段落(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,显示中文帮助,说明安装成功:

Image

3、设置语法高亮

编辑安装目录下的_vimrc文件(例如:我的在D:\Program Files\Vim)

     加入以下内容:

     set nu!

     colorscheme desert
     syntax enable
     syntax on

再打开gvim,打开一个源代码文件:

Image(1)

这些设置使得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,效果如下:

Image(2)


4、程序中跳转

将ec57w32.zip解压,在解压后将文件夹中的ctags.exe复制到D:\ProgramFiles\Vim\vim73下,并编辑_vimrc文件,添加以下内容:
set tags=tags;
set autochdir

 

然后将D:\ProgramFiles\Vim\vim73加到环境变量的path中。在需要查看的源代码目录下执行命令ctags -R;然后再用gvim打开源代码文件:

Image(3)


按住“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

Image(4)


用gvim打开代码文件(已生成过tags文件),输入:Tlist,TagList窗口即出现在左侧。再输入:

:Tlist,左侧栏消失;左侧栏列出了当前文件中的所有宏,  全局变量,  函数名等,  在查看代码时用这个窗口总揽全局,  切换位置相当方便

Image(5)



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",窗口如下:

Image(6)

左上角是浏览文件的窗口,左下角的是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打开多个源代码文件后,如图:

Image(7)

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窗口中列出所有符合条件的搜索结果

Image(8)

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,即添加了书签。

Image(9)

使用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],就可以看到自动补全的代码选项了

Image(10)

12、python编译

下载VimPdb,解压后拷贝VimPdb.py,VimPdb.vim到plugin即可。

用vim代开python代码文件,按F5运行,然后按F2设置断点,在运行到断点后可以用按F12可以查看Stack Trace,F3查看变量和参数值。

Image(11)

不过这种方法使用了一下,经常会死掉,不知道为什么,所以在网上找到了另外一种方法:

在_vimrc增加

python << EOF import timeimport vimdef 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')            breakvim.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,即可进行代码检查:

Image(12)


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
 
"======================================================================      
 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
1 0