Клавиши HOME и END Проблема в Vim

Я на Ubuntu. Я начинающий пользователь Vim. У меня есть настройки отображения ключей в /etc/vim/vimrc для домашних и конечных ключей.

Он работает на терминале, но когда я редактирую файл в терминале Гюка, эти сопоставления не работают. У меня есть эта проблема со мной только на этот раз. В прошлый раз (я имею в виду, прежде чем переустанавливать Ubuntu) он работал нормально на каждом терминале.

Я пробовал

 set term=xterm

но он все еще не работает.

Будет очень приятно, если кто-нибудь поможет мне в этом. Кроме того, если кто-то может дать мне дополнительную информацию о некоторых других ключах для карты или некоторых полезных вещах, это будет очень приятно.

-

vimrc:

if has("syntax")
  syntax on
endif

//только это было добавлено мной

if filereadable("/etc/vim/vimrc.local")
   source /etc/vim/vimrc.local
endif

map <ESC>[8~    <End>

map <ESC>[7~    <Home>

imap <ESC>[8~    <End>  

imap <ESC>[7~    <Home>

Прокомментированы все элементы ret

Я хотел бы добавить, что я не думаю, что это проблема с файлом vimrc, так как эта конфигурация позволяет мне использовать эти клавиши END и HOME в терминале, когда я в режиме Insert или Normal. Но не работаем на guake (поправьте меня, если я ошибаюсь, пожалуйста.)

Все еще надеюсь, что вы можете мне что-то помочь.

-

Ответ 1

В vim вы можете достичь конца текущей строки, используя $, и начала строки, используя ^. Я нахожу эти символы более удобными, чем Home и End при наборе текста.

Надеюсь, поможет :)

-dave

Ответ 2

У меня была та же проблема с urxvt, возможно, вы могли бы по крайней мере отладить ее с помощью тех же шагов.

Для меня все было нормально, пока я не переключился (с терминала гнома) на urxvt. Я решил выполнить инструкции по этой ссылке:

https://wiki.archlinux.org/index.php/Home_and_End_keys_not_working

Оказывается, у меня был "export TERM" в моем .bashrc(затем удален).

Я также исправил свои .Xdefaults(URxvt * termName: rxvt-unicode-256color) и мой .tmux.conf(set -g default-terminal rxvt-unicode-256color)

Вы можете выполнить шаги в этой ссылке archlinux и сообщить нам, если это сработало.

Я бы сделал это как комментарий, но у меня нет достаточного количества баллов.

Также ответ с некоторыми голосами здесь не полностью отвечает на вопрос.

Сегодня я сделал больше тестов: Что я тестировал: ssh-соединение в CentOS; машина 1 - нет tmux - $TERM = ansi машина 2 - tmux - $TERM = screen-256color

В обоих случаях установить $TERM в rxvt-256color исправлена ​​проблема. (Если вы используете tmux/screen, установленный в своих файлах conf, иначе установите в .bashrc)

Пробовал то же самое в моей машине (debian - tmux - urxvt - neovim); и это сработало.

Ответ 3

Я не знаю, сработает ли это для вас, но у меня это сработало: я заметил, что для TERM установлено значение "linux" [проверьте с помощью 'echo $ TERM].

Тогда есть два способа решения.

Во-первых) Измените .bashrc или ваш файл конфигурации на:

export TERM='xterm'

или Второе) Добавьте эти строки в ваш .vimrc:

" Fix home/end key in all modes
map <esc>OH <home>
cmap <esc>OH <home>
imap <esc>OH <home>
map <esc>OF <end>
cmap <esc>OF <end>
imap <esc>OF <end>