gvim for php,转 : Gvim建立IDE编程环境 (Windows篇)

说明:本文是作者在完全按照著名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。

原作地址:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx。

1.安装gvim7.2。

运行gvim72.exe,选择完全安装(Full),我的安装目录是默认的C:\Program Files\Vim。

安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。

2.安装中文帮助手册。

运行vimcdoc-1.7.0-setup.exe,它会自动找到gvim的安装位置。

安装完毕后重新打开gvim,:help 时帮助手册已经是中文的了。

进行到这一步时,我的gvim菜单处的中文出现了乱码。

在网上寻找解决方案,将C:\Program Files\Vim\vim72下名为 lang 的文件夹删去,使菜单语言变为英语。

3.语法高亮。首先,编辑_vimrc文件加入以下内容:

set nu!

colorscheme desert

syntax enable

syntax on

这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。

我们还可以让函数名也高亮起来,在C:\Program Files\Vim\vim72\syntax下找到 c.vim 和 cpp.vim,分别添加以下内容:

syn match cFunction "\[^()]*)("me=e-2

syn match cFunction "\\s*("me=e-1

hi cFunction gui=NONE guifg=#B5A1FF

重新打开gvim,效果如下:

help_thumb.jpg

4.程序中跳转。将ec57w32.zip解压,在解压后文件夹中找到ctags.exe,将其复制到C:\ProgramFiles\Vim\vim72下,并编辑_vimrc文件,添加以下内容:

set tags=tags;

set autochdir

打开cmd命令行,切换到你要查看的源代码的根目录处,运行

ctags -R

将会在此目录处生成一个tags文件。

用gvim打开一个代码文件,将光标放到某一函数名上,如下图的UpdateViewByPosNo(),按下"ctrl+]",光标会自动跳转到定义处。

jmp_thumb.jpg

按下"ctrl+T"会跳回到原来的位置。

变量、结构体、宏等等,都可以这样做。

当你的源文件有更新时,只能重新运行ctags -R命令,来更新tags文件。

5.窗口管理。

将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到C:\Program Files\Vim\vim72下的doc及plugin中。

在_vimrc文件中加入以下内容:

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

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

用相同的方法将winmanager.zip解压和拷贝,在_vimrc文件中加入以下内容:

let g:winManagerWindowLayout=’FileExplorer|TagList’

nmap wm :WMToggle

用gvim打开代码文件,normal状态下输入命令"wm",窗口如下

window_thumb.jpg

其中左上是netrw窗口(浏览文件),左下是TagList窗口,再次输入"wm"时这两个窗口会关闭。

6.多文件编辑。

将minibufexpl.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:

let g:miniBufExplMapCTabSwitchBufs=1

let g:miniBufExplMapWindowsNavVim=1

let g:miniBufExplMapWindowNavArrows=1

当用gvim打开两个或两个以上的文件时,会自动弹出MiniBufExplorer窗口,如下图

mul_thumb.jpg

ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;

ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;

ctrl+箭头键,可以切换到上下左右窗口中;

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

7.快速切换头文件/源文件。

将a.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:

nnoremap :A

用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。

8.在工程中快速查找。

将grep.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:

nnoremap :Grep

用gvim打开源码文件,并将光标定位到要查找的内容上,按下F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果。如下图

search_thumb.jpg

确定查找内容时,支持正则表达式。

9.高亮的书签。

将visualmark.vim复制到C:\Program Files\Vim\vim72\plugin。

用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。

mark_thumb.jpg

使用F2在书签之间正向切换,shift+F2反向切换。

为了您的安全,请只打开来源可靠的网址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云使用笔记-Lrzsz上传下载文件-centos7

2019独角兽企业重金招聘Python工程师标准>>> 上传文件时提示: -bash: rz: command not found rz命令没找到? 执行sz,同样也没找到。 原来是要安装个叫 lrzsz 的东西,一查可以直接yum。 安装lrzsz:# yum -y …

C#中的DBNull、Null、String.Empty和“”

null可赋值任何变量,将变量置为空 DBNull只用于DataRow对象,表示数据库中的空值 String.Empty是0长度字串 Convert.IsDBNull判断是否为DBNull DBNull.Value与Null的区别 Null是.net中无效的对象引用。 DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(&l…

iOS开发--验证码

第一步,拖两个空间textfiled和button到storyboard上的viewcontroller上。 第二步,拖线,链接到.h文件中代码如下: 1property (weak, nonatomic) IBOutlet UIButton *l_timeButton;第三步,在,m文件中为l_timeButton设置监…

C# Socket 编程详解

Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务,其名字空间System.Net和 System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员…

TCP/ip通信模式

TCP/IP 应用层与应用程序*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 文档出处:http://blog.csdn.net/bingxx11/article…

8 Regular Expressions You Should Know

2019独角兽企业重金招聘Python工程师标准>>> Regular expressions are a language of their own. When you learn a new programming language, theyre this little sub-language that makes no sense at first glance. Many times you have to read another tutori…

poj 3278 catch that cow BFS(基础水)

Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 61826 Accepted: 19329Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a num…

服务器上装filezilla server后,本地的ftp客户端连接不上去

公司一台服务器,上面装了filezilla server后,按平常配置好了,但是在本地用FTP客户端不管怎么连接都连接不上,本地FTP客户端总提示连接失败,远程filezilla server的界面也没有提示有人连接, 仔细看了一下&am…

非法操作 login.php,阅文游戏中心 h5游戏接入wiki

阅文游戏中心《h5游戏 CP接口规范》接口要求规范游戏方接口说明:游戏方需按照规范提供,阅文进行调用阅文接口说明:阅文提供,游戏方调用参数 time 为Unix 时间戳(January 1 1970 00:00:00 GMT 起的秒数) ,单位为秒编码统…

串口通信与编程:串口基础知识

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 串口是串行接口(serial port)的简称,也称为串行通信…

jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用...

jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用 先用谷歌浏览器抓包,抓到的包类似这样: 在jmeter里添加一个http请求,配置好参数,方法,端口&a…

自定义dialog

2019独角兽企业重金招聘Python工程师标准>>> R.layout.layout_insert_dialog自定义布局 View mViewLayoutInflater.from(MainActivity.this).inflate(R.layout.layout_insert_dialog, null); AlertDialog.Builder dialognew AlertDialog.Builder (MainActivity.this…

oracle的env函数用法,env命令_Linux env 命令用法详解:显示系统中已存在的环境变量...

env命令用于显示系统中已存在的环境变量,以及在定义的环境中执行指令。该命令只使用"-"作为参数选项时,隐藏了选项"-i"的功能。若没有设置任何选项和参数时,则直接显示当前的环境变量。如果使用env命令在新环境中执行指令…

网络通信的工作原理

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 1、什么是计算机网络? 计算机网络是由两台或两台以上的计算机通过网络设备…

Bossie Awards 2015: The best open source applicati

2019独角兽企业重金招聘Python工程师标准>>> Read about more open source winners InfoWorlds Best of Open Source Awards for 2014 celebrate more than 100 open source projects, from the bottom of the stack to the top. Follow these links to more open s…

oracle重做日志教程,Oracle教程:重做日志文件基本维护

重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database bu重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database buffer…

java动态代理的实现

动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。友情提示:本文略有难度,读者需具备代理模式相关基础知识&#xff0c…

C++基础之this指针的详解

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 关于C中的this指针,建议大家看看这篇文章,《C中的this指针》&a…

如何用参数化SQL语句污染你的计划缓存

你的SQL语句的参数化总是个好想法。使用参数化SQL语句你不会污染你的计划缓存——错!!!在这篇文章里我想向你展示下用参数化SQL语句就可以污染你的计划缓存,这是非常简单的! ADO.NET-AddWithValue ADO.NET是实现像SQL …

Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件

Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件我創建了Hello World示例項目,然後添加data.plist文件到資源文件夾。現在人們可以很容易得到束文件解壓縮。國際音標。有任何的方法來保護data.plist文件保存在iPhone應用程序…