Guard: Ввод не отображается в терминале после выхода из охраны

Созданный на 13 авг. 2014  ·  23Комментарии  ·  Источник: guard/guard

Некоторое время я сталкивался с этим странным поведением. Я выхожу из охраны с помощью ctrl+D и когда я получаю приглашение bash, при вводе в приглашении ничего не появляется. Я могу вводить команды оболочки, и они будут выполняться, но по мере ввода текста не появляется. Вывод набранных команд действительно отображается. Использование GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu) .

Самый полезный комментарий

А пока вы пробовали набирать reset ?

(Я обнаружил эту проблему, потому что, когда я запускаю охрану с помощью pry-byebug, я могу видеть, что я набираю в своем ответе охранника, но когда я добавляю binding.pry в файл, я не вижу, что я набираю в том ответе странно

Все 23 Комментарий

Это могут быть остатки stdout / stderr или сессия / поток pry pry.

Вышел Guard 2.7.0 - проблема не устранена? Если да, то какая последняя строка делает приглашение невидимым?

Спасибо, обновлюсь и посмотрю, что будет на этой неделе.

Только что обновили, но проблема все еще возникает. Я не совсем понимаю, что вы имеете в виду, говоря своим вторым вопросом. Guard бездействует после запуска спецификаций, и когда я нажимаю ctrl+D для выхода, я получаю приглашение $ bash, но после него ничего не появляется, когда я пытаюсь ввести команду.

Guard использует LumberJack, и я думаю, что это поток (-ы) LumberJack, который не очищается (поэтому, когда охранник выходит, LumberJack выгружает оставшиеся выходные сообщения в "фоновом режиме" после того, как вы получите приглашение оболочки, так что ... приглашение оболочки прячется.

Вероятно, это скоро будет исправлено.

Ах хорошо. Спасибо!

А пока вы пробовали набирать reset ?

(Я обнаружил эту проблему, потому что, когда я запускаю охрану с помощью pry-byebug, я могу видеть, что я набираю в своем ответе охранника, но когда я добавляю binding.pry в файл, я не вижу, что я набираю в том ответе странно

@ bf4 - может быть проблема с буферизацией. Вы можете попробовать вставить свой Guardfile:

$stderr.sync = true
$stdout.sync = true

и делать то же самое где-нибудь в вашем приложении (например, перед binding.pry ).

Это просто для того, чтобы увидеть, изменит ли это что-нибудь (синхронизированный вывод не имеет смысла сохранять).

Это также может быть проблема с readline и Pry, поэтому вы можете удалить оба и установить Pry (и readline) в соответствии с тем, что в настоящее время рекомендовано в их документах.

Или вы можете убедиться, что у вас где-то нет настраиваемой конфигурации.

Я исправил это, удалив гем readline-rb и отредактировав .editrc per osx
docs прямо перед предложением для чтения. Ruby 2.1.4 через rvm на osx,
охранник 2.7 и 2.9

Я закрываю это, потому что это проблема со строкой чтения, а не с Guard.

Если в Guard есть что-то, что я могу сделать, чтобы предотвратить это (или исправить), пожалуйста, откройте снова.

Я думаю, что это могла быть проблема с guard-zeus . Когда я удалил этот драгоценный камень, проблема исчезла.

@mockdeep - странно. Но спасибо, что сообщили мне. Если я когда-нибудь воспроизведу это (я использую Linux), я разрешаю это.

Я получал это довольно стабильно, когда был подключен guard-zeus . Просто загрузите guard , возможно, запустите некоторые спецификации, нажмите ctrl + D и presto. Я тоже использую Linux.

Ага, крутое обновление вывода Zeus мешает Pry.

Обходной путь:

guard 'zeus', cli: '> /dev/null' do

Другой обходной путь - это, конечно, просто запустить Zeus в отдельном терминале.

Я отправил здесь проблему: https://github.com/guard/guard-zeus/issues/18

Тем не менее, для поддержки этого необходимы изменения в Zeus.

Хороший. Я буду помнить об этом в будущем, если столкнусь с подобными проблемами. А пока мы перешли на spring .

Если вы используете Spring в Linux, вы можете подписаться на эту проблему: https://github.com/jonleighton/spring-watcher-listen/issues/1 (в основном, как только я доберусь до нее, spring будет использовать inotify в Linux вместо опроса).

Хороший! Последовал.

Итак, я вижу в документации https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X исправление .editrc я упомянул, не является т там. Я искал это в истории, и оказалось, что это было в Pry Docs

Как я могу получить поддержку readline (ctrl + r и т. Д.) Для Pry в OSX?

Технически для OSX вам не нужна строка чтения, и мы сосредоточимся на использовании libedit, с которым OSX поставляется вместо этого.

Отредактируйте файл .editrc в вашем домашнем каталоге. Добавьте эту строку:

bind "^R" em-inc-search-prev

Теперь вы можете использовать ctrl + r, чтобы выполнить обратный поиск в истории.

Ссылка: http://hints.macworld.com/article.php?story=20080313113705760

В качестве альтернативы установите GNU Readline и заставьте Ruby использовать его: https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X

Наконец, Pry действительно работает с rb-readline, чистой реализацией Readline на Ruby, которая не должна страдать от платформы и установки зависимостей стандартной Readline.
Ссылка: https://github.com/luislavena/rb-readline

Кажется, эти документы разговаривают друг с другом. Могу я добавить информацию о editrc или ссылку на pry docs?

@ bf4 -

Могу я добавить информацию о editrc или ссылку на pry docs?

Абсолютно! Это будет высоко ценится!

У меня тоже есть эта проблема. Даже после нового перезапуска я использую spring + guard, когда я помещаю точку останова binding.pry в свой код, я не вижу ничего, что набираю. Я попытался добавить bind "^R" em-inc-search-prev в ~/.editrc и перезапустил терминал, но это не помогло. reset тоже пробовал, не помогло.

@rahilsondhi export DISABLE_SPRING=1 и все твои проблемы исчезнут

Спасибо. Я пробовал вставить это в свой терминал, прежде чем начинать охрану - нет
игральная кость. Я даже удалил пружину из своего Guardfile, без кубиков.

Во вторник, 7 апреля 2015 г., в 11:21, Бенджамин Флейшер <
[email protected]> написал:

@rahilsondhi https://github.com/rahilsondhi export DISABLE_SPRING = 1 и
все твои проблемы уйдут

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/guard/guard/issues/619#issuecomment -90688628.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги