Почему SHIFT + V (VISUAL LINE) не многострочный, как CTRL + V (VISUAL BLOCK)? - PullRequest
0 голосов
/ 10 ноября 2018

Мне просто любопытно, почему я должен использовать визуальный блок выделение для вставки в несколько строк вместо визуальная линия ?

В чем разницаза кадром, что вызывает эту разницу?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Выбор 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'
0 голосов
/ 10 ноября 2018

Вы можете понимать это как "режим строки" и "режим столбца". Вы хотите добавить что-то в один и тот же столбец из нескольких строк, вы используете "ctrl-v" (режим столбца).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...