Ответ 1
Просто создайте пустой файл .vimrc в домашнем каталоге удаленной машины. Он начал работать отлично для меня.
touch ~/.vimrc
Я установил последний vim с помощью homebrew, а также установил mac-vim с домашней страницы Google. в mac-vim все работает нормально. но когда я запускаю vim в terminal.app в mac и перехожу в режим вставки, я получу A B C D для клавиш со стрелками, что крайне раздражает.
Я просмотрел его и попробовал все решения, но для меня ничего не работает!
он становится интересным, когда я запускаю vim с помощью vim -u NONE -U NONE -N
, тогда клавиши со стрелками начинают нормально функционировать в режиме вставки.
Мои файлы vimrc являются клонами janus (from carlhuda)
У вас такая же проблема в терминале? есть ли способ исправить его в terminal.app?
Просто создайте пустой файл .vimrc в домашнем каталоге удаленной машины. Он начал работать отлично для меня.
touch ~/.vimrc
Вам нужно установить совместимый режим в vim Попробуйте выполнить следующую команду в обычном режиме
:set nocompatible
Это работает для меня:
map ^[[A <up>
map ^[[B <down>
map ^[[C <right>
map ^[[D <left>
Чтобы ввести последовательность для каждой клавиши со стрелкой, вам нужно нажать ctrl - v, затем клавишу со стрелкой.
Например, чтобы ввести первую строку:
m, a, p, space, ctrl - v, ←, space, <, u, p, >
Это также может работать:
set t_ku=^[[A
set t_kd=^[[B
set t_kr=^[[C
set t_kl=^[[D
Я работаю на MacBook Pro с OSx El Captain (версия 10.11.1) и испытывал такую же проблему после обновления моего Vim с помощью Homebrew.
Моя версия Vim - 7.4.1063.
У меня возникла проблема с приложением Terminal, а также с приложением iTerm (сборка 2.1.4).
Чтобы решить эту проблему, я выполнил некоторые из инструкций предыдущих ответов от @devsathish и @Kailash. Последовали следующие шаги:
1 - Создайте файл .vimrc с помощью touch ~/.vimrc
2 - Добавьте к нему следующее:
set nocompatible
set backspace=indent,eol,start
Теперь клавиши со стрелками и клавиши удаления/возврата работают должным образом. Мне не нужно было менять свою переменную $TERM
env, как это было предложено в некоторых предыдущих ответах.
Я надеюсь, что это поможет другим с той же проблемой.
Я использую iTerm2 с spf13-vim и имею такую же проблему сегодня.
Это вызвано удалением плагина vim-autoclose. Это решение исправило это.
Просто добавьте следующие строки в ваш .vimrc
if &term[:4] == "xterm" || &term[:5] == 'screen' || &term[:3] == 'rxvt'
inoremap <silent> <C-[>OC <RIGHT>
endif
Это обычно вызвано неправильной переменной среды $TERM. Не уверен, какие из них поддерживаются в вашей системе, но вы можете попробовать с помощью "linux" или "vt320":
export TERM = linux
Чтобы убедиться, что мой терминал отлично работает с Vim 7.3 в Show Leopard, я сделал следующее:
export PATH=/usr/local/bin:$PATH
export TERM=linux
в мой .bashrc
файл..vimrc
с некоторыми параметрами (ранее связанный здесь, ссылка пошла в прошлое.)Когда это делается, все должно работать. Тем не менее, я испытал, что какой-то текст, кажется, не удаляется, как и его защищенный, до тех пор, пока я не dd
или x
. Кто-нибудь испытал что-то подобное? Также, пожалуйста, поделитесь комментариями к моему маленькому руководству выше.
Это то, что сработало для меня (на основе первоначального решения от @Phoenix выше)
imap ^[OA <ESC>kli
imap ^[OB <ESC>jli
imap ^[OC <ESC>lli
imap ^[OD <ESC>hli
для каждого
^ [
введите последовательность, нажмите ctrl-v, затем ESC
Я использовал следующий код в моем файле .vimrc, и он решил проблему со стрелками.
...
...
" Use Vim settings, rather than Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
...
...
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
inoremap <C-U> <C-G>u<C-U>
" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')
set mouse=a
endif
...
...
Я опубликовал свой полный .vimrc
файл здесь. Надеюсь, это поможет!
Ничто из этого не помогло мне. Запуск vim в пустом состоянии с vim -u NONE -U NONE -N
заставил его работать нормально, и поскольку у меня не было никаких плагинов, я знал, что проблема в моем vimrc. Поэтому я начал комментировать разделы, и в один момент проблема исчезла.
Преступником была эта строка: inoremap
Даже если это было рекомендовано в очень хорошо написанном курсе (http://learnvimscriptthehardway.stevelosh.com/chapters/10.html), он сломал клавиши со стрелками в Mac OS X 10.10, В принципе, вы не должны перезаписывать esc, как объясняет другой ответ SO: Как отключить Esc и клавиши курсора в vim
У меня была аналогичная проблема с другим плагином. Я решил это путем жесткого кодирования этих альтернативных отображений в самом script, первая строка каждой пары была проблематичной, вторая строка - исправление:
VIM::command "#{map} <Right> :call <SID>#{prefix}KeyPressed(9)<CR>"
VIM::command "#{map} ^[OC :call <SID>#{prefix}KeyPressed(9)<CR>"
VIM::command "#{map} <Left> :call <SID>#{prefix}KeyPressed(23)<CR>"
VIM::command "#{map} ^[OD :call <SID>#{prefix}KeyPressed(23)<CR>"
VIM::command "#{map} <Down> :call <SID>#{prefix}KeyPressed(14)<CR>"
VIM::command "#{map} ^[OB :call <SID>#{prefix}KeyPressed(14)<CR>"
VIM::command "#{map} <Up> :call <SID>#{prefix}KeyPressed(16)<CR>"
VIM::command "#{map} ^[OA :call <SID>#{prefix}KeyPressed(16)<CR>"
^[
получается нажатием <C-v><Esc>
.
Возможно, вы можете попробовать что-то вроде:
map <Right> ^[OC
Я решил это на OS X Mavericks (10.9), удалив set noesckeys
из ~/.vimrc
Я столкнулся с этой проблемой. Он имеет несколько причин, но один из них - vim, используя по умолчанию поведение vi, а не vim. Удивительно, но это может быть вызвано расположением вашего файла vimrc.
Например, если вы удалите свой .vimrc из своего домашнего каталога и переместите содержимое в общесистемный файл vimrc, vim начнет использовать значения по умолчанию vi. С Mac Terminal это даст вам ABCD из стрелок в режиме вставки. Добавьте "set nocompatible" в общесистемный vimrc, который заставит vim использовать значения по умолчанию vim, и стрелки снова будут работать.