Program Club

VIM : 커서 / 화살표 키 비활성화 (탐색 전용)

proclub 2021. 1. 8. 20:47
반응형

VIM : 커서 / 화살표 키 비활성화 (탐색 전용)


inoremap  <Up>     <NOP>
inoremap  <Down>   <NOP>
inoremap  <Left>   <NOP>
inoremap  <Right>  <NOP>
noremap   <Up>     <NOP>
noremap   <Down>   <NOP>
noremap   <Left>   <NOP>
noremap   <Right>  <NOP>

이것은 내가 hjkl을 고수하기 위해 커서 탐색을 비활성화하는 데 사용하는 것입니다. :)

그러나 그것은 또한 명령 모음의 커서를 비활성화합니다 ... 일반적으로 화살표 키를 사용하여 기록을 순환 할 수 있습니다.

내비게이션이 아닌 탐색 용으로 만 커서 키를 비활성화 할 수 있습니까?


.vimrc파일에 다음을 추가 하십시오.

" Disable Arrow keys in Escape mode
map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

" Disable Arrow keys in Insert mode
imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

C-nC-p(각각 Ctrl + n 및 Ctrl + p)를 사용하여 기록을 순환 할 수 있습니다 .


당신은 커맨드 라인 모드에서 해제 역사를 탐색, 당신은 당신이하지 않겠 안 게시 한 코드 cnoremap <Up> <Nop>또는 noremap! <Up> <Nop>어딘가에? 시도 verbose cmap <Up>여부가 당신을 보여 주어야 <Up>키가 명령 행 모드로 다시 정의됩니다.


«command bar»라고 말할 때 명령 줄 창을 의미했다면 다음을 시도해 볼 수 있습니다.

nnoremap <expr> <Up> ((bufname("%") is# "[Command Line]")?("\<Up>"):(""))

나를 위해 이것은 작동합니다.

map <Left> <Nop>
map <Right> <Nop>
map <Up> <Nop>
map <Down> <Nop>

출처 : https://github.com/garybernhardt/dotfiles/blob/master/.vimrc#L148


q:명령 줄의 분할 창을 여는 데 사용 합니다. 일반적인 vim 창과 hjkl다른 일반적인 vim 동작을 사용하여 일반적으로 탐색 하고 Enter 키를 눌러 커서 아래에서 명령을 실행할 수 있습니다.

화살표 키를 사용하여 명령 줄 기록을 탐색하지 마십시오.

또한 q/또는을 사용하여 검색 기록에 액세스 할 수도 있습니다 q?.


변경 noremap하려면 nnoremap, 그렇지 않으면있는 거 세계 모든 모드 매핑을 정상 모드로 매핑을 적용합니다.


분할 된 창 사이를 이동하기 위해 다시 매핑 할 수도 있습니다. 이렇게하면 파일 내에서 방향 이동에 대한 화살표 키가 비활성화되지만 분할 된 창 사이를 이동할 수 있습니다.

noremap <up> <C-w><up>
noremap <down> <C-w><down>
noremap <left> <C-w><left>
noremap <right> <C-w><right> 

ReferenceURL : https://stackoverflow.com/questions/5367760/vim-disabling-the-cursor-arrow-keys-but-only-for-navigation

반응형