我知道可以使用<repeat-count><ctrl>-a
和<repeat-count><ctrl>-x
命令通过重复计数递增/递减整数。
现在我想知道是否有类似的乘法和除法命令。如果没有这样的命令,我怎么能在我自己的.vimrc中实现呢?
答案 0 :(得分:1)
这是一次快速而肮脏的尝试:
function! Multiply()
" save count
let cnt = v:count1
" save register v
let old_reg = getreg("v")
" select the number under the cursor
call search('\d\([^0-9\.]\|$\)', 'cW')
normal v
call search('\(^\|[^0-9\.]\d\)', 'becW')
" yank it into register v then reselect
normal "vygv
" change the selection with the yanked number multiplied by the count
execute "normal c" . @v * cnt
" restore register v
call setreg("v", old_reg)
endfunction
nnoremap <F5> :<C-u>call Multiply()<CR>
现在,按5<F5>
将光标下的数字乘以5
。
如果你想在没有映射/功能的情况下这样做:
v{motion}c<C-r>=<C-r>"*5<CR><Esc>