文档章节

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

AlphaJay
 AlphaJay
发布于 2011/08/28 14:49
字数 5260
阅读 9693
收藏 7

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 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,即可进行代码检查:

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

 

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

© 著作权归作者所有

共有 人打赏支持
AlphaJay
粉丝 79
博文 284
码字总数 313790
作品 0
杭州
私信 提问
加载中

评论(3)

feisonzl
feisonzl
我想讲gvim的默认目录设为远程目录,希望能给点帮助,谢谢!
瑾锋少侠
瑾锋少侠
后面对于vim的打造很不错,基本可以放弃source insight了0
瑾锋少侠
瑾锋少侠
后面对于vim的打造很不错,基本可以放弃source insight了0
用Gvim建立IDE编程环境 (Windows篇)

本文源自:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx。 0.准备软件及插件。 (a)gvim72.exe 地址ftp://ftp.vim.org/pub/vim/pc/gvim72.exe。 (b)vimcdoc-1.7.0-setup.exe......

卡得侬
2012/03/24
0
0
Gvim开发环境配置笔记--Windows篇

环境:Windows7 旗舰版 1、安装Gvim7.3 : 下载地址http://www.vim.org/download.php#pc。 2、安装中文帮助:vimcdoc-1.8.0-setup.exe 地址http://vimcdoc.sourceforge.net/ 会自动识别gvim的...

随影求是
2013/12/29
0
3
在Ubuntu环境下安装Gvim及添加菜单项目

在Linux环境下,许多人习惯于使用vi完成编辑功能,今天向大家介绍vim,也是一种编辑器,它完全兼容vi。可使用性绝对不比vi差,更好的是它的图形界面,是无需占用一个终端的!当然它支持多个操...

zt371
2009/05/23
362
0
windows 上 gvim 的编码设置

这个问题困扰我多年,Windows系统默认的编码是cp936,所以用gvim一打开文件,默认是用gb2312编码打开的。我写的程序代码里,如果出现unicode文字的话,基本都会设置为utf8,所以每次都得手动...

不必在乎朕是谁
2013/01/22
0
0
Ubuntu10.10下编译安装vim 7.3

vim7.3正式版发布了,Ubuntu 10.10中用apt-get安装的vim的版本是7.2,想体验7.3的新功能,就只能自己编译了。 下面是最新版安装笔记: 1. 加入必需的终端库: sudo apt-get install libncur...

durban
2012/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Web安全之XSS攻击与防御小结

Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从...

前端小攻略
19分钟前
1
0
JavaScript中的继承及实现代码

JS虽然不像是JAVA那种强类型的语言,但也有着与JAVA类型的继承属性,那么JS中的继承是如何实现的呢? 一、构造函数继承 在构造函数中,同样属于两个新创建的函数,也是不相等的 function Fn...

peakedness丶
23分钟前
1
0
记一次面试最常见的10个Redis"刁难"问题

导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 Redis在...

小刀爱编程
36分钟前
13
0
TiDB Lab 诞生记 | TiDB Hackathon 优秀项目分享

本文由红凤凰粉凤凰粉红凤凰队的成员主笔,他们的项目 TiDB Lab 在本届 TiDB Hackathon 2018 中获得了二等奖。TiDB Lab 为 TiDB 培训体系增加了一个可以动态观测 TiDB / TiKV / PD 细节的动画...

TiDB
49分钟前
4
0
当区块链遇到零知识证明

本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的。这个定义有点抽象,下面笔者举...

腾讯云加社区
58分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部