匿名質問者

ruby の pry コマンドでの Ctrl+C の挙動について


■以下が希望する動作
$ cat /etc/redhat-release
CentOS release 5.8 (Final)
$ pry
[1] pry(main)> Interrupt: ← Ctrl+C を押すたびに以下の様に行が増えていく
[2] pry(main)> Interrupt:
[3] pry(main)> Interrupt:
[4] pry(main)>

■なんとかしてほしい
$ cat /etc/redhat-release
CentOS release 6.4 (Final)
$ pry
[1] pry(main)> ^C ← ここで Ctrl+C を何回押しても画面変化なし。その後 Enterすると以下の行が表示される

[2] pry(main)>

※ 一応、linux の stty コマンド等は調べてみましたが原因究明に至らず...

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/02/12 15:15:03

回答2件)

匿名回答1号 No.1

vagrant で CentOS 5.8 と CentOS 6.4 の環境を用意して試してみましたが、どちらも

$ pry
[1] pry(main)>
[2] pry(main)>
[3] pry(main)>
[4] pry(main)>
[5] pry(main)>

のようにCtrl+C を押すたびに行が増えていきましたが、「Interrupt:」とは出ませんでした。


試したbox:
https://dl.dropbox.com/u/7196/vagrant/CentOS-56-x64-packages-puppet-2.6.10-chef-0.10.6.box
https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

匿名質問者

質問者から

匿名質問者2014/02/08 16:03:50

別の Linux マシンから試すと「Interrupt:」の文字は出ない&押す度に増えて行きました。

Ctrl+C 自体は機能しているのですが、先に書いた通り画面上の見た目に反応してくれません

匿名回答1号 No.2

機能していて表示の問題だけだとすると、どこかでバッファリングされていて止まっているのだと思います。
pry で STDOUT.sync = true にしてみるなど、pry から端末までの間のバッファリングしてそうな部分を順番に調べていくしかなさそうです。

匿名質問者

STDOUT.sync = true にしてみましたが変化なしです。
なんとなくですが、readline とか関係している!?

2014/02/07 14:07:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません