代码拉取完成,页面将自动刷新
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>if_ole - Vim Documentation</title>
<meta name="Generator" content="Vim/8.0">
<meta name="plugin-version" content="vim8.0">
<meta name="syntax" content="help">
<meta name="settings" content="no_pre,use_css,expand_tabs">
<link rel="stylesheet" href="style.css" type="text/css" />
<script src="jquery.min.js" type="text/javascript"></script>
<script src="mark-current-page.js" type="text/javascript"></script>
</head>
<body>
<header>
<div class="header">
<a href="http://vim-jp.org/">vim-jp</a>
/ <a href="http://vim-jp.org/vimdoc-en/">vimdoc-en</a>
/ if_ole<br />
<a name="top"></a><h1>if_ole - Vim Documentation</h1>
<a href="index.html">Return to main</a>
<span class="EnglishJapaneseLink">
<span class="CurrentLanguage">English</span>
</span>
</div>
</header>
<nav>
<dl>
<dt>BASIC</dt>
<dd><ul>
<li><a href="quickref.html">quickref</a></li>
<li><a href="sponsor.html">sponsor</a></li>
</ul></dd>
<dt>USER MANUAL</dt>
<dd><ul>
<li><a href="usr_toc.html">usr_toc</a></li>
</ul></dd>
<dt>Getting Started</dt>
<dd><ul>
<li><a href="usr_01.html">usr_01</a></li>
<li><a href="usr_02.html">usr_02</a></li>
<li><a href="usr_03.html">usr_03</a></li>
<li><a href="usr_04.html">usr_04</a></li>
<li><a href="usr_05.html">usr_05</a></li>
<li><a href="usr_06.html">usr_06</a></li>
<li><a href="usr_07.html">usr_07</a></li>
<li><a href="usr_08.html">usr_08</a></li>
<li><a href="usr_09.html">usr_09</a></li>
<li><a href="usr_10.html">usr_10</a></li>
<li><a href="usr_11.html">usr_11</a></li>
<li><a href="usr_12.html">usr_12</a></li>
</ul></dd>
<dt>Editing Effectively</dt>
<dd><ul>
<li><a href="usr_20.html">usr_20</a></li>
<li><a href="usr_21.html">usr_21</a></li>
<li><a href="usr_22.html">usr_22</a></li>
<li><a href="usr_23.html">usr_23</a></li>
<li><a href="usr_24.html">usr_24</a></li>
<li><a href="usr_25.html">usr_25</a></li>
<li><a href="usr_26.html">usr_26</a></li>
<li><a href="usr_27.html">usr_27</a></li>
<li><a href="usr_28.html">usr_28</a></li>
<li><a href="usr_29.html">usr_29</a></li>
<li><a href="usr_30.html">usr_30</a></li>
<li><a href="usr_31.html">usr_31</a></li>
<li><a href="usr_32.html">usr_32</a></li>
</ul></dd>
<dt>Tuning Vim</dt>
<dd><ul>
<li><a href="usr_40.html">usr_40</a></li>
<li><a href="usr_41.html">usr_41</a></li>
<li><a href="usr_42.html">usr_42</a></li>
<li><a href="usr_43.html">usr_43</a></li>
<li><a href="usr_44.html">usr_44</a></li>
<li><a href="usr_45.html">usr_45</a></li>
</ul></dd>
<dt>Making Vim Run</dt>
<dd><ul>
<li><a href="usr_90.html">usr_90</a></li>
</ul></dd>
<dt>General subjects</dt>
<dd><ul>
<li><a href="intro.html">intro</a></li>
<li><a href="index.html">help</a></li>
<li><a href="helphelp.html">helphelp</a></li>
<li><a href="vimindex.html">index</a></li>
<li><a href="tags.html">tags</a></li>
<li><a href="howto.html">howto</a></li>
<li><a href="tips.html">tips</a></li>
<li><a href="message.html">message</a></li>
<li><a href="quotes.html">quotes</a></li>
<li><a href="todo.html">todo</a></li>
<li><a href="debug.html">debug</a></li>
<li><a href="develop.html">develop</a></li>
<li><a href="uganda.html">uganda</a></li>
</ul></dd>
<dt>Basic editing</dt>
<dd><ul>
<li><a href="starting.html">starting</a></li>
<li><a href="editing.html">editing</a></li>
<li><a href="motion.html">motion</a></li>
<li><a href="scroll.html">scroll</a></li>
<li><a href="insert.html">insert</a></li>
<li><a href="change.html">change</a></li>
<li><a href="indent.html">indent</a></li>
<li><a href="undo.html">undo</a></li>
<li><a href="repeat.html">repeat</a></li>
<li><a href="visual.html">visual</a></li>
<li><a href="various.html">various</a></li>
<li><a href="recover.html">recover</a></li>
</ul></dd>
<dt>Advanced editing</dt>
<dd><ul>
<li><a href="cmdline.html">cmdline</a></li>
<li><a href="options.html">options</a></li>
<li><a href="pattern.html">pattern</a></li>
<li><a href="map.html">map</a></li>
<li><a href="tagsrch.html">tagsrch</a></li>
<li><a href="quickfix.html">quickfix</a></li>
<li><a href="windows.html">windows</a></li>
<li><a href="tabpage.html">tabpage</a></li>
<li><a href="syntax.html">syntax</a></li>
<li><a href="spell.html">spell</a></li>
<li><a href="diff.html">diff</a></li>
<li><a href="autocmd.html">autocmd</a></li>
<li><a href="filetype.html">filetype</a></li>
<li><a href="eval.html">eval</a></li>
<li><a href="channel.html">channel</a></li>
<li><a href="fold.html">fold</a></li>
</ul></dd>
<dt>Special issues</dt>
<dd><ul>
<li><a href="print.html">print</a></li>
<li><a href="remote.html">remote</a></li>
<li><a href="term.html">term</a></li>
<li><a href="digraph.html">digraph</a></li>
<li><a href="mbyte.html">mbyte</a></li>
<li><a href="mlang.html">mlang</a></li>
<li><a href="arabic.html">arabic</a></li>
<li><a href="farsi.html">farsi</a></li>
<li><a href="hebrew.html">hebrew</a></li>
<li><a href="russian.html">russian</a></li>
<li><a href="ft_ada.html">ft_ada</a></li>
<li><a href="ft_sql.html">ft_sql</a></li>
<li><a href="hangulin.html">hangulin</a></li>
<li><a href="rileft.html">rileft</a></li>
</ul></dd>
<dt>GUI</dt>
<dd><ul>
<li><a href="gui.html">gui</a></li>
<li><a href="gui_w32.html">gui_w32</a></li>
<li><a href="gui_x11.html">gui_x11</a></li>
</ul></dd>
<dt>Interfaces</dt>
<dd><ul>
<li><a href="if_cscop.html">if_cscop</a></li>
<li><a href="if_lua.html">if_lua</a></li>
<li><a href="if_mzsch.html">if_mzsch</a></li>
<li><a href="if_perl.html">if_perl</a></li>
<li><a href="if_pyth.html">if_pyth</a></li>
<li><a href="if_tcl.html">if_tcl</a></li>
<li><a href="if_ole.html">if_ole</a></li>
<li><a href="if_ruby.html">if_ruby</a></li>
<li><a href="debugger.html">debugger</a></li>
<li><a href="workshop.html">workshop</a></li>
<li><a href="netbeans.html">netbeans</a></li>
<li><a href="sign.html">sign</a></li>
</ul></dd>
<dt>Versions</dt>
<dd><ul>
<li><a href="vi_diff.html">vi_diff</a></li>
<li><a href="version4.html">version4</a></li>
<li><a href="version5.html">version5</a></li>
<li><a href="version6.html">version6</a></li>
<li><a href="version7.html">version7</a></li>
<li><a href="version8.html">version8</a></li>
</ul></dd>
<dt>Remarks about specific systems</dt>
<dd><ul>
<li><a href="os_390.html">os_390</a></li>
<li><a href="os_amiga.html">os_amiga</a></li>
<li><a href="os_beos.html">os_beos</a></li>
<li><a href="os_dos.html">os_dos</a></li>
<li><a href="os_mac.html">os_mac</a></li>
<li><a href="os_mint.html">os_mint</a></li>
<li><a href="os_msdos.html">os_msdos</a></li>
<li><a href="os_os2.html">os_os2</a></li>
<li><a href="os_qnx.html">os_qnx</a></li>
<li><a href="os_risc.html">os_risc</a></li>
<li><a href="os_unix.html">os_unix</a></li>
<li><a href="os_vms.html">os_vms</a></li>
<li><a href="os_win32.html">os_win32</a></li>
</ul></dd>
<dt>Standard plugins</dt>
<dd><ul>
<li><a href="pi_getscript.html">pi_getscript</a></li>
<li><a href="pi_gzip.html">pi_gzip</a></li>
<li><a href="pi_logipat.html">pi_logipat</a></li>
<li><a href="pi_netrw.html">pi_netrw</a></li>
<li><a href="pi_paren.html">pi_paren</a></li>
<li><a href="pi_tar.html">pi_tar</a></li>
<li><a href="pi_vimball.html">pi_vimball</a></li>
<li><a href="pi_zip.html">pi_zip</a></li>
</ul></dd>
<dt>Filetype plugins</dt>
<dd><ul>
<li><a href="pi_spec.html">pi_spec</a></li>
</ul></dd>
<dt>Others</dt>
<dd><ul>
<li><a href="vim_faq.html">vim_faq</a></li>
</ul></dd>
</dl>
</nav>
<article class="Vimdoc VimdocJa">
<div id='vimCodeElement'>
<a class="Constant" href="if_ole.html" name="if_ole.txt">if_ole.txt</a> For <span class="Identifier">Vim version 8.0.</span> Last change: 2008 Aug 16<br>
<br>
<br>
<span class="Identifier">VIM REFERENCE MANUAL by Paul Moore</span><br>
<br>
<br>
The OLE Interface to Vim <a class="Constant" href="if_ole.html#ole-interface" name="ole-interface">ole-interface</a><br>
<br>
1. Activation <a class="Identifier" href="if_ole.html#ole-activation">ole-activation</a><br>
2. Methods <a class="Identifier" href="if_ole.html#ole-methods">ole-methods</a><br>
3. The "normal" command <a class="Identifier" href="if_ole.html#ole-normal">ole-normal</a><br>
4. Registration <a class="Identifier" href="if_ole.html#ole-registration">ole-registration</a><br>
5. MS Visual Studio integration <a class="Identifier" href="if_ole.html#MSVisualStudio">MSVisualStudio</a><br>
<br>
<span class="Special">{Vi does not have any of these commands}</span><br>
<br>
OLE is only available when compiled with the <a class="Identifier" href="various.html#+ole">+ole</a> feature. See<br>
src/if_ole.INSTALL.<br>
An alternative is using the client-server communication <a class="Identifier" href="remote.html#clientserver">clientserver</a>.<br>
<br>
<span class="PreProc">==============================================================================</span><br>
1. Activation <a class="Constant" href="if_ole.html#ole-activation" name="ole-activation">ole-activation</a><br>
<br>
Vim acts as an OLE automation server, accessible from any automation client,<br>
for example, Visual Basic, Python, or Perl. The Vim application "name" (its<br>
"ProgID", in OLE terminology) is "Vim.Application".<br>
<br>
Hence, in order to start a Vim instance (or connect to an already running<br>
instance), code similar to the following should be used:<br>
<br>
[Visual Basic]<br>
<div class="helpExample"> Dim Vim As Object<br>
Set Vim = CreateObject("Vim.Application")</div>
<br>
[Python]<br>
<div class="helpExample"> from win32com.client.dynamic import Dispatch<br>
vim = Dispatch('Vim.Application')</div>
<br>
[Perl]<br>
<div class="helpExample"> use Win32::OLE;<br>
$vim = new Win32::OLE 'Vim.Application';</div>
<br>
[C#]<br>
<div class="helpExample"> // Add a reference to Vim in your project. <br>
// Choose the COM tab.<br>
// Select "Vim Ole Interface 1.1 Type Library"<br>
Vim.Vim vimobj = new Vim.Vim();</div>
<br>
Vim does not support acting as a "hidden" OLE server, like some other OLE<br>
Automation servers. When a client starts up an instance of Vim, that instance<br>
is immediately visible. Simply closing the OLE connection to the Vim instance<br>
is not enough to shut down the Vim instance - it is necessary to explicitly<br>
execute a quit command (for example, :qa!, :wqa).<br>
<br>
<span class="PreProc">==============================================================================</span><br>
2. Methods <a class="Constant" href="if_ole.html#ole-methods" name="ole-methods">ole-methods</a><br>
<br>
Vim exposes four methods for use by clients.<br>
<br>
<a class="Constant" href="if_ole.html#ole-sendkeys" name="ole-sendkeys">ole-sendkeys</a><br>
SendKeys(keys) Execute a series of keys.<br>
<br>
This method takes a single parameter, which is a string of keystrokes. These<br>
keystrokes are executed exactly as if they had been types in at the keyboard.<br>
Special keys can be given using their <..> names, as for the right hand side<br>
of a mapping. <span class="Todo">Note</span>: Execution of the Ex "normal" command is not supported -<br>
see below <a class="Identifier" href="if_ole.html#ole-normal">ole-normal</a>.<br>
<br>
Examples (Visual Basic syntax)<br>
<div class="helpExample"> Vim.SendKeys "ihello<Esc>"<br>
Vim.SendKeys "ma1GV4jy`a"</div>
<br>
These examples assume that Vim starts in Normal mode. To force Normal mode,<br>
start the key sequence with <span class="Special">CTRL-\</span> <span class="Special">CTRL-N</span> as in<br>
<br>
<div class="helpExample"> Vim.SendKeys "<C-\><C-N>ihello<Esc>"</div>
<br>
<span class="Special">CTRL-\</span> <span class="Special">CTRL-N</span> returns Vim to Normal mode, when in Insert or Command-line mode.<br>
<span class="Todo">Note</span> that this doesn't work halfway a Vim command<br>
<br>
<a class="Constant" href="if_ole.html#ole-eval" name="ole-eval">ole-eval</a><br>
Eval(expr) Evaluate an expression.<br>
<br>
This method takes a single parameter, which is an expression in Vim's normal<br>
format (see <a class="Identifier" href="eval.html#expression">expression</a>). It returns a string, which is the result of<br>
evaluating the expression. A <a class="Identifier" href="eval.html#List">List</a> is turned into a string by joining the<br>
items and inserting line breaks.<br>
<br>
Examples (Visual Basic syntax)<br>
<div class="helpExample"> Line20 = Vim.Eval("getline(20)")<br>
Twelve = Vim.Eval("6 + 6") ' Note this is a STRING<br>
Font = Vim.Eval("&guifont")</div>
<br>
<a class="Constant" href="if_ole.html#ole-setforeground" name="ole-setforeground">ole-setforeground</a><br>
SetForeground() Make the Vim window come to the foreground<br>
<br>
This method takes no arguments. No value is returned.<br>
<br>
Example (Visual Basic syntax)<br>
<div class="helpExample"> Vim.SetForeground</div>
<br>
<br>
<a class="Constant" href="if_ole.html#ole-gethwnd" name="ole-gethwnd">ole-gethwnd</a><br>
GetHwnd() Return the handle of the Vim window.<br>
<br>
This method takes no arguments. It returns the hwnd of the main Vimwindow.<br>
You can use this if you are writing something which needs to manipulate the<br>
Vim window, or to track it in the z-order, etc.<br>
<br>
Example (Visual Basic syntax)<br>
<div class="helpExample"> Vim_Hwnd = Vim.GetHwnd</div>
<br>
<br>
<span class="PreProc">==============================================================================</span><br>
3. The "normal" command <a class="Constant" href="if_ole.html#ole-normal" name="ole-normal">ole-normal</a><br>
<br>
Due to the way Vim processes OLE Automation commands, combined with the method<br>
of implementation of the Ex command :normal, it is not possible to execute the<br>
:normal command via OLE automation. Any attempt to do so will fail, probably<br>
harmlessly, although possibly in unpredictable ways.<br>
<br>
There is currently no practical way to trap this situation, and users must<br>
simply be aware of the limitation.<br>
<span class="PreProc">==============================================================================</span><br>
4. Registration <a class="Constant" href="if_ole.html#ole-registration" name="ole-registration">ole-registration</a> <a class="Constant" href="if_ole.html#E243" name="E243">E243</a><br>
<br>
Before Vim will act as an OLE server, it must be registered in the system<br>
registry. In order to do this, Vim should be run with a single parameter of<br>
"-register".<br>
<a class="Constant" href="if_ole.html#-register" name="-register">-register</a> <br>
<div class="helpExample"> gvim -register</div>
<br>
If gvim with OLE support is run and notices that no Vim OLE server has been<br>
registered, it will present a dialog and offers you the choice to register by<br>
clicking "Yes".<br>
<br>
In some situations registering is not possible. This happens when the<br>
registry is not writable. If you run into this problem you need to run gvim<br>
as "Administrator".<br>
<br>
Once vim is registered, the application path is stored in the registry.<br>
Before moving, deleting, or upgrading Vim, the registry entries should be<br>
removed using the "-unregister" switch.<br>
<a class="Constant" href="if_ole.html#-unregister" name="-unregister">-unregister</a> <br>
<div class="helpExample"> gvim -unregister</div>
<br>
The OLE mechanism will use the first registered Vim it finds. If a Vim is<br>
already running, this one will be used. If you want to have (several) Vim<br>
sessions open that should not react to OLE commands, use the non-OLE version,<br>
and put it in a different directory. The OLE version should then be put in a<br>
directory that is not in your normal path, so that typing "gvim" will start<br>
the non-OLE version.<br>
<br>
<a class="Constant" href="if_ole.html#-silent" name="-silent">-silent</a><br>
To avoid the message box that pops up to report the result, prepend "-silent":<br>
<br>
<div class="helpExample"> gvim -silent -register<br>
gvim -silent -unregister</div>
<br>
<span class="PreProc">==============================================================================</span><br>
5. MS Visual Studio integration <a class="Constant" href="if_ole.html#MSVisualStudio" name="MSVisualStudio">MSVisualStudio</a> <a class="Constant" href="if_ole.html#VisVim" name="VisVim">VisVim</a><br>
<br>
The OLE version can be used to run Vim as the editor in Microsoft Visual<br>
Studio. This is called "VisVim". It is included in the archive that contains<br>
the OLE version. The documentation can be found in the runtime directory, the<br>
README_VisVim.txt file.<br>
<br>
<br>
<span class="PreProc">Using Vim with Visual Studio .Net</span><br>
<br>
With .Net you no longer really need VisVim, since .Net studio has support for<br>
external editors. Follow these directions:<br>
<br>
In .Net Studio choose from the menu Tools->External Tools...<br>
Add<br>
Title - Vim<br>
Command - c:\vim\vim63\gvim.exe<br>
Arguments - --servername VS_NET --remote-silent "+call cursor($(CurLine), $(CurCol))" $(ItemPath)<br>
Init Dir - Empty<br>
<br>
Now, when you open a file in .Net, you can choose from the .Net menu:<br>
Tools->Vim<br>
<br>
That will open the file in Vim.<br>
You can then add this external command as an icon and place it anywhere you<br>
like. You might also be able to set this as your default editor.<br>
<br>
If you refine this further, please post back to the Vim maillist so we have a<br>
record of it.<br>
<br>
--servername VS_NET<br>
This will create a new instance of vim called VS_NET. So if you open multiple<br>
files from VS, they will use the same instance of Vim. This allows you to<br>
have multiple copies of Vim running, but you can control which one has VS<br>
files in it.<br>
<br>
--remote-silent "+call cursor(10, 27)"<br>
- Places the cursor on line 10 column 27<br>
In Vim<br>
<div class="helpExample"> :h --remote-silent for more details</div>
<br>
[.Net remarks provided by Dave Fishburn and Brian Sturk]<br>
<br>
<span class="PreProc">==============================================================================</span><br>
vim:tw=78:ts=8:ft=help:norl:<br>
</div>
</article>
<footer>
<a href="#top">Return to the top</a> - <a href="index.html">Return to main</a>
<span class="EnglishJapaneseLink">
<span class="CurrentLanguage">English</span>
</span>
<br />
<div style="text-align:right;">
Hosted by <a href="https://github.com/vim-jp/vimdoc-en">vimdoc-en project</a><br />
If you met any problem, please report it to <a href="https://github.com/vim-jp/vimdoc-en/issues">issue</a>.<br />
</div>
</footer>
<!--<script src="js/check-referrer.js" type="text/javascript"></script>-->
</body>
</html>
<!-- vim:set ts=8 sts=2 sw=2 tw=0 et: -->
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。