Personal tools
You are here: Home 清水川記 Windowsでpyreadlineを使うとCtrl+H押下時にカーソルが進む
Document Actions

Windowsでpyreadlineを使うとCtrl+H押下時にカーソルが進む

この問題はWindows上でIPythonを便利に使おうとすると発現するんじゃないかなと思います。必ず起きるのかどうかは知りませんが、この問題で困ったことがある人は自分以外に一人しか知らないので、レアな組み合わせなんでしょうね...。でももしかしたら Zopeのdebugコンソールをipython化する を見てやってみようという人が出てくるかも。

現象としては、Backspaceキー押下時にはちゃんとカーソルの前の文字が削除されてカーソルも1文字左に移動するのに、Ctrl+H押下時には、カーソルの前の文字は消えるもののカーソル自体は右に1つ進む、という状況になります。

この問題は以下のパッチで修正出来ます。Ctrl+H押下時にはBackspaceと同等に動作するように書き換えています:

--- pyreadline/keysyms/keysyms.py.orig
+++ pyreadline/keysyms/keysyms.py
@@ -119,6 +119,10 @@
         char = chr(VkKeyScan(ord(char)) & 0xff)
     elif control:
         char=chr(keycode)
+    if control and ord(char)==8 and keycode==72:
+        keycode=8
+        control=False
+        state &= 0xfffffff7
     try:
         keyname=code2sym_map[keycode]
     except KeyError:

問題と解決方法は2年以上前に把握していたんですが、某所で書いたもののバグ報告していなかったので、 IPython: Ctrl+H erase previous character, but cursor goes forward. というタイトルでバグ報告してみました(ちょっと失敗してますが..)。こんなまずい英語でもpatchが付いてれば分かってくれるかなー。分かってくれると良いなー。

Category(s)
python python
The URL to Trackback this entry is:
http://www.freia.jp/taka/blog/690/tbping

Re:Windowsでpyreadlineを使うとCtrl+H押下時にカーソルが進む

Posted by 檜山正幸 at Dec 18, 2009 03:39 PM

清水川さん、はじめまして。檜山と申します。
CatyというWebフレームワーク(http://d.hatena.ne.jp/m-hiyama/20091215/1260847179)に pyreadline を
同梱して配布しております。
このパッチを適用した keysyms.py も付けたいのですが、いかがでしょう?
README にお名前とURL(http://www.freia.jp/taka/blog/690 )も記載したいと思いますが、差し障りがございますでしょうか?

Catyへの添付OKです!

Posted by しみずかわ at Dec 18, 2009 05:40 PM

檜山さんこんにちは。CatyはBPStudyで聞きたかったんですが仕事が・・・><

添付はもちろんOKです。
是非ご利用下さい。

パッチ使わせていただきます

Posted by 檜山正幸 at Dec 21, 2009 08:12 AM

清水川さん、
メールにてご返答申し上げましたが、こちらにも; ありがとうございます。

Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)

« March 2010 »
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
About this blog
Zope, Python, FreeBSD, その他色々について。つまり日記か。
Recent comments
現在翻訳中! しみずかわ Jan 23, 2010
パッチ使わせていただきます 檜山正幸 Dec 21, 2009
いまきづいた jack Dec 19, 2009
Re:讃岐うどん 新宿 楽釜製麺所 jack Dec 19, 2009
Re:讃岐うどん 新宿 楽釜製麺所 とか★ちん Dec 19, 2009
Error
There was an error while rendering the portlet.