視覚ブロックモードでは、<S-i>
(I
)で複数の行に挿入することができますが、関数で同じ効果を達成したいと思います三つのサブのビジュアルモードを以下のように(visual-character
、visual-line
、visual-block
)、Vimコマンドを使用して複数の行にテキストを挿入する
function! VisualMappingSpace()
let m = visualmode()
if m ==# 'v'
echo 'character-wise visual'
elseif m == 'V'
echo 'line-wise visual'
elseif m == "\<C-V>"
echo 'block-wise visual'
endif
endfunction
次のように私が試したが、それは動作しませんを伝えることができました。 visual-block
モードで<space>
を押したときに選択した行にノイズを挿入したい。 :
を介してコマンドラインモードに入る
function! VisualMappingSpace()
let m = visualmode()
if m ==# 'v'
exec "normal y"
elseif m == 'V'
exec "normal y"
elseif m == "\<C-V>"
let g:block_insert_content = input("")
exec "normal I ".g:block_insert_content
endif
endfunction
vnoremap <silent> <Space> :call VisualMappingSpace()<CR>
'exec" normal y "は' normal y'にする必要があります。とにかく、何を期待していますか?代わりに何を得ますか? – romainl
実際に私が期待しているのは ''を選択したときに 'visual character 'と' visual-line'モードです。選択された行をデフォルトレジスタにコピーできます。 '' 'visual-block'モードで' I'を打ったように、選択した行に何かを挿入することができます。 –
j5shi