|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
您现在的位置: ChinaBeta.cn 中文IT资讯 >> 网盟学院 >> 技术文档 >> 网管技术正文
推荐网管技术[多图]即将发布的Microsoft Of…推荐网管技术Asp生成静态网页
推荐网管技术让我穿过那道"墙"! 畅游网络应…推荐网管技术文件夹变身磁盘 查看共享有新招…
推荐网管技术防患于未然!终截者抗病毒软件…推荐网管技术主动防御!瑞星杀毒2008抢先评…
推荐网管技术玩转虚拟光驱:DAEMON TOOLS P…推荐网管技术速度超快 Discuz! 6.0.0试用手…
推荐网管技术当设计遇上PC:LG XPION A10图…推荐网管技术奇虎举证:各杀毒软件均报CNNIC…
推荐网管技术Google Earth 4.2加入繁体中文…推荐网管技术Photoshop CS3:蔚蓝梦幻风格婚…
推荐网管技术专业防护!瑞星防火墙2008测试…推荐网管技术挂载RAR文件 从认识到爱上WinM…
推荐网管技术让你冲浪随心所欲 如何访问被封…推荐网管技术轻装上阵!江民杀毒软件2008速…
推荐网管技术VMware Fusion苹果版全程图解(…推荐网管技术VMware Fusion苹果版全程图解(…
推荐网管技术从菜鸟出发!征服高清详细评测全…推荐网管技术VS2008和ASP.NET 3.5使用之初体…
推荐网管技术迅雷 快车 电驴 eMule下载飚速…推荐网管技术实战967种木马 木马清道夫2007…
推荐网管技术[多图]Ubuntu 7.04 初体验推荐网管技术东风吹战鼓擂 下载软件你选谁?
推荐网管技术若隐若现 Windows XP DirectX …推荐网管技术GPRS上网全攻略
推荐网管技术主流杀毒软件Vista兼容性横评推荐网管技术基于IRF的网络管理和业务管理解…
程序员的编辑器——VIM
Www.ChinaBeta.Cn 更新时间:2008-4-24

【ChinaBeta.Cn 网盟学院】



  命令解释如下:

% 全文(“%”是“1,$”范围的缩写)
s 替换
/ 搜索字符串开始
( 左括号
\) 开始记录匹配
\d+ 一个或多个数字
\) 结束记录匹配
) 右括号
/ 搜索字符串结束
\= 把后面的表达式计算出来作为替换字符串
"(" 左括号
. 字符串连接运算符
(submatch(1) + 1) 把第一个匹配的结果加一作为一个整体返回
.")" 添上右括号
/g 替换字符串结束,g表示替换每一行的所有匹配结果。
:set ve=all 使得光标可以定位到屏幕任何位置(缺省下VIM的光标只能放在行内的字符上)
gg 到文件第一行
/\s\+&\s*$ 找以&结尾的行,&前至少一个空白字符,后0或多个空白字符
qa 记录宏到寄存器a
D 删除到行尾
78| 定位到第78列
i&<ESC> 插入&并返回到命令模式
n 查找下一个&
q 停止记录宏
10000@a 执行一万遍寄存器a中保存的命令
:set ve="" 恢复ve缺省值


三、编程辅助

  既然是程序员的编辑器,自然要show一下它的编程辅助功能。

  (1) ctags,cscope

  现在的IDE都提供了类、函数的索引功能,可以方便的找到某个类或者函数的在哪里定义的,VIM这方面可以利用ctags、cscope做到, Exuberant ctags支持的语言种类非常多,UltraEdit的tags功能也是利用的ctags。cscope只支持C,它能实现Source Insight的一些功能,比如查找某个函数调用了哪些函数,某个函数被哪些函数调用。VIM对这两个工具集成的非常好,利用它们就可以在源文件中方便的跳转搜索类和函数了。

  Reference:

  http://ctags.sourceforge.net Exuberant ctags
  http://iamphet.nm.ru/cscope/ cscope for Win32
  :help ctags
  :help cscope
  (2)multi window,multi buffer,multi tab page

  一个buffer对应一个文件,它可以对应多个window,这样可以方便的对照编辑一个文件的不同部分,tab page跟现在许多编辑器上常见的标签页意义并不一样,可以将tab page理解为一个windows的容器,这样如果想新建一个窗口编辑文件但又不想打乱现在的多窗口布局,那么就可以新开一个tab page,把新窗口放到这个新的tab page里头。tab page是VIM 7.0不久前新增的特性,目前VIM 7.0还未正式发布。(此文发表至PConline时,已经正式发布。)

  Reference:
  :help windows
  :help buffers
  :help tabpage
  (3) 语法高亮

  VIM发行版里带了450多种语言的语法高亮,在其主页vim.org上还可以找到更多。

  Reference:
  :help syntax
  (4) 自动缩进

  在打开自动缩进选项后,VIM会自动的控制缩进,比如输入自动回退缩进。使用=命令可以对选择的程序块排版缩进,这对于整理代码非常有帮助。另外对选择的块用>>和<<命令可以很方便的控制一个程序块的缩进。

  Reference:
  :help cindent
  :help autoindent
  :help smartindent
  (5) 类和函数列表

  taglist等插件可以提供很方便的类和函数列表功能。

  (6) 自动完成

  VIM在Insert mode下输入一个单词的前几个字符,然后用Ctrl-p或者Ctrl-n就可以列出以这些字符开头的单词,特别在配置了ctags后也能列出头文件中的符号,特别方便,除此外VIM还有行自动完成、文件名自动完成等,这点即使是现在强大的IDE也未免不足。

  如果设置了如下选项:

  :set wildmode=list:full
  :set wildmenu
  则在命令行打开文件或者输入命令时按Tab(以输入字符为前缀补全)或者Ctrl-d(列出包含输入字符的所有匹配项目)自动补全,这一功能大大降低了VIM的使用难度。

  另外有许多插件可以实现许多IDE中的自动完成类成员的功能,当然,这个功能还比不上Eclispe、Visual Studio等IDE中的强大,这一点是VIM比较可惜的地方。VIM 7.0引入了Omni Completion,可以自定义匹配完成函数,也许可以弥补这个缺陷。

  Reference: :help 'complete'
  :help omni-completion
  (7) folding

  VIM支持折叠代码,还可以根据文件中特殊的标记对文件中的行折叠,可以实现Outline视图,这可以极大的方便编辑很大的文件。

  Reference: :help fold

  (8) quickfix

  许多人对于UNIX开发的印象都是“编辑代码,退出编辑器,编译,发现错误,记录出错信息,遍辑代码,退出编辑器,编译,用gdb调试,再编辑代码……”,这是古老的VI时代的事情了,有了VIM的quickfix特性,可以在VIM里编译然后直接跳到编译出错的行,这个反复的过程无需退出编辑器,而且VIM的quickfix特性可以经配置后支持不同的编译器以及不同的语言:只要编译器在出错信息里包含文件名和行号。

  不过比较遗憾的是VIM对于集成调试支持还不好,有些项目尝试集成GDB到VIM,比如http://skawina.eu.org/mikolaj/vimgdb/和http://www.volny.cz/zellerin/gdbvim/,在http://www.vim.org/search.php中的scripts处搜索gdb也可以找到一些插件.这方面Emacs的GUD(Grand Unified Debugger)调试界面要更强大,毕竟GCC/GDB/Emacs是一家。

  Reference: :help quickfix

  (9)auto command

  VIM可以在某些事件发生时比如打开文件、保存文件、切换窗口时自动执行一些VIM命令,VIM的许多插件都利用了这个功能。常用的一种情况是把某种文件后缀指定到一种文件格式上,比如*.jv指定到Java文件格式,这样在每次打开.jv类型的文件时自动使用Java的语法高亮:

  :autocmd BufNewFile, BufRead *.jv :set ft=Java

  Reference: :help autocmd.txt

  (10)mode line

  在编辑文件时常常指定一些选项,比如缩进量、是否将制表符转换成空格等,每次手动指定这些选项很麻烦,写到vimrc中却又成了全局选项,而且换了一份 VIM,原有的设置就丢失了。VIM可以识别文件中的特殊行,自动设置一些选项,下面是写在C源文件开头的一个mode line示例:

/* vi:set tw=0 ts=8 sw=8 noet nowrap ft=c fdm=syntax: */
/*
* File: xxxx.c
* Author: xxx
*/

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页  

Google

(责任编辑:hahack)

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门文章 相关报道
普通网管技术 [技术文档]程序员的编辑器——VIM (04-24)最新网管技术
普通网管技术 [软件应用]FireFox 3.0的新书签程序预览 (04-24)最新网管技术
普通网管技术 [软件应用]Dreamweaver CS4 Pre Release发布 (04-18)最新网管技术
普通网管技术 [数据库]SQL Server 中巧用另类写法代替L… (04-17)
普通网管技术 [网站设计]网管员必知常识 常用电脑密码破解… (04-15)
普通网管技术 [数据库]考虑SQL Server安全 需注意几个方… (04-15)
普通网管技术 [软件应用]4月15日世界之窗网络收藏夹启动内… (04-15)
普通网管技术 [数据库]数据库知识 Microsoft SQL Serve… (04-10)
普通网管技术 [技术文档]一段JS代码,让你的WordPress支持… (04-09)
普通网管技术 [软件应用]解决IE8无法正确输入淘宝、支付宝… (04-09)
没有相关网管技术
  网友评论内容:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
I D *
邮 箱
主 页
评 分 1分 2分 3分 4分 5分
评 论

关于我们  中国·国家信息产业部{粤ICP备06006652号}{陇ICP备06002562号}
版权所有:『AK网盟基地』站长:Hahack | QQ:80505955 | E-mail:Hahack@Gmail.com
Copyright (C) 2005-2007  akhack.org|chinabeta.cn All Rights Reserved