Vim:set ignorecase
命令不会影响我的 vim 配置中的“f”和“t”运动命令。
是否有任何选项或技巧可以使该命令忽略大小写?
答案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>
答案2
该函数的基本版本实际上在参考手册中作为如何使用该函数的示例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