2020年6月19日金曜日

Windowsでvim環境を構築するための道のり:終章

昨日Windowsでhowmをもう一回使いたくてvimでやってみるかと思ったんだけど、今日調べていたらVSCodeで類似の拡張があることがわかった。もともとhowmはちょっと機能多すぎてメモとTODOぐらいできればいいんだけどな、、という感じだったのでむしろちょうど良いぐらいかもしれない。

vscode-memo-life-for-you

2020年6月17日水曜日

Windowsでvim環境を設定するための道のり:設定はどこに書けばいいのか

昔Emacsでhowmというツールを使っていたのを思い出したんだけど、もうEmacsとか使うの気が重いな、、と思っていたところvimにQFixHowmというプラグインがあるらしいので、そちらでセットアップしてみることにしました。いったんWindows Subsystem for Linuxのコンソール上のvimでセットアップしてみたんだけど、日本語切り替えとモード切替がめんどくさすぎて無理っぽかったので、gvimで再トライです。gvimはまともに使ったことが無いので、設定ファイルはどこに置けばいいのだ、、?からスタートです。

  • 閑居う変数としては、$VIMと$HOMEが存在する。
  • 確認するときは
    :echo $VIM
    または
    :echo $HOMEで表示される
  • windows上では、.vimrcでなく_vimrcと_gvimrcとして作成する(これは単にWindows上のファイル名規則の制限かな)
  • _gvimrcはGUI版のvim上でだけ有効
  • $VIM\_vimrcと$VIM\_gvimrcは編集に管理者権限が必要になるのと、$HOME\_vimrcまたは$HOME\_gvimrcが存在すればそちらが優先(上書きされるので、これを作成すれば良い。
ためしに$HOME\_gvimrcに
colorscheme slate
と書いて起動したらカラー設定が変更されたので、OKとします。

見たサイト:https://oki2a24.com/2016/03/11/put-vim-setting-file-in-windows/

本当はvscodeでhowm的な機能があればいいなと思ってます。
あとはhowm(的なもの)が使えればいいというのがゴールなのでやっぱりEmacsというセンも捨ててはいないです。

2018年11月18日日曜日

pylintがcv2のメンバを見つけてくれない

・VSCode 1.29.1
・pipenv 2018.7.1
・opencv-python 3.4.3.18
・pylint 2.1.1

上記の環境でpylintをかけるとcv2のメンバがいないと怒られる。
(実際はVSCode自体は関係ない。pylintコマンド直接でも同様。)

https://stackoverflow.com/questions/50612169/pylint-not-recognizing-cv2-members

上記に従って、pylintに --extension-pkg-whitelist=cv2 というオプションを渡して上げれば良い。VSCode上だとpython.linting.pylintArgsというオプションで渡す。

cv2のメンバはCのモジュールで定義されているから(?)の模様である。

2018年10月6日土曜日

pipenv2018.7.1とpip18.1の組み合わせはエラーになる

不具合に遭遇したのでメモ。

現象

$ pipenv install {some_package}
すると、エラー終了する。
Pipfileやパッケージのインストール自体は完了している
lockfileの作成あたりでコケている模様?

原因

エラーメッセージでググると同様の事象を見つけた。
https://github.com/pypa/pipenv/issues/2871

pipenv2018.7.1とpip18.1の組み合わせがエラーを起こしている模様。

解決方法

workaroundとしてはpipを18.0にする。
ポイントとしては、pipenvの環境のほうのpipを18.0にする。

$ pipenv run pip install pip==18.0

2018年9月23日日曜日

Pythonの環境構築にpipenvを使う

pipenvというPythonの仮想環境構築ツールを使い始めました。詳細は公式を見れば良いとして分かりづらかったところのメモ書き。

Pipenv: 人間のためのPython開発ワークフロー

書いている時点のバージョンは以下
$ pipenv --version
pipenv, version 2018.7.1

インストール

繰り返しだが詳細は上記の公式サイトのドキュメントを読めば良い。macOSの場合Homebrewとpipを使う方法があるようですが、私はPythonのバージョン管理にpyenvも使っていてHomebrewの方で入れるとバージョンが変になりそうな気がしたのでpipの方でインストールしました(Homebrewで試してはいない)。

$ pip install pipenv
すると、下記のようにpyenv配下にpipenvがインストールされてる模様。
$ which pipenv
/Users/hkuro/.pyenv/shims/pipenv

使い方

任意のディレクトリで
$ pipenv shell
とすると、"カレントディレクトリの名前-{hash}"という名前のvirtualenvが~/.local/share/virtualenvs/配下に作成される。hashの部分は詳しく調べてないけど何らかのハッシュみたいなので、別の同名ディレクトリでpipenv shellしても別のvirtualenvとして作成される(そりゃそうか)。

環境変数を設定することでカレントディレクトリに作成されるようにすることが可能(
PIPENV_VENV_IN_PROJECT)。これは環境によって違いそうなのでpipenv shellするときのオプションであったほうが便利そうな気もする。

カレントディレクトリにPipfileを作成してくれて、pipenv経由でパッケージをインストールするとPipfileの更新なども同時にやってくれる。これまでだとpip freezeとかいちいちしないといけなかった部分が、PHPでいうところのcomposerみたいな感じになっているということ、なんだと思った。

9/21追記:任意のディレクトリでpipenv shellして環境が作成されたあと、そのディレクトリを別のパスに移動したあとにpipenv shellすると新規のvirtualenvが作成される、元の場所に戻すと前のvirtualenvに戻れるので、やはりsuffixのハッシュはカレントディレクトと連動している模様。

virtualenvから抜けるには

pipenv shellした環境はvirtualenvでsource activateした場合と違ってサブシェル中で動作しているようなので、環境を抜けるにはCtrl+Dかexitする必要がある。deactivateしてしまうとvirtualenvな環境からは実質抜けてるけどpipenvが起動したサブシェルからは抜けられないみたいな中途半端な状態になってしまうので注意する。

環境の削除

普通のvirtualenvなので、上記の~/.local/share/virutualenv/配下の該当ディレクトリを丸ごと削除すれば良さそうだけど、もしくはpipenv shellしたのと同じディレクトリでpipenv --rmとすれば対応する環境は削除される。

その他

繰り返しだが作成されるのは普通のvirtualenvなので、
$ source ~/.local/share/virtualenv/hogehoge/bin/activate
とかすれば任意のディレクトリで特定のvirtualenvに入ることもできる。

2017年10月9日月曜日

Classic MacOSの文字化けしたファイル名を修正する

とある事情から、Classic MacOS上で作成したファイルを開く必要があり、フロッピーからバックアップを取っていた.imgファイルからファイルを復旧しました(.imgはディスクユーティリティで.dmg形式に変換する必要もあった)

ところがディスクイメージ形式の変換も終わりいざディスクイメージをマウントしてみると、日本語のファイル名が全て文字化けしている状態でした。 そもそもフロッピーからイメージ化したのもClassic OS上だし仕方ないことなのですが、いかんせんファイル名が見えないことには 何もわからないので、変換する方法を調べてみたところ、Apple自身がファイル名の修正ユーティリティを提供していました。

File Name Encoding Repair Utility v1.0 https://support.apple.com/kb/DL355?locale=ja_JP

使い方は、アプリを起動したあと対象のファイルをドック上のアイコンにドラッグ&ドロップすればOKで、その後はポップアップされるダイアログにしたがって処理を行えば良いです。

"Correct Text Encoding"は、この記事をみている人であれば"Japanese"にすると良いような気がします。