Выбор blockwise является более общим, то есть позволяет вставлять несколько строк в любом месте. Конечно, вы можете думать о выделенных линиях (и даже по символам) как о вырожденных случаях этого, но они будут менее универсальными (аналогично будет разрешено вставлять только в столбец 1 или конец строк), и, следовательно, по умолчанию не предлагаются ; то есть I
и A
доступны только в блочном визуальном режиме. Однако добавить их в другие режимы выбора тоже несложно:
" {Visual}I, {Visual}A Make I/A available in characterwise visual and linewise
" visual mode.
" Source: kana, http://whileimautomaton.net/
function! s:ForceBlockwiseVisualExpr()
if mode() ==# 'v'
return "\<Esc>g`<\<C-v>g`>"
elseif mode() ==# 'V'
return "\<Esc>g`<^\<C-v>g`>$"
else
return ''
endif
endfunction
xnoremap <expr> <silent> I <SID>ForceBlockwiseVisualExpr() . 'I'
xnoremap <expr> <silent> A <SID>ForceBlockwiseVisualExpr() . 'A'