Ir para as linhas correspondidas por '[I': comando para exibir linhas com a palavra sob o cursor.

0

Ao pressionar [I VIM mostra uma lista de linhas que correspondem à palavra sob o cursor. Por exemplo, se o cursor estiver na palavra Table e se pressionar [I , o seguinte será mostrado:

  1:   49 class Table(object):
  2:  220         new_table = Table(t, records)
  3:  241         tables.append(Table(row[0], row[1],))
  4:  392         tables.append(Table(t, records))
Press ENTER or type command to continue

Como é possível selecionar facilmente uma opção da lista, ou seja, pular para uma das linhas? Eu tentei Tab , Ctrl-N , Ctrl-P , j , a seta chaves e inserindo 1 , 2 e assim por diante. Nenhum desses trabalhos. Eu sei que eu poderia simplesmente digitar o número da linha e, em seguida, gg para ir para a linha em questão, mas eu gostaria de saber se o VIM tem outro truque na manga.

    
por dotancohen 24.12.2013 / 10:23

2 respostas

2

O seguinte mapeamento vim deve fazer o que você quiser (o mapeamento é baseado na minha palavra de memória para este mapeamento: fast-search ):

nmap <leader>fs [I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."[\t"<CR>

O comando acima lista primeiro as linhas que correspondem à palavra sob o cursor desde o início do arquivo, e depois pergunta qual a correspondência que você deseja pular e, finalmente, pula para aquela correspondência.

Se você preferir listar as linhas começando com a palavra sob o cursor, ao contrário do início do arquivo, você pode usar:

nmap <leader>fs ]I:let nr = input("Which one: ")<Bar>exe "normal " . nr ."]\t"<CR>

Observe que os colchetes são invertidos no comando posterior.

    
por 25.12.2013 / 07:38
1

Essa lista não é interativa, você deve fazer o seguinte para pular para o segundo jogo:

:220<CR>
    
por 24.12.2013 / 10:29

Tags