Intereting Posts
Как создать учетную запись привязки LDAP в Centos / RedHat, которая позволяет мне искать по ldapbind@server.com Перенаправить трафик на определенный веб-сайт Как запустить новую фоновую команду последовательно, если у меня уже есть команда nohup background? Msgstr "Ошибка нечистота PCH FIFO на основе транскодера A" во время загрузки centos 7 на toshiba отображения адресного пространства ядра в отношении виртуального адресного пространства – вопрос, основанный на тексте Роберта Лава Этот файл должен быть отредактирован командой «visudo».? ssh переходит к динамическому серверу через шлюз с ключом Помните «локальную» историю bash в папке? Есть ли способ настойчиво отключить панель меню в Konsole на Gnome 3? Попытка запуска rsync между двумя удаленными серверами посредством переадресации через обратный порт с помощью ключа ssh Поиск mp3-коллекции для песен с определенной длиной песни Как раскрасить последнее окно в строке состояния? Настройка принтера для использования только формата A4 mpd: нет аудиовыхода с PulseAudio, без смешивания с ALSA Обновления / приложения / пакеты для Ubuntu 10.10 без подключения к Интернету

Почему карта вставки «<F4>» непредсказуемо вставляет себя или выполняет намеченные штрихи?

В Vim 7.3.1-762 mintty 1.1.2 (xterm), cygwin, Windows XP, карта вставки в режиме <F4> выполняет намеченные штрихи в одно время, но вставляет себя в другое время. Это неопределенное поведение особенно возникает, если я удерживаю нажатой клавишу <F4> .

Как сделать поведение предсказуемым при использовании нескольких версий Vim, терминалов и операционной системы?

Это код, который я определил в файле ~/.vimrc , который мне кажется уместным:

 set compatible set timeout set ttimeout set timeoutlen=1000 set ttimeoutlen=100 imap <F4> <C-\><CO>:set relativenumber! relativenumber?<CR> 

Если я присваиваю сопоставление функциональной клавише выше <F4> , например <F5> , <S-F7> и т. Д. Я не испытываю описанного выше поведения. Также, если я set notimeout параметр timeout с помощью set notimeout он, похоже, делает трюк.

Я сделал ключ <F4> очевидно, работающим во всех режимах, используя map <expr> выражения map <expr> следующим образом:

 MapOptToggle <F4> relativenumber MapOptToggle! <S-F4> number command! -bang -nargs=+ MapOptToggle call <SID>MapOptToggle(<bang>0, <f-args>) function! s:MapOptToggle(bang, key, opt) function! s:ToggleOpt(opt) if mode() =~# '\vno?' || !&showmode exec 'set ' . a:opt . '! ' . a:opt . '?' else exec 'set ' . a:opt . '!' endif redraw return '' endfunction let a='noremap' let b='<unique> <silent> <expr> ' . a:key . ' <SID>ToggleOpt(' . string(a:opt) . ')' exec a . ' ' . b exec a . '! ' . b exec 'set ' . (a:bang ? 'no' : '') . a:opt endfunction 

Но все же мой ответ не объясняет непредсказуемое поведение карты вставки imap .

Этот комментарий

 especially occurs if I hold the <F4> key depressed. 

что проблема связана с повторением ключа (увеличение скорости повторения при удерживании клавиши вниз), мешающее таймауту, используемому для определения того, является ли escape-символ началом функциональной клавиши или функциональным символом vi. Когда vi (или vim) слишком быстро набирает слишком много символов, он видит начало функционального ключа в качестве escape-кода и (например) прерывает текущую вставку.

Некоторые программы (например, xterm) отправят vt100-стиль PF1-PF4 для F1- F4 . В результате escape O S является командой vi, которая помещает вас в режим insert, позволяя ему вставлять части управляющих последовательностей, которые он читает.

Дальнейшее чтение:

  • Функциональные клавиши VT220-Style (последовательности управления XTerm)