Отображения Alt для vim в urxvt

Мои сопоставления, содержащие Alt , не работают в vim при использовании в urxvt . Они отлично работают в gvim . Пример такого отображения

 map <silent> <Ah> <Cw>< 

В режиме вставки, когда я набираю Alt-h , печатается только h . Как мне настроить urxvt таким образом, чтобы отображения, содержащие Alt работали в vim? Я использую Ubuntu.

К сожалению, я устанавливаю свой модификатор как супер в urxvt. Вот почему ни одно из решений не работало для меня. Убедитесь, что вы установили модификатор как Alt, чтобы получить предлагаемые решения.

3 Solutions collect form web for “Отображения Alt для vim в urxvt”

Когда вы создаете сопоставление <Ax> в Vim, когда x является печатным символом (т. Е. Не курсором или клавишей со стрелкой), он сообщает Vim ожидать, что символ с 8-м / высоким битом установлен (aka, добавьте 128 к значению ASCII ).

В вашем примере <Ah> означает, что Vim вызывает сопоставление при вводе è. Значение ASCII h равно 104 (двоичный 01101000), и когда вы устанавливаете 8-й бит этого числа, вы получаете значение ASCII от 232 (двоичный код 11101000).

Что происходит в urxvt и многих других терминалах, так это то, что клавиша Alt настроена на отправку символа, введенного с префиксом Escape, вместо «добавления 128». В этом случае семя Vim <Esc>h вместо è, поэтому отображение не запускается.

Это дает вам два варианта: переконфигурируйте свой терминал, чтобы сделать что-то другое с помощью модификатора Alt или добавьте больше сопоставлений в Vim с помощью <Esc>x в дополнение к <Ax> .

Если вам нужно ввести текст без ASCII, попробуйте изменить свои сопоставления в vim от <Ax> до <Esc>x .

Если вы вводите только текст ASCII, вы можете попробовать запустить urxvt с параметром --meta8 , а в vim set termencoding=latin1 .

Вы также можете попробовать другие решения:

http://vim.wikia.com/wiki/Get_Alt_key_to_work_in_terminal

Я бесстыдно отправляю ответ, заданный u / jbaumy93 на reddit .

Вот что я сейчас использую,

В ~/.Xresources я не устанавливаю URxvt.meta8: true когда кодировка ломается, когда я ее устанавливаю. Если я использую set termencoding=latin , он set termencoding=latin . Я решил использовать сопоставления Esc поскольку @graywh разместил и использовал ответ, связанный выше, чтобы сделать это.

Также убедитесь, что модификатор установлен как Alt в urxvt . Я использовал super как модификатор, и ни один из опубликованных решений не работал.

Вот фрагмент моего vimrc

 nnoremap <silent> <Ah> <Cw>< nnoremap <silent> <Ak> <Cw>- nnoremap <silent> <Aj> <Cw>+ nnoremap <silent> <Al> <Cw>> function! Altmap(char) if has('gui_running') | return ' <A-'.a:char.'> ' | else | return ' <Esc>'.a:char.' '|endif endfunction if $TERM == 'rxvt-unicode-256color'&&!has('gui_running') set ttimeoutlen=10 augroup FastEscape autocmd! autocmd InsertEnter * set timeoutlen=400 autocmd InsertLeave * set timeoutlen=2000 augroup END execute 'nnoremap <silent>'.Altmap('h').'<Cw><' execute 'nnoremap <silent>'.Altmap('k').'<Cw>-' execute 'nnoremap <silent>'.Altmap('j').'<Cw>+' execute 'nnoremap <silent>'.Altmap('l').'<Cw>>' endif 
  • Symlink везде
  • Какие пакеты необходимы для установки vim на Fedora?
  • Vim - как увеличить число в визуальном блоке?
  • Установка vim локально в кластере: не удается найти синтаксис
  • Как присоединиться к следующей строке, когда строка соответствует регулярному выражению для всего документа в VI?
  • Поиск и замена VIM
  • Установить переменную среды для диспетчера файлов Ranger
  • vim поиск имени подстрочной переменной с помощью *
  • Невозможно отредактировать файл .vimrc
  • Отображать и редактировать строки, соответствующие конкретному шаблону в vi
  • Системный буфер сброшен, как только я выйду из vim
  • Interesting Posts

    Какой формат дает photorec для файлов?

    Журналы EXT4 – проблема

    Как я могу открыть открытый и прослушивающий порт в Linux?

    Что такое SELinux ".lst" файлы в / usr / share / selinux / предназначенные для CentOS 7?

    Связывание двух широкополосных соединений для обслуживания LAN в качестве шлюза

    В Archlinux он имеет действительный ip, но соединение не может быть установлено

    Как создать файл с пустым именем?

    Почему «kill -l» дает разные результаты в рыбе и bash

    Почему после этого точка с запятой не принимается?

    Ограничение использования памяти ЦП для служб для предотвращения сбоя

    Определите подкаталоги, которые не содержат определенную строку в определенном файле

    Печатать слово, которое не содержит символа

    резервное копирование: какие исправления для резервного копирования перед обновлением / переустановкой

    Почему я не могу использовать аутентификацию открытого / закрытого ключа с помощью ssh в Arch Linux?

    Нечувствительный к регистру поиск в man-страницах

    Linux и Unix - лучшая ОС в мире.