if_ole.cnx

来自「Vim 中文文档」· CNX 代码 · 共 152 行

CNX
152
字号
*if_ole.txt*    For Vim version 6.1.  原文最后更新: 2001年9月3日		  VIM 参考手册    作者:Paul Moore		                  翻译:Dasn<dasn@users.sf.net> 		                  VCD主页:http://vimcdoc.sf.netVim 的 OLE 接口						*ole-interface*1. 激活 OLE 功能		|ole-activation|2. 方法				|ole-methods|3. normal 命令			|ole-normal|4. 注册				|ole-registration|5. 与微软的 Visual Studio 集成	|MSVisualStudio|{Vi 没有这些功能}OLE 只有在编译时加入 |+ole| 才可以使用。参见 src/if_ole.INSTALL。有一点不同之处在于它使用 客户机——服务器 模式进行通信 |clientserver|。==============================================================================1. 激活 OLE 功能					*ole-activation*Vim 可以作为 OLE 服务器运行,能被任意的 OLE 客户端访问,例如:我们可以用Visual Basic,Python,或者 Perl 与 Vim 通信。Vim 的程序名(在 OLE 中称为“ProgID”)是“Vim.Application”。因此,要启动一个 Vim 实例(或者要与一个已经启动的实例通信),你应该使用类似于下面的代码:[Visual Basic] >	Dim Vim As Object	Set Vim = CreateObject("Vim.Application")[Python] >	from win32com.client.dynamic import Dispatch	vim = Dispatch('Vim.Application')[Perl] >	use Win32::OLE;	$vim = new Win32::OLE 'Vim.Application';Vim 不能作为“隐藏”的 OLE 服务器来运行,这一点 Vim 不像其它一些 OLE 服务器。Vim 的 OLE 客户端启动时,一个 Vim 程序的实例会立刻显现出来。简单地断开 OLE 连接不能关掉 Vim 实例——需要显式地执行退出命令才可以(例如,:qa! , :wqa)。==============================================================================2. 方法							*ole-methods*Vim 为客户端提供了四种方法。							*ole-sendkeys*SendKeys(keys)		执行一系列 keys 。这个函数只需要一个参数,参数 keys 代表要敲击的字符串。通过此函数发送这些字符串和你直接在 Vim 里敲击键盘的效果是一样的。特殊键可以用它们的 <..> 名字,就像映射里面最右边的一列。(执行 :map 参考特殊键的表达方式——译者)。 Note: 不支持Ex 模式下的 “normal”命令 —— 见下面|ole-normal|。例子:(Visual Basic 语法) >	Vim.SendKeys "ihello<Esc>"	Vim.SendKeys "ma1GV4jy`a"这个例子假设 Vim 处于 Normal 模式,要强制进入 Normal 模式,可以在字符串前加入CTRL-\ CTRL-N ,就像这样: >	Vim.SendKeys "<C-\><C-N>ihello<Esc>"(译者注:下面是 Perl 语法:  >	$vim->SendKeys("<C-\\><C-N>ihello<Esc>");<	Note: 在 Perl 语法里,特殊字符前需要加 “\”。)CTRL-\ CTRL-N 使得 Vim 从“插入”模式或“命令行”模式返回 Normal 模式。 Note:这两个字符不能用于 Vim 命令中。							*ole-eval*Eval(expr)		计算表达式的值。函数只有一个参数 expr,其格式可以参考 |expression|。返回值是一个包含表达式结果的字符串。例子:(Visual Basic 语法) >	Line20 = Vim.Eval("getline(20)")	Twelve = Vim.Eval("6 + 6")		' 注意,这是一个字符串。	Font = Vim.Eval("&guifont")<							*ole-setforeground*SetForeground()		让 Vim 窗口转入前台工作。这个函数没有参数,没有返回值。例子:(Visual Basic 语法) >	Vim.SetForeground<							*ole-gethwnd*GetHwnd()	返回 Vim 窗口的句柄。这个函数没有参数,它返回 Vim 主窗口的句柄。你可以用它来控制 Vim 窗口,或者跟踪窗口的位置等等。例子:(Visual Basic 语法) >	Vim_Hwnd = Vim.GetHwnd<==============================================================================3. “normal” 命令					*ole-normal*因为 Vim 是通过 ex 模式下的 :normal 命令来实现对 OLE 命令的处理,所以 Vim 不能通过 OLE 执行 :normal 命令。如果你这样做,肯定没用。至于产生的结果,可许没什么害处,也许不能预料。现在没有办法能捕获这种错误,所以用户在使用的时候要注意有这么一个限制。==============================================================================4. 注册						*ole-registration* *E243*在 Vim 作为 OLE 服务器运行之前,必须向系统注册。如果你想注册,可以在运行 Vim的时候加一个参数 “-register”。							*-register*  >	gvim -register一旦注册,Vim 的路径就会被存储到注册表里。在你移动、删除或升级 Vim 之前,应该使用“-unregister”清除这些注册信息。							*-unregister*  >	gvim -unregister系统会使用最先注册的 Vim 执行 OLE 命令。如果 Vim 已经运行,那么就使用当前运行的 Vim 。如果你不想让(多个) Vim 响应 OLE 命令,请使用 non-OLE 版本的 Vim ,并且把它放到别的目录里。OLE 版本的 Vim 路径不应包含在你的正常路径里,这样当你键入“gvim”时启动的才是 non-OLE 版本。							*-silent*如果不想让 Vim 在注册时弹出对话框,可以加“-silent”参数:>	gvim -silent -register	gvim -silent -unregister==============================================================================5. 与微软的 Visual Studio 集成			*MSVisualStudio* *VisVim*Vim 的 OLE 版本可以用做 Visual Studio 的文本编辑器。这被称作“VisVim”。OLE 版本的软件包里有一个 VisVim 目录,详细的说明请参阅该目录下的 README.txt 文件。============================================================================== vim:tw=78:ts=8:ft=help:norl:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?