Инструкции по воспроизведению :
- в оболочке:
ssh [ubuntu-ip]
(в настоящее время я не могу подтвердить, если это необходимо) - в оболочке:
tmux new-session nvim -u NONE
- затем в neovim:
i**[asdf]**<ESC>F[ca[asdf<ESC>
Результат : я остаюсь в режиме вставки, пока снова не нажму <ESC>
(без тайм-аута) вместо возвращается в нормальный режим.
Следующий тест выполняется на MacBook и на рабочем столе Ubuntu 14.04 с vanilla vim и neovim (каждый с -u NONE
, поэтому пользовательский vimr c в пустом безымянном файле, поэтому без типа файла), а также внутри и снаружи tmux .
Давайте определим XX
как представляют собой повторяющийся символ в наборе *#^01
, например **
или ##
. Этот набор не является исчерпывающим, но, похоже, исключает альфы и пробелы, такие как a
и
.
Учитывая последовательность XX<my-cursor><text-object>XX
, начиная с <my-cursor>
в нормальном режиме, когда я делаю ca<text-object><some-text-to-insert><ESC>
, в этих разных контекстах происходит следующее:
- (с tmux или без него), (vim или neovim), s sh (localhost или desktop) из macbook: я возвращаюсь в обычном режиме.
- (с tmux), (neovim), s sh (рабочий стол) из macbook: это сдвигает мой курсор на один пробел вправо, в
<non-whitespace>
и оставляет меня в режиме вставки ( НЕ ЖЕЛАТЕЛЬНО ). Мне нужен второй <ESC>
для выхода из режима вставки.
Другими словами, нежелательное поведение возникает только с neovim , в tmux , на ( только мой?) Рабочий стол Ubuntu 14.04.
Конкретно, я могу воспроизвести это с помощью следующей строки: **[asdf]**
где [...]
создает текстовый объект. Аналогично с 11"asdf"11
, где "..."
создает текстовый объект.
Если я поставлю пробел перед началом или после конца текстового объекта, проблема не возникнет.
Версии как для MacBook, так и для ПК:
tmux.conf
как на MacBook, так и на ПК:
set-option -g default-terminal "screen-256color"
set -sg escape-time 10
set -g status-interval 10
set -g default-shell $SHELL
Запуск :checkhealth
в neovim дает (среди прочего)
## tmux
- OK: escape-time: 10ms
, поэтому escape-time
здесь не проблема.