시각적 블럭 모드에서 <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' 모드로 바뀐다. 내가 선택한 선에 뭔가를 삽입 할 수 있습니다. 마치'visual-block '모드에서'I'를 치는 것과 같습니다. –
j5shi