2012-11-12 2 views
5

비주얼 모드로 들어갈 때 Vim이 상대 라인 넘버링으로 바뀌고, 이후 절대 넘버링으로 바뀌려고합니다.Vim의 비주얼 모드에서 상대 라인 번호 매기기를 활성화하려면 어떻게해야합니까?

autocmd InsertEnter :set rnu 
autocmd InsertLeave :set nu 

문제는, 내가 비주얼 모드에 대한 동등한를 찾을 수 없습니다 : 나는 다음과 같이 사용할 수 InsertEnterInsertLeave autocmd 이벤트, 거기에 나타났습니다.

답변

5

비주얼 모드에 대한 이벤트가 없습니다 (아직 구현되었으므로 패치를 제출할 수 있음). 비주얼 모드로 들어가기 위해, 당신은 단순히 시각적 모드를 시작하려면 몇 가지 명령을 무시할 수 있습니다 : 따로 명시 적으로 <Esc>을 통해 종료에서, 비주얼 모드를 중지 많은 명령이 있기 때문에

:nnoremap <silent> v v:<C-u>set nonu rnu<CR>gv 
:nnoremap <silent> V V:<C-u>set nonu rnu<CR>gv 
:nnoremap <silent> <C-v> <C-v>:<C-u>set nonu rnu<CR>gv 

(가) 'number'의 복원은 더 어렵습니다. 내가 생각할 수있는 최선은 CursorMoved의 방아쇠입니다.

vnoremap <Esc> <Esc>:set nu<CR> 
:autocmd CursorMoved * if mode() !~# "[vV\<C-v>]" | set nu | endif 
관련 문제