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:)
Но он также отключает курсор на панели команд... обычно клавиши со стрелками позволяют вам циклически перебирать историю
Можно ли отключить клавиши курсора ТОЛЬКО для навигации, а не для истории?
Ответы
Ответ 1
Добавьте в файл .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>
Ответ 2
Вы можете просмотреть историю с помощью C-n
и C-p
(Ctrl + n и Ctrl + p, соответственно).
Ответ 3
Код, который вы опубликовали, не должен отключать навигацию истории в режиме командной строки, вы уверены, что у вас нет cnoremap <Up> <Nop>
или noremap! <Up> <Nop>
где-нибудь? Попробуйте verbose cmap <Up>
, он должен показать вам, переопределен ли ключ <Up>
для режима командной строки.
Если при написании "командной строки" вы имели в виду окно командной строки, вы можете попробовать следующее:
nnoremap <expr> <Up> ((bufname("%") is# "[Command Line]")?("\<Up>"):(""))
Ответ 4
Для меня это работает:
map <Left> <Nop>
map <Right> <Nop>
map <Up> <Nop>
map <Down> <Nop>
Взято из:
https://github.com/garybernhardt/dotfiles/blob/master/.vimrc#L148
Ответ 5
Измените noremap
на nnoremap
, чтобы применить сопоставления к нормальному режиму, иначе они будут глобальными отображениями всех режимов.
Ответ 6
Используйте q:
, чтобы открыть разделенное окно вашей командной строки. Вы можете нормально перемещаться внутри него, так как это обычное окно vim с помощью hjkl
и других обычных движений vim, и нажмите enter, чтобы запустить команду под курсором.
Не используйте клавиши со стрелками для навигации по истории командной строки.
Кстати, вы также можете получить доступ к своей истории поиска с помощью q/
или q?
.
Ответ 7
Вы также можете переустановить их для перемещения между разделенными окнами.
Это отключает клавиши со стрелками для направленного перемещения внутри файла, но позволяет перемещаться между разделенными окнами.
noremap <up> <C-w><up>
noremap <down> <C-w><down>
noremap <left> <C-w><left>
noremap <right> <C-w><right>