如何将搜索限制在当前行

如何将搜索限制在当前行

我正在尝试编写一个映射,让我在插入模式下可以在一行中的“常见”插入点周围移动。例如,我有 delimitMate 插件 - 因此输入开始分隔符会自动关闭分隔符并将我置于两者之间。一旦我输入了内部的文本,我通常想跳到分隔符的末尾并保持插入模式。继续推进,对于如下所示的功能

 $("#someid").live("someevent", function (param1, param2) {

我想要的是插入模式映射,它允许我跳转到以下任何分隔符(引号、双引号、括号和/或 EOL)中的第一个之后,并循环遍历这些点。

检查了 VIM 搜索文档 - \%l 运算符允许限制特定行号。我尝试了 \%.l (. 是当前行) - 但这不起作用。有任何想法吗?

:exe  "/\\%" . line(".") . "l[{}()\"':=\\[\\],]"

似乎有效 - 但不会将光标移动到匹配项。

答案1

让它与以下内容一起使用。

inoremap <C-e> <C-o>:call search("\\%" . line(".") . "l[{}():=\\[\\]\.,]","We")<cr>

这会将光标移动到当前行的匹配项,但有两件事效果不佳:

  1. 每次我按下琴键都会有很长的停顿
  2. 它让我在匹配字符之前进入 Ins 模式,而不是像我希望的那样在匹配字符之后进入 Ins 模式。

相关内容