Здесь совершенно не хватает интуиции.
Сначала я подумал, что это происходит только при копировании и вставке кода из редактора. К сожалению, это более распространено. Единственное, что я делаю, это пытаюсь вставить больше кода где-то посередине текущего ввода или изменить его.
Ожидаемое поведение:
- Изменить ввод без побочных эффектов.
Что на самом деле происходит:
- ОЧЕНЬ ЧАСТО при изменении ввода он запутывается.
- Если это происходит, каждое нажатие клавиши копирует и вставляет текущий ввод вместе с нажатым символом.
Основные ноты:
Кодирование установлено на UTF-8 в терминалах (ах)
Проблема сохраняется на разных эмуляторах (терминатор, gnome-терминал)
Проблема сохраняется при использовании другой консоли времени исполнения Ruby (IRB, Pry)
Похоже, проблема связана со средой исполнения Ruby, а НЕ с оболочкой Linux (я думаю ...)
Проблема появляется с:
- С момента установки системы. Не появился на моем MacBook Air
Система:
- ArchLinux, хотя коллега сообщил, что на его MacBook Pro происходит то же самое.
Как воспроизвести (работает у меня):
- Консоль с открытыми рельсами
- Введите пример кода: Shift.where (имя: "сом"). Где (имя: "дом"). Где (имя: "пом")
- Перемещайте курсор, чтобы сначала изменить оператор where.
- Измените "сом" на "СОМ"
- Должен увидеть, что он сломается
- Несколько раз нажмите случайную клавишу, чтобы увидеть, что она сломалась еще больше.
Изображения:
Теперь я перейду к первому оператору, в котором «som» будет изменен на «SOM» в верхнем регистре.
Я в основном перемещался по своему курсору и нажимал SHIFT + S, SHIFT + O, SHIFT + M
Надеюсь, это достаточно ясно :-)
Спасибо!
РЕДАКТИРОВАТЬ 1:
Пробовал использовать zsh вместо bash, не помогло
Отключен самоцвет весны, не помогло
РЕДАКТИРОВАТЬ 2:
Люди на Reddit предложили мне проверить, есть ли какие-либо предупреждения Ruby, касающиеся чтения строк, например. Msgstr "Readline не установлен". Ни один из них нигде не появляется. Также переустановил ruby 2.4.1, похоже, это не проблема в моем случае.
РЕДАКТИРОВАТЬ 3:
Я не могу воспроизвести проблему в другом проекте Rails .
Проблема появляется на Rails 5.1.1 , между тем 5.0.3 работает без нареканий.
Возможно ли, что сам Rails (или, скорее, один из его драгоценных камней) может быть причиной?