■以下が希望する動作
$ 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 コマンド等は調べてみましたが原因究明に至らず...
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
別の Linux マシンから試すと「Interrupt:」の文字は出ない&押す度に増えて行きました。
Ctrl+C 自体は機能しているのですが、先に書いた通り画面上の見た目に反応してくれません
機能していて表示の問題だけだとすると、どこかでバッファリングされていて止まっているのだと思います。
pry で STDOUT.sync = true にしてみるなど、pry から端末までの間のバッファリングしてそうな部分を順番に調べていくしかなさそうです。
STDOUT.sync = true にしてみましたが変化なしです。
2014/02/07 14:07:01なんとなくですが、readline とか関係している!?