gvim Myr语言diff函数用法是什么东西?

zz ; /developerworks/cn/linux/l-vimdiff/index.html
源程序文件(通常是纯文本文件)比较和合并工具一直是软件开发过程中比较重要的组成部分。现在市场上很多功能很强大的专用比较和合并工具,比如 BeyondCompare;很多IDE 或者软件配置管理系统,比如Eclipse, Rational ClearCase都提供了内建的功能来支持文件的比较和合并。
当远程工作在Unix/Linux平台上的时候,恐怕最简单而且到处存在的就是命令行工具,比如diff。可惜diff的功能有限,使用起来也不是很方便。作为命令行的比较工具,我们仍然希望能拥有简单明了的界面,可以使我们能够对比较结果一目了然;我们还希望能够在比较出来的多处差异之间快速定位,希望能够很容易的进行文件合并……。而Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的强力工具。在最近的工作中,因为需要做很多的文件比较和合并的工作,因此对Vimdiff的使用做了一个简单的总结。我们先来看看vimdiff的基本使用。
首先保证系统中的diff命令是可用的。Vim的diff模式是依赖于diff命令的。Vimdiff的基本用法就是:
FILE_RIGHT
FILE_RIGHT
图一就是vimdiff命令的执行结果的画面。
从上图我们可以看到一个清晰的比较结果。屏幕被垂直分割,左右两侧分别显示被比较的两个文件。两个文件中连续的相同的行被折叠了起来,以便使用者能把注意力集中在两个文件的差异上。只在某一文件中存在的行的背景色被设置为蓝色,而在另一文件中的对应位置被显示为绿色。两个文件中都存在,但是包含差异的行显示为粉色背景,引起差异的文字用红色背景加以突出。
除了用这种方法启动vim的diff模式之外,我们还可以用分割窗口命令来启动diff模式:
# vim FILE_LEFT
然后在vim的ex模式(也就是&冒号&模式)下输入:
:vertical diffsplit FILE_RIGHT
也可以达到同样的效果。如果希望交换两个窗口的位置,或者希望改变窗口的分割方式,可以使用下列命令:
1. Ctrl-w K(把当前窗口移到最上边)
2. Ctrl-w H(把当前窗口移到最左边)
3. Ctrl-w J(把当前窗口移到最下边)
4. Ctrl-w L(把当前窗口移到最右边)
其中1和3两个操作会把窗口改成水平分割方式。
接下来试试在行间移动光标,可以看到左右两侧的屏幕滚动是同步的。这是因为&scrollbind&选项被设置了的结果,vim会尽力保证两侧文件的对齐。如果不想要这个特性,可以设置:
:set noscrollbind
可以使用快捷键在各个差异点之间快速移动。跳转到下一个差异点:
反向跳转是:
如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入&2]c&,将越过下一个差异点,跳转到第三个差异点。
文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令
dp (diff &put&)
如果希望把另一个文件的内容复制到当前行中,可以使用命令
do (diff &get&,之所以不用dg,是因为dg已经被另一个命令占用了)
如果希望手工修改某一行,可以使用通常的vim操作。如果希望在两个文件之间来回跳转,可以用下列命令序列:
在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果:
:diffupdate
如果希望撤销修改,可以和平常用vim编辑一样,直接
但是要注意一定要将光标移动到需要撤销修改的文件窗口中。
同时操作两个文件
在比较和合并告一段落之后,可以用下列命令对两个文件同时进行操作。比如同时退出:
:qa (quit all)
如果希望保存全部文件:
:wa (write all)
或者是两者的合并命令,保存全部文件,然后退出:
:wqa (write, then quit all)
如果在退出的时候不希望保存任何操作的结果:
:qa! (force to quit all)
上下文的展开和查看
比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置:
:set diffopt=context:3
可以用简单的折叠命令来临时展开被折叠的相同的文本行:
zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸)
然后可以用下列命令来重新折叠:
zc (folding close)
下图是设置上下文为3行,并展开了部分相同文本的vimdiff屏幕:
在无法使用图形化的比较工具的时候,或者在需要快速比较和合并少量文件的时候,Vimdiff是最好的选择。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:159648次
积分:3321
积分:3321
排名:第8506名
原创:156篇
转载:178篇
评论:17条
(1)(2)(1)(1)(4)(1)(2)(12)(1)(1)(4)(2)(4)(12)(24)(10)(1)(18)(15)(11)(38)(25)(6)(2)(2)(33)(13)(10)(60)(19)14018人阅读
gvim(78)
Vim+ Total Command
im key At 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的更多想法,也可以加Q群7995919 下载:
报病毒和x64的TCer可以下载源码。然后安装,再运行源码ViATc.ahk即可。
如果是安装版TC,可以直接运行,配置文件viatc.ini位于TC目录中。 如果是绿色版TC,请将ViATc置于TC目录中。
剛在寫那篇時,本來想附上一個vim的超簡單入門連結,但找了一下都沒有很滿意的,所以決定自己動手先來畫個入門用的說明圖。
這個圖把vim中基本的移動方法都畫上去了,為了方便programmer,特別列出了很多只有寫程式才會用的按鍵。除了這些以外,其實還有一些好用的東西我還沒想到怎麼畫上去比較好(像是tags、沒有標準快速鍵的tab、man..),如果大家有idea歡迎提供。
這些圖示依照移動的單位大小分為以下幾個種類,分別用不同顏色標示: (注意,這不是完整的vim快速鍵列表,只是我覺得比較常用的鍵而已。) 字元(character)
右單字(word)
下一個word
下一個word(跳過標點符號)b
前一個word
跳到目前word的尾端行(line)
跳到目前行的開頭^
跳到目前行第一個非空白字元$
跳到行尾段落(paragraph)、區塊(block)
上一段(以空白行分隔)
下一段(以空白行分隔)
跳到目前區塊開頭]}
跳到目前區塊結尾%
跳到目前對應的括號上(適用各種括號,有設定好的話連HTML tag都能跳)螢幕(screen)、絕對位置H
跳到第x行(x是行號)搜尋(search)
往前搜尋目前游標所在的字(word)
往後搜尋目前游標所在的字(word)
在目前行往後搜尋字元x
跳到目前游標所在的字(word)的定義位置(寫程式用, 跳到定義變數/函式的地方)分割視窗:split
分割視窗(可加檔名順便開啟另一檔案)
:diffsplit xxx
以分割視窗和檔案xxx做比較(diff)
跳到前一個分割視窗(在兩個分割窗來回切換)Ctrl-W j
跳到下面的分割窗Ctrl-W h
跳到左邊的分割窗Ctrl-W k
跳到上面的分割窗Ctrl-W l
跳到右邊的分割窗自動補齊(Auto-completion) (在Insert Mode中使用)Ctrl-N
自動補齊檔案內的下一個可能字(word)
自動補齊檔案內的上用vim的方式操作你的软件
一、Visual Studio中的Vim插件:
& 1. & &ViEmu(收费)
地址: 还有在Word , Outlook和SQL Server Management Studio中的使用的ViEmu。
2. & VsVim(免费)
以上两个插件基本命令都有了,不过还是ViEmu好用。 3. &visual_studio.vim(免费)
地址: 支持Visual Studio
and 2008 这个没用过,只是当时在官网上看到过。 4. &VisVim(免费)
以上都只是支持visual Studio,如果还在用VC6.0可以考虑一下这个,此插件是打开vim来编辑当前文件的,并且vim得是OLE的GUI版本才行。
使用方法可以参考
& 二、Eclipse中的vim插件: 1. viPlugin(收费)
地址: 不错的插件,功能上比其他的要好,不过要收费。 2. Vrapper(免费)
Vrapper也比较不错,但是比上面那位还是弱点。
已知的问题有当要删的词位于行末时dw会连换行符也删掉,搜索结果不高亮。 3. VimPlugin(免费)
VimPlugin需要gvim的支持。
使用方法可以参考:
4. eclim(免费) eclim是直接调用了vim,而不是模拟。
地址: 项目主页: 关于eclipse中的插件还可以参考: 以下红字部分来自
& 三、Netbeans IDE中的Vim插件: Jvi
jVi是Vim一些基本功能的JAVA版实现。在netbeans里面可以很方便地启用和禁用jVi编辑器。jVi目前支持超过200个vim命令:
& 四、JetBrains PhpStorm中的Vim插件:IdeaVIM 支持以下功能: & Motion keys
Deletion/Changing
Insert mode commands
VIM undo/redo
Visual mode commands
Some Ex commands
Some :set options
Full VIM regular expressions for search and search/replace
VIM help 按ctrl+alt+v 可启用此Vim模拟器。
相比于netbeans中的Vim插件,这个稍微逊色一些。
参考资料:
& 五、Chrome
地址: 用这个插件的人貌似比较多,?可以查看可以使用的命令。
具体使用可以参考
最近才发现另一个不错的插件 Vrome,前身是Vimlike Smooziee ,作者是个中国人,支持一下。感觉功能比Vimium强,不过似乎不太火。 & 特色:
缩放网页 C-y 缩短当前网址,并且复制缩短后的地址到剪贴板(此功能需要设置,此插件设置很不错,可以像配置vim一样简单配置下) C-i &使用外部编辑器编辑等。
具体可以参考:
& 六、Firefox
Pentadactyl:
Vimperator:
不怎么用火狐,感兴趣的话可以参考:
& 七、在bash中使用vi
Bash中默认是emacs模,你可以用命令set -o vi & 来设置为vi模式。如果想一直使用vi模式,你可以把set -o vi加入到家目录下的配置文件.bashrc中。 & 其实还可以用autohotkey来在别的软件中实现vim模式的,有人已经写了一个叫Vim_Mode的脚本,有兴趣的可以下载使用
1、安装Gvim7.3 : 下载地址。 2、安装中文帮助:vimcdoc-1.8.0-setup.exe 地址
&&&&& 会自动识别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
&&& if has(&win32&)
&&&&&&& source $VIMRUNTIME/delmenu.vim
&&&&&&& source $VIMRUNTIME/menu.vim
&&&&&&& language messages zh_CN.utf-8
&&& echoerr &Sorry, this version of (g)vim was not compiled with +multi_byte&
&&&& 输入: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=
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 地址 将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 地址 解压后将将minibufexpl.vim复制到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加: let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
用GVIM打开多个源代码文件后,如图:
ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件; ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件; ctrl+箭头键,可以切换到上下左右窗口中; ctrl+h,j,k,l,切换到上下左右的窗口中。
8、在工程中快速查找 grep.vim 地址 解压后把grep.vim文件拷贝到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加: nnoremap &silent& &F3& :Grep&CR& 因为windows下是不带grep的,需要下载Grep for Windows
下载后在环境变量中增加grep的路径;
用gvim打开一个源代码文件,光标选择需要查找的内容,按F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果
9、h\c切换(针对C、C++)
下载插件:a.vim 地址 将a.vim复制到d:\Program Files\Vim\vim73\plugin,在_vimrc中添加: nnoremap &silent& &F12& :A&CR& 用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。 10、高亮书签
下载插件:visualmark.vim 地址 将visualmark.vim复制到d:\Program Files\Vim\vim73\plugin。
用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。
使用F2在书签之间正向切换,shift+F2反向切换。 11、Python代码补全
下载插件 解压后,将里面的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.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&:
vim.current.buffer.append( 'import pdb', 0)
mand( 'normal j1')
mand( 'map &C-M& :py SetBreakpoint()&cr&')
def RemoveBreakpoints():
nCurrentLine = int( vim.eval( 'line(&.&)'))
nLines = []
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:
mand( 'normal %dG' % nLine)
mand( 'normal dd')
if nLine & nCurrentLine: nCurrentLine -= mand( 'normal %dG' % nCurrentLine)
mand( 'map &C-U& :py RemoveBreakpoints()&cr&')
mand( 'map &C-D& :!python %&cr&')
EOF然后在要调试的代码里面用ctrl-M设断点&ctrl-D运行
& 13、Python代码检查
下载,解压缩后把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
1& &====================================================================== &&&&
2 &&&&&&&& Filename: vimrc 3 &&&&&&&&&& Author: Wu Yin(吴垠) 4 &&&&&&&&&&& Email: lazy_ 5 &&&&&&&& Homepage:
6 &&&&&&&&& Created:
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
92 &############################################################################### 93 & The following is the Plugins' setting 94 &############################################################################### 95
96 &-------------------------------------------------------------------------------- 97 & TagList :Tlist 98 &-------------------------------------------------------------------------------- 99 let Tlist_Show_One_File=1100 let Tlist_Exit_OnlyWindow = 1101 &let Tlist_Use_Right_Window=1102 103 &--------------------------------------------------------------------------------104 & netrw 文件浏览器 :e &PATH&105 &--------------------------------------------------------------------------------106 &let g:netrw_winsize = 30&&&&&&
& 浏览器宽度107 108 &--------------------------------------------------------------------------------109 & QuickFix110 &--------------------------------------------------------------------------------111 nmap &F6& :cn&cr&&& & 切换到下一个结果112 nmap &F7& :cp&cr&&& & 切换到上一个结果113 114 &--------------------------------------------------------------------------------115 & WinManager :WMToggle116 &--------------------------------------------------------------------------------117 let g:winManagerWindowLayout='FileExplorer|TagList'118 &let g:winManagerWidth = 30119 &let g:defaultExplorer = 0120 &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 & MiniBufExp126 &--------------------------------------------------------------------------------127 &let g:miniBufExplMapWindowNavVim = 1128 let g:miniBufExplMapWindowNavArrows = 1129 let g:miniBufExplMapCTabSwitchBufs = 1130 &let g:miniBufExplModSelTarget = 1131 132 &--------------------------------------------------------------------------------133 & cscope134 &--------------------------------------------------------------------------------135 cs add /home/nfs/microwindows/src/cscope.out /home/nfs/microwindows/src136 :set cscopequickfix=s-,c-,d-,i-,t-,e-137 :set cscopetag138 & 按下面这种组合键有技巧,按了&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 & Grep152 &--------------------------------------------------------------------------------153 &直接按下&F3&键来查找光标所在的字符串154 nnoremap &silent& &F3& :Rgrep&CR&155 156 &--------------------------------------------------------------------------------157 & A158 &--------------------------------------------------------------------------------159 nnoremap &silent& &F12& :A&CR&160 161 &--------------------------------------------------------------------------------162 & NERD_commenter163 &--------------------------------------------------------------------------------164 let NERD_c_alt_style = 1&&& & 将C语言的注释符号改为//, 默认是/**/165 &nmap &F5& ,cc166 167 &--------------------------------------------------------------------------------168 & SuperTab :SuperTabHelp169 &--------------------------------------------------------------------------------170 let g:SuperTabRetainCompletionType = 2171 let g:SuperTabDefaultCompletionType = &&C-X&&C-O&&172 173 &--------------------------------------------------------------------------------174 & CVim :help csupport175 &--------------------------------------------------------------------------------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 C188 &&& TODO189 & fi
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8449338次
积分:95864
积分:95864
排名:第8名
原创:1132篇
转载:2965篇
评论:1361条
(2)(2)(4)(10)(2)(3)(13)(13)(4)(9)(62)(16)(8)(23)(9)(37)(73)(34)(31)(120)(128)(183)(23)(69)(75)(1)(171)(33)(148)(168)(145)(27)(144)(139)(208)(61)(59)(10)(10)(32)(2)(7)(34)(24)(9)(39)(25)(32)(46)(20)(44)(8)(21)(43)(49)(100)(113)(136)(35)(55)(15)(29)(41)(15)(50)(17)(20)(182)(206)(43)(27)(19)(17)(13)(1)(40)(5)(3)(4)(21)(71)(73)(19)(2)(2)(1)(1)(1)(6)(3)

我要回帖

更多关于 diff函数 的文章

 

随机推荐