7

Vim : команда :set ignorecase не влияет на команды движения "f" и "t" в моей конфигурации vim.

Есть ли какая-либо опция или хак, который заставляет эти команды игнорировать регистр?

2 ответа2

1

Я хотел бы предложить что-то вроде:

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>
0

Основная версия этого на самом деле в справочном руководстве, как пример того, как использовать функцию getchar() :

Этот пример переопределяет "f", чтобы игнорировать регистр:

: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

Смотрите :help getchar() .

Вам нужно сохранить возвращенного персонажа и написать аналогичную карту для ; если вы хотите, чтобы это тоже работало, и напишите код для обработки v:count1 если вы хотите, чтобы он работал с счетчиками.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .