답변:
이 작업을 수행하는 기본 방법을 모르지만 쉽게 할 수있는 맵을 가질 수 있습니다.
nnoremap µ :exe 'normal! '.(virtcol('$')/2).'\|'<cr>
@Ingo Karkat은 VISUAL 모드에서도 작동하는 다음 변형을 제안했습니다.
noremap <expr> gM (virtcol('$') / 2) . '<Bar>'
불행히도 SELECT 모드에서도 트리거됩니다. 결과적으로 나는 부부를 선호합니다.
nnoremap <expr> gM (virtcol('$') / 2) . '<Bar>'
xnoremap <expr> gM (virtcol('$') / 2) . '<Bar>'
noremap <expr> gM (virtcol('$') / 2) . '<Bar>'
내장 gm
은 정확하게 이것을 수행합니다.
M
화면을 가정했습니다.
:set virtualedit=all
.
Luc의 답변에 추가하기 위해 Easymotion 플러그인이있어 특정 위치로 빠르게 이동할 수 있습니다. 를 누르면 <Leader><Leader>w
특정 단어로 이동하기 위해 누를 수있는 키가 강조 표시됩니다. 이렇게하면 현재 줄 중간에있는 단어로 쉽게 이동할 수 있습니다.
줄 중간에 공백을 고려하지 않고 텍스트 중간으로 가려면 다음과 같이하십시오.
function! s:Gm()
execute 'normal! ^'
let first_col = virtcol('.')
execute 'normal! g_'
let last_col = virtcol('.')
execute 'normal! ' . (first_col + last_col) / 2 . '|'
endfunction
nnoremap <silent> gm :call <SID>Gm()<CR>
그러나 이것이 시각적 모드에서는 작동하지 않는다고 생각합니다.
gM
https://vimhelp.org/motion.txt.html#gM : 커서를 줄의 텍스트 절반으로 이동
2019 년 10 월에 구현되었습니다. https://github.com/manuelschiller/vim/commit/a267c57acdd8843a91eed2cede6ef02d970147fd