Autocomplete 升华编辑器:如何像vi那样通过快捷键(CTRL+;p,CTRL+;n)完成上一个/下一个匹配?

Autocomplete 升华编辑器:如何像vi那样通过快捷键(CTRL+;p,CTRL+;n)完成上一个/下一个匹配?,autocomplete,match,sublimetext2,vi,Autocomplete,Match,Sublimetext2,Vi,在vi中有一个非常有用的选项,它允许您通过按ctrl+p(或n表示下一个匹配)完成上一个匹配 例如,以下面的代码为例 $res = mysql_query("SELECT * from TABLE_1"); while(list($a, $b) = mysql_fetch_row($res){ // do something } $res1 = mysql_query("SELECT * from TABLE_2"); while(list($a, $b) = mysql_f 假设光标位

在vi中有一个非常有用的选项,它允许您通过按ctrl+p(或n表示下一个匹配)完成上一个匹配

例如,以下面的代码为例

$res = mysql_query("SELECT * from TABLE_1");
while(list($a, $b) = mysql_fetch_row($res){
  // do something
}

$res1 = mysql_query("SELECT * from TABLE_2");
while(list($a, $b) = mysql_f
假设光标位于上面的“f”字母旁边。如果在vi中按
control+p
,它将以上面找到的
mysql\u fetch\u行
完成


在sublime中是否有类似的捷径,或者是否有一种简单的方法可以为其创建宏?我不懂python,所以非常感谢您的帮助

创建菜单基本上就像正常的弹出式自动完成,不是吗?通过插件获得上一个/下一个匹配是可行的。我把下面的()拼凑在一起,应该可以得到上一场比赛(一次)。您可以使用
previous\u keyword\u match
作为命令将其绑定到keybinding。请记住,control+p(取决于您的系统)是映射的默认命令。我添加了我用于测试键映射的内容,尽管您可能想更改它


哦,作为一个小的配置说明,我硬编码了5000(这允许向后搜索视图5000个字符,或者直到它再次到达起点)。如果你发现自己需要的不止这些,请随意调整。虽然我不认为这是必要的,因为你只会得到一个匹配项。

创建菜单基本上就像正常的弹出式自动完成,不是吗?通过插件获得上一个/下一个匹配是可行的。我把下面的()拼凑在一起,应该可以得到上一场比赛(一次)。您可以使用
previous\u keyword\u match
作为命令将其绑定到keybinding。请记住,control+p(取决于您的系统)是映射的默认命令。我添加了我用于测试键映射的内容,尽管您可能想更改它


哦,作为一个小的配置说明,我硬编码了5000(这允许向后搜索视图5000个字符,或者直到它再次到达起点)。如果你发现自己需要的不止这些,请随意调整。尽管我不认为这是必要的,因为您只获得一个匹配。

我注意到在vim中,它会显示一个包含所有可用选项的自动完成菜单。但是你只是在寻找上一个/下一个匹配吗?理想情况下,对于每一次速记击键,它都会来回移动一次。不需要菜单(尽管这很受欢迎!)创建菜单基本上就像正常的弹出式自动完成,不是吗?通过插件获得上一个/下一个匹配是可行的。我把下面的()拼凑在一起,应该可以得到上一场比赛(一次)。您可以使用“previous_keyword_match”作为命令将其绑定到keybinding。请记住,
control+p
(取决于您的系统)是映射的默认命令。我添加了我用于测试密钥映射的内容,尽管您可能想更改它。工作非常完美!非常感谢你!!!你能不能给我一个完整的答案,这样我就可以接受了?我注意到在vim中,它会显示一个包含所有可用选项的自动完成菜单。但是你只是在寻找上一个/下一个匹配吗?理想情况下,对于每一次速记击键,它都会来回移动一次。不需要菜单(尽管这很受欢迎!)创建菜单基本上就像正常的弹出式自动完成,不是吗?通过插件获得上一个/下一个匹配是可行的。我把下面的()拼凑在一起,应该可以得到上一场比赛(一次)。您可以使用“previous_keyword_match”作为命令将其绑定到keybinding。请记住,
control+p
(取决于您的系统)是映射的默认命令。我添加了我用于测试密钥映射的内容,尽管您可能想更改它。工作非常完美!非常感谢你!!!你能不能给我一个完整的答案,这样我就可以接受了?谢谢你,斯库罗达!工作几乎完美!还有一件小事。。。它似乎在变量中不起作用,例如,
$thisisaviable
将不会与
$this
+
CTRL+ALT+SHIFT+p
匹配。我相信这是一件很容易修复的事情……它是否用另一个以
this
开头的单词来完成?如果是这样,可能是因为“单词”的解析是如何发生的。请查看
单词分隔符
设置。您可能需要创建一个特定于语法的语法,以删除
$
请记住,如果您这样做,当您执行类似双击的操作来选择单词时,它将包括
$
之前忘记提到@user1238964的内容。我不知道你是否收到通知,所以再试一次。我获取了@skuroda的代码,对其进行了扩充,并将其作为包控制中的WordCompletion插件提供。它只适用于升华文本3。来源也是。谢谢你,斯库罗达!工作几乎完美!还有一件小事。。。它似乎在变量中不起作用,例如,
$thisisaviable
将不会与
$this
+
CTRL+ALT+SHIFT+p
匹配。我相信这是一件很容易修复的事情……它是否用另一个以
this
开头的单词来完成?如果是这样,可能是因为“单词”的解析是如何发生的。请查看
单词分隔符
设置。您可能需要创建一个特定于语法的语法,以删除
$
请记住,如果您这样做,当您执行类似双击的操作来选择单词时,它将包括
$
之前忘记提到@user1238964的内容。我不知道你是否收到通知,所以再试一次。我获取了@skuroda的代码,对其进行了扩充,并将其作为包控制中的WordCompletion插件提供。它只适用于升华文本3。消息来源也是如此。