Vim: ignorar maiúsculas e minúsculas nos comandos de movimento “f” e “t”

7

O comando vim :set ignorecase não afeta os comandos de movimento "f" e "t" na configuração do vim.

Existe alguma opção ou hack que faz com que este comando ignore o caso?

    
por Bogdan Gusiev 28.06.2011 / 20:30

2 respostas

1

Eu sugeriria algo como:

function! ForwardLookup()
    " get next key pressed
    let c = nr2char(getchar())
    let old_search_pattern = @/
    " Use of \V enables very-nonmagic pattern
    exec 'normal /\c\V' . escape(c, '\/') . nr2char(0x0d)
    let @/ = old_search_pattern
endfunction
nnoremap f :call ForwardLookup()<CR>
    
por 28.06.2011 / 22:39
0

Uma versão básica disso está no manual de referência como um exemplo de como usar a função getchar() :

This example redefines "f" to ignore case:

:nmap f :call FindChar()<CR>
:function FindChar()
:  let c = nr2char(getchar())
:  while col('.') < col('$') - 1
:    normal l
:    if getline('.')[col('.') - 1] ==? c
:      break
:    endif
:  endwhile
:endfunction

Veja :help getchar() .

Você precisará salvar o caractere retornado e escrever um mapa similar para ; se quiser que isso funcione também, e escrever código para manipular v:count1 se você quiser que ele funcione com contagens .

    
por 09.04.2018 / 15:14

Tags