Como limitar uma pesquisa à linha atual

2

Estou tentando escrever um mapeamento que me permita mover pontos de inserção "comuns" em uma linha quando estiver no modo de inserção. Por exemplo, eu tenho o plugin delimitMate - então, digitar um delimitador de abertura automaticamente fecha o delimitador e me coloca entre eles. Uma vez que eu digitei o texto que está dentro, geralmente eu quero pular para o final do delimitador e ficar no modo de inserção. Levando isso adiante, para uma função como abaixo

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

O que eu gostaria é de um mapeamento de modo de inserção que me permita ir para depois do primeiro de qualquer um dos seguintes caracteres delimitadores (aspas, aspas duplas, parênteses e / ou EOL) e passar por cima desses pontos.

Verificação da documentação do VIM para pesquisa - o operador \% l permite restringir um número de linha específico. Eu tentei \% .l (. Sendo a linha atual) - mas isso não funciona. Alguma idéia?

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

parece funcionar - mas não move o cursor para a correspondência.

    
por rrr 28.12.2011 / 08:36

1 resposta

1

Entendi isso para trabalhar com o seguinte.

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

Isso move o cursor para as correspondências na linha atual, mas há duas coisas que não funcionam bem:

  1. há uma longa pausa toda vez que eu aperto a tecla
  2. Ele me coloca no modo Ins antes do caractere correspondente, em vez de depois, como eu gostaria.
por 28.12.2011 / 18:53