<Linux, msys2, fzy> fzyを入れる。

世の中の人々の協力で、便利になっていくもんだ、、と思った。

msys2では、pecoさんが動かない。
でも、fzyというものがpecoの代わりにナイスに動くとのこと。
さっそくインストール。

msys2の場合、

ちょー楽。pacmanで一発。

>pacman -Syu fzy

Linuxの場合、

gitして、makeする。

>git clone https://github.com/jhawthorn/fzy.git
Cloning into 'fzy'...
remote: Counting objects: 1294, done.
remote: Total 1294 (delta 0), reused 0 (delta 0), pack-reused 1294
Receiving objects: 100% (1294/1294), 251.38 KiB, done.
Resolving deltas: 100% (807/807), done.

>cd fzy
ALGORITHM.md  CHANGELOG.md  LICENSE  Makefile  README.md  contrib/  deps/  fzy.1  src/  test/

>export PREFIX=/home/hage/local

>make
cp src/config.def.h config.h
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/fzy.o src/fzy.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/match.o src/match.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/tty.o src/tty.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/choices.o src/choices.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/options.o src/options.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/tty_interface.o src/tty_interface.c
cc -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps  -o fzy src/fzy.o src/match.o src/tty.o src/choices.o src/options.o src/tty_interface.o -lpthread

>make install
mkdir -p /home/hage/local/bin
cp fzy /home/hage/local/bin/
chmod 755 /home/hage/local/bin/fzy
mkdir -p /home/hage/local/share/man/man1
cp fzy.1 /home/hage/local/share/man/man1/
chmod 644 /home/hage/local/share/man/man1/fzy.1

github.com

参考にさせてもらいました。
qiita.com

<Anaconda> Python 3.6を入れる。

Python3.6になっている。
前に入れたAnacondaは、3.5.1。その後、アップデートかけて、3.5.4
特段3.6ですることはないが、3.6にしたい。
conda3.6を入れてみたが、デフォルトを3.6にすることができないっぽい。

なので、Anacondaをインストールし直すことにした。
今あるAnacondaがあるディレクトC\Anaconda3を念のためバックアップコピーして、
Anacondaをアンインストールする。
で、新Anaconda ```Python 3.6.3 (Anaconda3 5.0.1 64-bit)をインストール。

ここからダウンロード。
:: Anaconda Cloud

で、管理者権限でインストール。
f:id:nekoyukimmm:20180111215404p:plain

前と同じディレクトリ名にしておく。
f:id:nekoyukimmm:20180111215412p:plain

で、
f:id:nekoyukimmm:20180111215420p:plain

終わり。

<Anaconda, conda, python> Anacondaでpipをちゃんと動かす。

Windowsにインストールした、Anacondaさん上で、
condaで環境を変更した時に、pipをちゃんと動かす、、
つまり、source activateした環境を認識させるには、、

例、下記の環境で、、

>conda env list
# conda environments:
#
py27                     C:\Anaconda3\envs\py27
py279                    C:\Anaconda3\envs\py279
root                  *  C:\Anaconda3

py279activateした場合、

>source activate py279

PYTHONPATHを指定しなおす必要あり。
どうも、source activateだけでは切り替わらない。。

py279 >export PYTHONPATH="/c/Anaconda3/envs/py279/Lib/site-packages"

あと、pipは、condaでインストールしないといけない。。

<Windows, dos> バッチファイルを管理者権限で実行する

バッチファイル.batを管理者権限administrator privilegeで実行する ショートカット作成とかあるようですが、タスクスケジューラを使う方法があるっす。
いけてました。

aquablue7.blogspot.jp

<Python> リスト中の重複した要素を除く、、

リストlist中の重複した要素duplicated elementを除く、、
setを使うそうです。

例、、

In [1]: l = ['e', 'd', 'c', 'a', 'b', 'e', 'd']

In [2]: set(l)
Out[2]: {'a', 'b', 'c', 'd', 'e'}

In [3]: list(set(l))
Out[3]: ['c', 'a', 'b', 'd', 'e']

In [4]: sorted(list(set(l)))
Out[4]: ['a', 'b', 'c', 'd', 'e']

In [5]: set?
Init signature: set(self, /, *args, **kwargs)
Docstring:     
set() -> new empty set object
set(iterable) -> new set object

Build an unordered collection of unique elements.
Type:           type

教えてもらいました。
www.lifewithpython.com

<dos> ファイル名だけ取得とか、、

Bashとかである、変数展開のdos版。
引数から、ファイル名だけとか、パス名だけを抜き出せる。

HELP CALLすると、詳細でてくるっす。

>HELP CALL
バッチ プログラムを別のバッチ プログラムから呼び出します。

CALL [ドライブ:][パス]ファイル名 [バッチパラメーター]

  バッチパラメーター   バッチ プログラムで必要なコマンド ライン情報を指定します。

コマンド拡張機能を有効にすると、CALL は次のように変更されます:

CALL コマンドは、CALL のターゲットとしてラベルを受け付けるようになります。
構文は、次のとおりです:

    CALL :ラベル 引数

指定された引数で新しいバッチ ファイル コンテキストが作成され、指定
されたラベルの次の文に制御が渡されます。バッチ スクリプト ファイルの
最後に 2 回到達することによって、2 回 "終了" する必要があります。
1 回目に最後に到達したときには、制御は CALL 文の次の行に返されます。
2 回目に、バッチ スクリプトが終了します。バッチ スクリプトから "戻る" 
ための GOTO :EOF 拡張機能の説明については、GOTO /? と入力してください。

また、バッチ スクリプトの引数参照 (%0、%1 など) の展開は、次のように
変更されました:


    %* バッチ スクリプト内では、すべての引数 (%1、%2、%3、%4、
        %5 など) を参照します。

    バッチ パラメーター (%n) の置換は拡張されました。次のオプション構文
    を使うことができます:

        %~1         - すべての引用句 (") を削除して、%1 を展開します。
        %~f1        - %1 を完全修飾パス名に展開します。
        %~d1        - %1 をドライブ文字だけに展開します。
        %~p1        - %1 をパスだけに展開します。
        %~n1        - %1 をファイル名だけに展開します。
        %~x1        - %1 をファイル拡張子だけに展開します。
        %~s1        - 展開されたパスは、短い名前だけを含みます。
        %~a1        - %1 をファイル属性に展開します。
        %~t1        - %1 をファイルの日付/時刻に展開します。
        %~z1        - %1 をファイルのサイズに展開します。
        %~$PATH:1   - PATH 環境変数に指定されているディレクトリを検索し、
                       最初に見つかった完全修飾名に %1 を展開します。
                       環境変数名が定義されていない場合、または
                       検索してもファイルが見つからなかった場合は、
                       この修飾子を指定すると空の文字列に展開されます。

    修飾子を組み合わせて、複合結果を得ることもできます:

        %~dp1       - %1 をドライブ文字とパスだけに展開します。
        %~nx1       - %1 をファイル名と拡張子だけに展開します。
        %~dp$PATH:1 - PATH 環境変数に指定されているディレクトリを
                       検索して %1 を探し、最初に見つかったファイル
                       のドライブ文字とパスだけに展開します。
        %~ftza1     - %1 を DIR の出力行のように展開します。 

    上の例の %1 と PATH は、他の有効な値で置き換えることができ
    ます。%~ 構文は有効な引数の数によって区切られます。%~ 修飾子
    は %* と同時には使用できません。