comfortable-motion.vim の紹介

この記事は Vim Advent Calendar 2016 の22日目の記事です。 最近のVim/Neovimで導入されたタイマーAPIを活用して、物理シミュレーションによるスムーススクロールプラグインを作ったよ!という内容です。 紹介するプラグイン: https://github.com/yuttie/co…

Clangのコード補完機能とシステムインクルードファイルの問題

Clangのコード補完機能 Clangを用いるとC/C++のコード補完を行うことができます。 例として次のようなC++コードを考えてみます。 #include <vector> int main(int argc, char* argv[]) { std::vector<int> v; v. return 0; } ここでv.の直後における適切な補完候補(つま</int></vector>…

Evil で outline-minor-mode を使った folding

標準のキーバインディングには hs-minor-mode を使った折り畳み機能が割り当てられているけど、これを outline-minor-modeを使ってもう少しVimのそれに近くなるようにしてみた。とりあえず、簡単にできるレベルでVimに近づけてみただけなので、挙動の差異は…

Emacsのフォント設定 for "emacs --daemon"

Emacsをdaemonとして起動すると、指定したフォントセット(fontset)が利用されない(というか作られさえしない)問題があって困っていた。フォントセットが作られないことから、どうやらタイミングの問題なんじゃなかろうか?と思っていたら id:tarao さんの …

FirefoxのウィンドウUIをタブで開く

FirefoxのUI FirefoxのいくつかのUI(例えば「設定」など)は通常別ウィンドウ内に表示されます。 一方で、Firefoxの「アドオン」やGoogle Chromeの「設定」や「履歴」などは「タブ内」に表示されます。 XUL: UI記述言語 FirefoxのUIはXULという言語で記述さ…

Haskell: 述語の連結

2つの述語p, qに対して「p(x)またはq(x)である」という述語を作る方法で、モノイドを使う方法。 predOr p q = getAny . (Any . p <> Any . q) 「p(x)かつq(x)である」ならこう、 predAnd p q = getAny . (All . p <> All . q) ここでは (a -> Any) とか (a -…

awesome WM でウィンドウをスクリーンの端に配置する

最近awesomeというタイリング型のウィンドウマネージャを使いはじめました。 Lua言語で自由にカスタマイズできるので、Compizなどにもある「ウィンドウを画面の中央または端に配置」する機能を書いてみました。modキーとテンキーの組合せで、スクリーン内の…

EPS -> ラスタライズされたEPS

大量のデータを基にプロットをして、EPSファイルを作成した場合、高品質ではあるけど数十MBというファイルサイズになってしまうことがあります。このままだと、PDFを作成したり閲覧、印刷するのにとても時間が掛かってしまいます。このような場合には、ベク…

「固定幅部分レンジ」の列に変換するレンジアダプタを書いてみた

動機 系列データの処理にでは、隣接する複数要素間の関係性について調べたいということが良くあると思う。自然言語処理なんかだと、単語の列(文)に対して「2つの単語X, Yが連続して現われたら、次はどんな単語が来るだろう?」というような事を考えたりす…

inertial-scroll.el をホイールでも

id:kiwanami さんの inertial-scroll.el というスムーススクロールを実現する el を利用していて、是非マウスのホイールでも利用したいと思ったので設定してみた。 (global-set-key (vector mouse-wheel-down-event) 'inertias-down) (global-set-key (vecto…

AUCTeXでpxdviを使う

EmacsのLaTeX環境の1つAUCTeXで、dviのデフォルトビューアをxdviからpxdviに変更する設定に苦闘していたが、ようやく解決できたヽ(*´∀`)ノ どのように設定すれば良いか、なんてのはググればすぐ見つかって、TeX-view-style や TeX-output-view-style といっ…