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