TeXstudioで toggle comment/uncomment したい→マクロを使う
イントロ
TeXstudio は、デフォルトではコメントアウトは cmd+T, アンコメントは cmd+U になっている*1。しかし多くのプログラミング用エディタでは1つのショートカット*2でコメントアウト・アンコメントを実現する。このようなものは toggle(トグル)と呼ばれ*3、たとえば Notepad++ では ctrl+Q*4 だし、mac のアプリでは一般的に cmd+/ がそれのようだ。というわけで TeXstudio でもこのような toggle comment/uncoment をしたい。
具体的な手順
Macro の登録
Macro を使う。User Manual の section 4.5 に詳しく書いてあるが、いまはどうせコピペするだけなので読まなくても良い。
メニューバーの右の方にある Macros > Edit Macros... を選択。ダイアログが開いたら左下の Add でエントリを追加し、Down を押して一番下に持っていく(後でショートカットを自分で設定するため)。右上の Name に適当な名前(toggle comment とか)を入れる。右下の空欄にスクリプトを書くのだが、偉大なる先人が既に書いてくれている ↓
http://sourceforge.net/p/texstudio/wiki/Scripts/#advanced-comment-toggle
User Manual によると Javascript らしい。これをコピペする。すると自動的に Type は Script になるはず(おそらく %SCRIPT で判別してる?)。Abbreviation と Trigger のところは空欄のままで良い(ショートカットはここではなく別に設定する。後述する)。OKを押して閉じる。
Shortcut の設定
cmd+, で*5 Preferences を開き、Shortcuts > Menus > Macros を見ると、いま登録したマクロが表示されている。そのエントリの Current Shortcut のところをダブルクリックして、自分の好きなキーコンビネーションを登録する。自分は cmd+Q にした。もし既存のショートカットとかぶっていると、ちゃんと警告してくれる。cmd+Q の場合、もちろん quit(このアプリでは Exit と言ってるが)なので、警告が出る。それから、その右の列に Additional Shortcut というところがあり、たとえばここに cmd+/ を追加で登録することもできる。残念ながら追加できるのは1パタンだけのようだ。
UPDATE 2016-01-01: 問題点
いま使ってて気づいたけど、これ
- カーソルが置いてあるブロックに対して実行
- 複数の文(ブロック)を選択して実行
の両方できるんだけど、1. の方は文中に \% あったら uncomment はできるが comment out ができない。ダメじゃん… Javascript 解読するしかないか。2. の方は問題ない。
*1:Preferences > Shortcuts > Menus > Idefix から確認可能。ただ、今見たら Default は ctrl+T, ctrl+U になっていて、Current に cmd+T, cmd+U が書かれている。もしかしたら自分で変えたのかもしれない。いずれにせよ今の主題は toggle したいということなので、まぁどっちでもいい。
*2:ホットキー、キーバインド、キーコンビネーション…厳密には何かが違うのだろうがよくわからないので検索用に全部書いとく。
*3:ピンとこなければ toggle switch で google image 検索せよ。toggle という英単語はこのイメージ。ただアプリ的には「おなじコマンドで」コメントアウト・アンコメントをするので、メカニカルレバーの切替よりは押しボタンの方がより近い気はする(でももう toggle って言葉があまりにもよく使われてるし英語の意味的にもそういうのを包含してるんだろう、たぶん)。
*4:Notepad++ ではさらに ctrl+K で「コメントアウトあろうがなかろうがさらにコメント記号を左からかぶせる」ができて超便利。…というか TeXstudio の comment out はまさにこの動作だな。
*5:あるいはメニューのTeXstudio>Preferences...でもいいが。
Rodeo Desktop (v1.1.23) のインストール (on OS X Mavericks) でつまづいた
まえがき
$ pip install rodeo で入って $ rodeo . で実行するやつは Rodeo Python というやつ(v0.4.4とかなんか)で、これはブラウザを使う Jupyter Notebook みたいなもののようだが、これと Rodeo Desktop は別物。
わかりづらいかもだが github 参照:yhat/rodeo · GitHub
本題
Rodeo Desktop のインストール (on OS X Mavericks) で詰まったのでメモしとく。
既に Jupyter notebook で matplotlib, pandas ともに問題ないのになぜか Rodeo Desktop を Applications フォルダにコピーして起動しようとすると、(a) 正しい Jupyter が(Python が?)みつからんみたいなことを言われるか、(b) 延々とローディングになるか、のいずれかになった。(b) の場合はたまに歯車の絵が止まってフリーズしてるようにも見えるが、これは少し待てばまた回り出すこともある(止まったままのこともある)。
(a) になった場合は実はアプリ自体は起動しているので、でかいバナー以外の場所をクリックするとバナーが消える。で、メニューバーまたは画面右の方にある Preferences で、 Default Python Command が空欄になってると思うので、まずはこれが問題。どうも Mac にデフォで入ってる python *1を見に行ってるとかそういうことのようだ。Anaconda の利用が推奨らしいし、実際すでに Anaconda 利用してるので、ここには /Users/[username]/anaconda/bin/python と入力。[username]のとこはもちろん自分のユーザ名。$(whoami) でもいいのかも。
参照:install Rodeo on OS X El Captain | Liyun's Blog
しかしこれで再起動するとなぜか (b) のエンドレスローディングになった。ここから、Anaconda 再インストール*2してみたり、その上で $ conda update jupyter, $ conda update matplotlib, $ conda update pandas などするも全然ダメ。
なお、anaconda を初めて入れた時(少なくとも anaconda のサイトから GUI インストーラで入れた時)は、まず $ conda update conda してから $ conda update anaconda するといいっぽい。よくわからんが。いきなり $ conda update anaconda すると一部失敗した。しかもその後で $ conda update --all すると matplotlib, pandas などいくつかが互換性のために downgrade される。けど、これはしないほうがいいっぽい?ここもよくわからんけど…
参照:Stuck on "Python is still starting up" for a while on Windows 7 · Issue #134 · yhat/rodeo · GitHub ← ここにある $ pip install --upgrade --force-reinstall
じゃあ、と Rodeo Desktop 自体を消して再インストールしたら、今度はローディングが終わらないので Preferences にすら入れなくなった。やばい。
そこでやけくそで $ conda uninstall matplotlib してみると、今度は「matplotlib がないよ」という警告バナーがでてきた。なのでまたバナーの外をクリックすると… Preferences をやっと触れた… ふー。で、再度 /Users/[username]/anaconda/bin/python と入力して、ついでに Default Working Directory にもなんかしら指定してから*3 Rodeo Desktop を閉じて、$ conda install matplotlib し、再度 Rodeo Desktop を開くと…なぜか不思議な事に起動に成功した。なんだこれ…たぶん再現性ないしもう嫌ですわ…
疲れたので触るのはまた今度かな…(Jupyter Notebookで良かったじゃん、とならないことを祈る…)
amazon cloud drive デスクトップアプリ (Win 7) で co.jp 以外のアカウントでサインインしたい→コンパネ>地域と言語>形式を日本以外にする
サマリ
amazon cloud drive, com の方だと定額で容量無制限があると知り合いに聞いたので試してみようとしたが、デスクトップアプリを開くとなぜか「co.jp にサインインします」みたいな余計なことを勝手にされるし、com を選べなかった。その解決法。
タイトルの通り、Win 7 の場合、amazon cloud drive デスクトップアプリで amazon.co.jp のアカウントでサインインするには、コントロールパネルの「地域と言語 > 形式(英語版なら Region and Language > Formats)」を日本以外にすればよかった。
環境
- Win 7 Enterprise SP1, English
- 日本国外(欧州)からのアクセス
- amazon.co.jp, amazon.com 両方にアカウントあり。メールアドレスは違う
- co.jp, com 両方で cloud drive 申し込み済み(たぶんこれがよくない… co.jp 申し込まなければよかったんじゃないかと思う)
ただ、自分も最初は amazon.co.jp にしかサインインできなかったので。1つずつ設定を変えていった結果の絞り込みで「形式」が判別要因とわかった。したがって OS バージョンやアクセス元位置はとくに関係ないはず。
その他
- amazon cloud drive アプリ自体はおそらく co.jp で落としても com で落としても同じものっぽい(不確実)。一応 com から落とした方を使ってる。
- アカウントの判別はアプリインストール時ではない。つまりコンパネの設定変更ごとに毎回アプリをアンインストール→再インストールする必要はない。
- 「形式」は日本でなければなんでもいいっぽい。が、例えば co.uk でも cloud drive 申し込み済みで形式に US, US どちらでもないところを選んだ場合…どうなるのかは不明
- co.jp のフォーラムかどこかで、「場所 (Location)」や「管理 > システム ロケールの変更 (Administrative > Change system locale)」も変えろというアドバイスを見たが、実際に試した結果、これらは日本のままでも問題なかった。
- Mac はもともと英語で使ってるからか、最初から com アカウントにサインインできた
- com の cloud drive のウェブページは、ずっと下の方にスクロールするとアプリの download リンクがある。サインインする必要はない
しかしこうしてようやく使えるようになったデスクトップアプリ、アップロードはいいとしてダウンロードは個別のファイルを選べず、「全部ダウンロード」しかない。ダメすぎる…。したがって現状はウェブアプリを使えということなのだろう。2016年10月現在、個別のフォルダは選べるようになっているはず。ファイルまで個別に選べるかは確認してない。違う話だけど、Kindle でも cloud reader だと真の全画面表示(バーなど一切なし)ができるのに Kindle for Mac だと必ず邪魔なバーが残る問題と似たものを感じる。要はデスクトップアプリが手抜きっていうかね…
Excel の Conditional Formatting(条件付き書式?)でキーワードにマッチした自動色塗り
まえがき
たぶんエクセルの基本機能なんだろうけど、最近まで気づいてなかった割になかなか便利なのでメモしておく。
計算格子のリージョン管理
最初に使いたかったのは、計算 (CFD) に使ったグリッドを5つのリージョンに分けて、それぞれのリージョン番号ごとにドット絵みたいな感じで色を塗りたいなぁ、というリージョン管理に使いたかった。どの格子をどのリージョンにするかは手作業で決めたくて、エクセルのシート上で「セルに1と打ったら、いちいち塗らなくても青にならないか?」と思っていた。するとまさにそういう機能があった。
こうやって数字を打って色が塗られるので…*1。
遠くに引いてみるとなんとなくリージョンの感じがわかる*2。
計算機のジョブ管理
いまは計算機のジョブ管理にも使ってみている。
こうすると、計算が発散したら status 列(D列)のセルに div と書くだけでいい感じの赤にしてくれる*3。上の図では、同様に run で黄色、 fin(計算終了)で緑にしている。
もちろん単なる「同一」以外に条件式も使えるので、いろいろ応用はありそう。
pythonはじめました(今度こそ)
背景
どうもいつまでたっても python を覚える時間が取れない(取る気がない)なぁと思っていたが、ふと「そうだ、論文用の図を描くのに使ってみよう」と思い立った。グラフの作図、今まではずっと Excel → Powerpoint だった。一度だけ Excel → Adobe Illustrator にしたことがあるが、きれいにはなるのだがさらに作業的な意味でのしんどさが増すばかりだった。まぁ、最終的な論文や学会ポスタ用に一回だけ描くなら超美麗にしていいんだけど、普段からやるのはつらすぎる。自動でそこそこ整形、ってのがいいに決まってる。
候補は
といったところか。で、ちょうどいいので python にしよう、と。
パッケージの種類とインストール
一応前提として僕は Mac OS X 10.9 Mavericks.
ちょっと調べたところ、
- matplotlibというのがよさそうだ→seabornていうwrapperがもっとよさそうだ→(ちょっと試してみた)おおーたしかにきれいだ
- homebrew使ってiTerm 2でpython 2.7を使って(お試しで)いたが、どうやら IPython てのがよさそうだ→名前がJupyterに変わっていた。あと別に複雑なことしないし、もう時期的にもいいかげん python 3 でいいだろう、とも思った
- パッケージ管理ソフトは、homebrewのおかげかpipてのが入っていた(pip3てのではなさげ)→condaてのがよさそうだ
どうやら IPython という python 専用の統合開発環境的なやつ(ちがうかも)だったのが、他の言語にも対応してるよってのが Jupyter みたいだ。が、肝心の Fortran まだか…*1。
というわけで、まず Jupyter のインストールのとこにいくと、初めてなら Anaconda を入れるのを highly recommend というので入れた。この anaconda と conda の違いがよくわからんけど(コマンド名が conda?)、まぁとにかく pip と同様のパッケージ管理ソフトみたいで、後発な分ちょっと上等みたいだ。そうすると、あとは iTerm をひらいて、
$ conda install jupyter
してから、
$ conda install seaborn
すると、matlibplot やら numpy やら pandas やらの必要なパッケージは全部自動で入れてくれるっぽい。楽ちん(これは pip でも同じだったが)。自分の場合、Linux (CentOS) で yum に慣れてたので、こういうパッケージ管理ソフトには抵抗感がないのは助かる。
と、いってる間にインストール終わったみたいだ。さて…とりあえず寝るか(駄目パタン)
連番ファイルを個別に xz で圧縮/解凍
natures flyers: コマンドライン (linux, cygwin) での個別ファイルのバッチ圧縮解凍 → xargs使う に書いたんだけどゴチャゴチャしてるので、必要な部分のみメモ。
前提
圧縮
元ファイルを消す場合
$ ls *.xyz | xargs -n1 -I{} xz {} &
元ファイルを残す場合
$ ls *.xyz | xargs -n1 -I{} xz -k {} &
解凍
アーカイブファイルを消す場合
$ ls *.xz | xargs -n1 -I{} xz -d {} &
アーカイブファイルを残す場合
$ ls *.xz | xargs -n1 -I{} xz -dk {} &
応用
上では簡単のため、ファイルのあるディレクトリに移動した後にコマンド実行するケースを想定した。しかし、いちいち cd するのは面倒なので、もっと上層から ls ./foo/bar/output/*.xyz のようにやってもよい。さらにいうと、たとえば計算結果が複数のケースにわたって
- ./case1/output/00001.xyz , ./case1/output/00002.xyz , ...
- ./case2/output/00001.xyz , ./case2/output/00002.xyz , ...
のようにあって、ディレクトリ構造が同じであれば、
$ ls ./case*/output/*.xyz | xargs -n1 -I{} xz {} &
で一気に圧縮できる。
このように、アステリスクでのワイルドカードはかなり便利なので、なるべくディレクトリ(フォルダ)名は連番とか構造を保つような名前にしておくとよい。
ただし、マルチスレッドで同時に(並行に)圧縮したい場合はわざとバラバラにジョブを投入するべき。計算機じゃなくて普段使いのPCの場合1スレッドは残しとかないと動作がかなり重くなるで注意。
du でサイズ順にソート
ググったらあったので自分用に僅かに変えてメモ。
基本的には
shell - duコマンドのサイズをわかりやすく表示してサイズ順にソートする - Qiita
にあるとおり。
手元の Cygwin だとすんなりできたけど、別のPCの Cygwin には GNU coreutils が入ってなかったのでインストールが必要だった。
自分の場合、普段はカレントの直下のディレクトリだけ見たいから
$ du -sh ./*
としていた。
上記ページのコマンドは
$ du -b | sort -n | numfmt --to=iec --suffix=B --padding=5
だが、これだとカレントより下の全部のファイルが表示されてしまう(du に -s オプションをつけてないので)。したがって、これを
$ du -sb ./* | sort -n | numfmt --to=iec --suffix=B --padding=5
と書き換えればうまくいった。
しかしこれ、長くて覚えづらいよな…まてよ…表示は汚くなるけど、順番だけ見たいなら後半の整形部分をなくして
$ du -sb ./* | sort -n
これでいいわけだな。
余談。最近、Fortranのコンパイルオプションの参考にしてたウェブページがアクセス制限かかって見れなくなった(イントラのみ閲覧可っぽい)ので、ほとんど同じ内容でもメモしとくのは無駄ではないなと。まぁ EverNote にキャプチャしとくだけでもいいっちゃいいけど、微妙に違うことしたい場合はこうしてブログエントリにメモしておくのもありだろう。