Некоторое время я сталкивался с этим странным поведением. Я выхожу из охраны с помощью ctrl+D
и когда я получаю приглашение bash, при вводе в приглашении ничего не появляется. Я могу вводить команды оболочки, и они будут выполняться, но по мере ввода текста не появляется. Вывод набранных команд действительно отображается. Использование GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)
.
Это могут быть остатки 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.
Самый полезный комментарий
А пока вы пробовали набирать
reset
?(Я обнаружил эту проблему, потому что, когда я запускаю охрану с помощью pry-byebug, я могу видеть, что я набираю в своем ответе охранника, но когда я добавляю binding.pry в файл, я не вижу, что я набираю в том ответе странно