분할을 처리하기 위해 실제로 매우 편리한 하위 모드 플러그인 을 사용합니다 . 새 키 바인딩을 정의하는 새 모드 (일반 모드, 시각적 모드, 삽입 모드 등의 "모드")를 만들 수 있습니다. .
Ctrl+w이제 더 이상 사용할 필요가 없으며 새로운 모드에있을 때 모든 키를 자유롭게 바인딩 할 수 있습니다. 더 이상 "아무런 의미로 키 조합을 찾을 수없고 아직 맵핑되지 않은 키 조합을 찾을 수 없습니다" "
일반 플러그인 관리자를 사용하여 플러그인을 설치할 수 있으며 다음은 영감을주는 일부 구성입니다.
WindowsMode
스플릿을 조작 하는 새로운 모드를 만들었습니다 .
call submode#enter_with('WindowsMode', 'n', '', '<Leader>k', ':echo "windows mode"<CR>')
call submode#leave_with('WindowsMode', 'n', '', '<Leader>')
내가 가진 모드에서 입력하는 것이이 라인 수단 Leaderk과 함께 나는 모드를 종료 Leader내가 공격 후 : Leaderk나는 것 명중 모든 키를 :
- 이 모드에서 매핑을 정의하지 않은 경우 아무 작업도 수행하지 마십시오
- 이 모드에서 매핑하기로 결정한 작업을 수행하십시오 (나머지 답변 참조).
- 맞으면 정상 모드로 돌아갑니다 Leader
WindowsMode
이 라인 에 들어가면 다음 hjkl과 같은 분할 을 탐색하십시오.Ctrl+whjkl
" Change of windows with hjkl
call submode#map('WindowsMode', 'n', '', 'j', '<C-w>j')
call submode#map('WindowsMode', 'n', '', 'k', '<C-w>k')
call submode#map('WindowsMode', 'n', '', 'h', '<C-w>h')
call submode#map('WindowsMode', 'n', '', 'l', '<C-w>l')
이 줄을 사용하여 창을 /and 로 나누었습니다 !.
" split windows with / and !
call submode#map('WindowsMode', 'n', '', '/', '<C-w>s')
call submode#map('WindowsMode', 'n', '', '!', '<C-w>v')
그리고 q분할을 닫습니다.
call submode#map('WindowsMode', 'n', '', 'q', '<C-w>c')
다음과 같이 분할을 이동하십시오 Ctrlhjkl.
call submode#map('WindowsMode', 'n', '', '<C-j>', '<C-w>J')
call submode#map('WindowsMode', 'n', '', '<C-k>', '<C-w>K')
call submode#map('WindowsMode', 'n', '', '<C-h>', '<C-w>H')
call submode#map('WindowsMode', 'n', '', '<C-l>', '<C-w>L')
Vim-submode를 사용하면 많은 강력한 작업을 수행 할 수 있습니다 . 자세한 내용 은 문서 를 참조하십시오.
편집 Window 하위 모드의 다른 접근 방식이 여기 에 설명되어 있습니다 . 저자가 사용하는 방법이 질문에 대답하는 데 훨씬 더 가깝다고 생각합니다. 여기서 새 모드를 만드는 데 사용되지만 모든 <c-w>something
매핑을 하위 모드에서 동일한 키로 사용할 수 있습니다.
" Go through every letter
for key in ['a','b','c','d','e','f','g','h','i','j','k','l','m',
\ 'n','o','p','q','r','s','t','u','v','w','x','y','z']
" maps lowercase, uppercase and <C-key>
call submode#map('window', 'n', '', key, '<C-w>' . key)
call submode#map('window', 'n', '', toupper(key), '<C-w>' . toupper(key))
call submode#map('window', 'n', '', '<C-' . key . '>', '<C-w>' . '<C-'.key . '>')
endfor
" Go through symbols. Sadly, '|', not supported in submode plugin.
for key in ['=','_','+','-','<','>']
call submode#map('window', 'n', '', key, '<C-w>' . key)
endfor
이 방법은 모든 매핑 <c-w>lowerCaseKey
, <c-w>upperCaseKey
, <c-w><c-Key>
와 매핑 <c-w>=_+-<>
접두사없이 모든 창 모드에서 액세스 할 수 있습니다<c-w>
wincmd
예를 들어 다음:nmap wj :wincmd j<cr>
과 같이 매핑 할 수 있습니다.CTRL-W j
(아래 창으로 이동) 과 동일하게 작동 합니다.:help wincmd