2016-05-08 4 views
0

アルパイン分布を実行しているDockerコンテナ内にあるapk add python3の場合、カーソルを単語全体で移動するのではなくCtrl <left arrow>のようなキーの組み合わせではなく、 」の場合、コントロールを押したまま、左矢印キーを押す):アルプスでPythonを使ってreadlineを使う方法

Python 3.5.1 (default, Dec 9 2015, 14:41:32) 
[GCC 5.2.0] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> spam ham;5D 

単に一apk add、それ自体が問題を解決していませんINGのreadlineまたはpip3 installをする。

この環境では、どのようにしてreadlineをPythonで使用できますか?

答えて

1

これは、ほとんどの場合、リードラインが動作する場合のキーのようですが、TERMも正しく処理する必要があります。

私はこのようなDockerfileを試してみました:https://github.com/frol/docker-alpine-env/blob/master/etc/inputrcからINPUTRCで

FROM alpine 
RUN apk update && \ 
    apk add python3 python3-dev build-base ncurses-dev bash && \ 
    python3 -m ensurepip && \ 
    pip3 install readline 

COPY ./inputrc /etc/inputrc 

を、下記のコピー:

    # do not bell on tab-completion 
    #set bell-style none 
    
    set meta-flag on 
    set input-meta on 
    set convert-meta off 
    set output-meta on 
    
    $if mode=emacs 
    
    # for linux console and RH/Debian xterm 
    "\e[1~": beginning-of-line 
    "\e[4~": end-of-line 
    "\e[5~": beginning-of-history 
    "\e[6~": end-of-history 
    "\e[7~": beginning-of-line 
    "\e[3~": delete-char 
    "\e[2~": quoted-insert 
    "\e[5C": forward-word 
    "\e[5D": backward-word 
    "\e\e[C": forward-word 
    "\e\e[D": backward-word 
    "\e[1;5C": forward-word 
    "\e[1;5D": backward-word 
    
    # for rxvt 
    "\e[8~": end-of-line 
    
    # for non RH/Debian xterm, can't hurt for RH/DEbian xterm 
    "\eOH": beginning-of-line 
    "\eOF": end-of-line 
    
    # for freebsd console 
    "\e[H": beginning-of-line 
    "\e[F": end-of-line 
    $endif 
    

    ここで私がこの情報を集めたいくつかのリンクがあります

  • Seeing escape characters when pressing the arrow keys in python shell
  • https://docs.python.org/2/tutorial/interactive.html
  • Bash CTRL to move cursor between words/strings

NB - 私はそれbashをインストールするために愚かようだけど、pip3 install readlineはそれなしで失敗します。また、gccなどをインストールしなければならないのは理想的ではありませんが、その後にはapk delで必要な場合は、この後にクリーンアップすることもできます。

これはすべて私のMac上で動作しましたが、すぐにはパテでは動作しませんでしたが、私はTERMセットアップYMMVと思われます。

関連する問題