下载此文档

使用脚本编写 Vim 编辑器,第 5 部分 事件驱.doc


文档分类:IT计算机 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
使用脚本编写 Vim 编辑器,第 5 部分事件驱
使用Vim的自动指令使您的工作流程自动化
Damian Conway,Dr.,CEO兼首席培训师,Thoughtstream简介:您为什么要自我重复?您可以配置Vim中功能全面的事件模型,随时进行事件编辑-如加载一个文件,或者在各编辑模式之间切换,执行节省时间的脚本编写。本文是该系列的第5篇文章,介绍了事件在Vim中如何运行,探索了有用的事件类型选择,然后帮助您着手将指定的脚本联系到特殊事件。结果就是一个经过配置后更自动化的工作流程,完全符合您的需求。
发布日期:2010年4月19日其他语言版本:英文Vim编辑功能的运行方式是事件驱动的。但由于性能上的原因,实际的实现要远比这个复杂,还需要进行许多事件处理优化或者处理事件循环下面的几层,但是您仍然可以将编辑器看成一个简单循环,响应一系列的编辑事件。
无论您何时开始一个Vim会话,打开一个文件,编辑一个缓冲区,修改您的编辑模式,切换窗口,或者和周围的文件系统交互,您正在有效地排列Vim能迅速接受和处理的事件。
例如,如果您启动Vim,,切换到Insert模式,输入一段文档,保存文件,然后退出,您的Vim对话就接收到一系列的事件,如清单1所示。
vim BufWinEnter(create adefault window)BufEnter(create adefault buffer)VimEnter(start the Vim session):edit BufNew(create anew buffer to contain )BufAdd(add that new buffer to the session's buffer list)BufLeave(exit the default buffer)BufWinLeave(exit the default window)BufUnload(remove the default buffer from the buffer list)BufDelete(deallocate the default buffer)BufReadCmd(read the contexts of into the new buffer)BufEnter(activate the new buffer)BufWinEnter(activate the new buffer's window)i InsertEnter(swap into Insert mode)Hello CursorMovedI(insert acharacter)CursorMovedI(insert acharacter)CursorMovedI(insert acharacter)CursorMovedI(insert acharacter)CursorMovedI(insert acharacter)ESC InsertLeave(swap back to Normal mode):wq BufWriteCmd(save the buffer contents back to disk)BufWinLeave(exit the buffer's window)Bu fUnload(remove the buffer from the buffer list)VimLeavePre(get ready to quit Vim)VimLeave(quit Vim)
更有趣的是,Vim提供允许您拦截任何此类编辑事件的"挂钩"。这样,您就可以创建一个特殊的Vimscript指令或者函数,在一个特定事件发生时,进行执行:每次Vim启动时,每次加载文件时,每次退出Insert模式…甚至是每次您移动指针时。这样就可以在整个编辑器中的任何地方添加自动的行为。
Vim提供78种编辑事件的通知,分为八大类:对话开始和清理事件,文件读取事件,文件编辑事件,缓冲区修改事件,选项设置事件,窗口相关事件,用户交互事件,以及异步通知。
要查看此类事件的全部清单,在Vim命令行输入:help autocmd-events。要查看各个事件的详细描述,请看:help autocmd-events-abc。
本文解释了事件在Vim中如何运行,然后介绍了一系列自动编辑事件和行为的脚本。
Vim中用于拦截事件的机制就是自动命令。每个自动命令都指定拦截某种类型的事件,拦截此类事件中被编辑的文件名,当它们被检测到时,命令行模式就会采取行动。所有这些的关键字就是autocmd(通常缩写为au)。常用的语法是:
autocmd EventName mand

使用脚本编写 Vim 编辑器,第 5 部分 事件驱 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yixingmaoj
  • 文件大小335 KB
  • 时间2018-08-24