Regex 为正则表达式搜索创建Vim命令

Regex 为正则表达式搜索创建Vim命令,regex,search,vim,xvim,Regex,Search,Vim,Xvim,我有几个正则表达式,用于xcim for Xcode。我不想用\在命令栏中重复输入它们,而是希望能够用自定义命令调用它们,如:Regex1。因此,我已将命令Regex1”/-\s*\(“添加到我的xvmrc文件中,并重新启动了Xcode。当我运行时:Regex1但什么也没发生。您的命令在原始Vim中甚至无法工作。我不知道xvm,但请尝试以下几点: " With cursor moving to match. command Foo /foo/ " Just updating the searc

我有几个正则表达式,用于xcim for Xcode。我不想用
\
在命令栏中重复输入它们,而是希望能够用自定义命令调用它们,如
:Regex1
。因此,我已将
命令Regex1”/-\s*\(“
添加到我的
xvmrc
文件中,并重新启动了Xcode。当我运行
时:Regex1
但什么也没发生。

您的命令在原始Vim中甚至无法工作。我不知道xvm,但请尝试以下几点:

" 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'

如果这些都不起作用,请尝试定义一个映射。因为这只是转换键,所以它最有可能被支持。

您的命令甚至无法在原始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'

如果这些都不起作用,请尝试定义一个映射。因为这只是转换键,所以它最有可能得到支持。

我建议使用这个PERL正则表达式插件,因为它已经完成了您想要的功能


我建议使用这个PERL正则表达式插件,因为它已经完成了您想要的功能


缩写…

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

ab re -\s*(
然后键入/+re+space和长正则表达式(这里只有“-\s*(“应该展开”)

…不是用户定义的命令

如果没有+eval编译标志(
:h User commands
并向上滚动一行),用户定义的命令在ed、vi或vim中都不可用

有关ex命令的列表,请执行以下操作:


有关ed命令的列表:

缩写…

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

ab re -\s*(
然后键入/+re+space和长正则表达式(这里只有“-\s*(“应该展开”)

…不是用户定义的命令

如果没有+eval编译标志(
:h User commands
并向上滚动一行),用户定义的命令在ed、vi或vim中都不可用

有关ex命令的列表,请执行以下操作:



对于ed命令列表:

什么让你认为应该发生任何事情?可能这还不清楚。我想做的是将regex作为Vim搜索输入。随后,使用
n
单步遍历结果,
n
应该跳转到每个匹配项。因此,当我键入
:Regex1
时,我希望这是相等的nt到
/-\s*\(
。又是什么让你认为应该发生什么事呢?你看到了吗?
:command
?xvm不是Vim,所以没有任何理由期望任何Vim东西像xvm一样工作。我很困惑。我期望的命令是
:Regex1
,据我所知,它是在
xvmrc
中定义的自定义命令file.xvm支持
xvimrc
配置文件,因此我猜自定义命令将是一个包含的功能。我认为
:command
是一个vim扩展,在其他vi克隆(xvm)中不可用是什么让你认为应该发生任何事情?也许这还不清楚。我想做的是将该正则表达式作为Vim搜索输入。随后,用
n
单步搜索结果,
n
应该跳转到每个匹配项。因此,当我键入
:Regex1
时,我希望它等同于
/-\s*\(
。又是什么让你认为应该发生什么事呢?你看到了吗?
:command
?xvm不是Vim,所以没有任何理由期望任何Vim东西像xvm一样工作。我很困惑。我期望的命令是
:Regex1
,据我所知,它是在
xvmrc
中定义的自定义命令file.xVim支持
xvimrc
配置文件,所以我猜自定义命令将是一个包含的功能。我认为
:command
是一个vim扩展,在其他vi克隆(xVim)中不可用,所以我有
command Foo/-\s*\(
在我的vimrc文件中,但是当我在我的编辑器中键入
:Foo
时,我感觉它不起作用。如果我键入
n
n
光标不会移动到匹配的文本。我是否缺少一个步骤?该特定命令为我生成
E54:Unmatched\(
。将
\(
更改为
使其正常工作。可能我们在不同的环境下会遇到不同的结果。我在
xvm
中这样做,我假设它支持自定义命令。当我将
command Foo/-\s*(
添加到我的
xvmrc
文件中,然后在编辑器中键入
:Foo
,然后点击Enter键时,底部栏清除文本(该命令是输入的.)。然后使用
n
n
不会跳转到预期的正则表达式匹配项。在我的情况下,我正在尝试匹配方法签名,例如
-(void)
-(void)
,这就是我在
之前有反斜杠的原因(
来逃避这一点,所以我相信我原来的正则表达式是正确的。尽管命令机制失败了,xvm是否有一个
:help
来记录支持的内容(或任何限制,或与Vim相比语法的变化)?看起来这不受支持。也许你会通过映射得到更好的结果…当然。我会研究映射。我的假设是,鉴于我可怜的Vim理解,这几乎肯定是我做得不正确的事情。我提到了xVim作为我提供上下文的环境。所以我现在感觉问题指向了它我不支持自定义命令?我会研究一下。所以我有
command Foo/-\s*\(
在我的vimrc文件中,但是当我在我的编辑器中键入
:Foo
时,我感觉它不起作用。如果我键入
n
n
光标不会移动到匹配的文本。我是否缺少一个步骤?该特定命令为我生成
E54:Unmatched\(
。将
\(
更改为
让它工作。也许我们