2017-06-22 206 views
0

创建Vim命令我有我xVim的Xcode中使用一些正则表达式的表达式。而不是反复在命令栏中输入\<Regex>,我希望能够使用自定义命令调用它们,例如:Regex1。因此,我已将command Regex1 “/-\s*\(“添加到我的xvimrc文件并重新启动Xcode。当我运行:Regex1但是没有任何反应。的正则表达式搜索

+0

什么让你觉得有什么意外? – romainl

+0

也许这并不明确。我想要发生的是为了将该正则表达式作为Vim搜索输入。随后,用'n'逐步完成结果,'N'应跳转到每场比赛。所以,当我输入':Regex1'时,我预计等同于'/ - \ s * \('。 –

+0

又是什么让你觉得什么事情会发生?你看到':command' [在该文件中] //github.com/XVimProject/XVim/blob/master/Documents/Users/FeatureList.md)?xVim是** **不Vim的,所以没有任何理由期待任何东西的Vim工作,因为,在xVim。 – romainl

回答

1

你的命令不会在原有的Vim甚至工作。我不知道xVim,但尝试沿着这些线:

" With cursor moving to match. 
command Foo /foo/ 

" Just updating the search pattern (but less likely to be portable to xVim). 
command Foo let @/ = 'foo' 

如果没有一个工作;尝试定义一个映射。由于这只是翻译密钥,所以它被支持的可能性最高。

+0

,所以我可以有'命令Foo/- \ s * \('在我的vimrc文件中,但是当我在编辑器中键入':Foo'时,我没有感觉就像在工作。如果我输入'n'或'N',光标不会移动到匹配的文本。我错过了一步? –

+0

特定命令产量'E54:无与伦比\('改变我'\(''到(',使其工作 –

+0

也许我们是基于环境体验不同的结果。我在'xvim'中这样做,我假定它支持自定义命令。当我在命令行中添加'Foo/- \ s *('到我的'xvimrc'文件,然后在编辑器中输入':Foo'并按下Enter键时,底部栏清除文本(命令被输入..)然后使用'n'或'N'不会跳转到预期的正则表达式匹配。在我的例子中,我试图匹配方法签名的' - (void)'或' - (void)'这就是为什么我有一个反斜杠在'('为了逃避,所以我相信我的原始正则表达式是正确的。如果命令机制失败 –

1

缩写...

我知道你经常使用相同的正则表达式。您可以使用abreviations而不是命令来执行搜索。

ab re -\s*(

然后键入/ + 重新 + 空间和你长的正则表达式(这里只是 “ - \ S *(” 应扩大)

......不是用户自定义命令。

用户定义的命令不可用在编也不在vi也不在vim时加入+ eval编译标志(:h user-commands和滚动一行向上)。

对于离命令的列表:http://www.csb.yale.edu/userguides/wordprocess/vi-summary.html

ED的命令的列表:http://pubs.opengroup.org/onlinepubs/7908799/xcu/ed.html