unite-outline の近況: 次期バージョンの開発

昨年の秋頃から目立った変化のない unite-outline ですが、開発が停滞しているとか、作者のやる気がなくなった*1とかではなく、「今年の抱負 - Vimプラギン編」で述べた通り、次期バージョンの開発(準備)を少しずつ進めています。ある程度形になったら別ブ…

はてダの Twitter連携とツイート内容

はてダの Twitter連携についてテストしてみた。以下のエントリを「Twitterに通知」にチェックを入れて公開し、Twitter に投稿されるツイートの内容を確認してみた。 記事タイトル [tag]テスト 記事内容 Twitter連携のテストです。 「ツイートの内容」を空欄…

Vim のプラグインのプラグインの呼称

Vim のプラグインのプラグインの呼称について、自分が知っている範囲でまとめてみた。 Plugin Plugin's Plugin Load Function neocomplcache source #define() QuickRun module #new()*1 ref.vim source #define() unite.vim source, kind, filter #define()…

非同期砂漠

プラギンが哭(な)いてる ユーザーに罵られて Vim はやさしさを どこに棄ててきたの だけどわたしは 好きよこのエディタが 肩を寄せあえる vimproc・・・system_bg() がいる 呼び出し側で あゝブロックしないならば つらくはないわ この非同期砂漠 あなたが…

Vim のプラグインを書きたいと思っている人は今すぐ :help write-plugin を読もう!

vim

特に *use-cpo-save* のところ。プラグインのソースでよく見かける、これ let s:save_cpo = &cpo set cpo&vim と、これ let &cpo = s:save_cpo がなぜ必要なのかが書いてあるよ!というか、行の継続を許容するためだったとか全然知らんかったwということで、…

今年の抱負 - Vimプラギン編

抱負を述べるには時期を逸した感があるものの、こういうものは一応でも言っておいた方が、一年を通してほどよいプレッシャーになっていいと思うのでw alignta Issues - h1mesuke/vim-alignta - GitHub 去年やるはずだったのにできなかった、 前回の整列を繰…

Vim script のベンチマーク

vim

数万回くらい実行されるループの中で文字列が空かどうかを調べなければならないとする。 empty(str) str == "" さて、どちらがいいだろう? empty() を使う方が、文字列が空かどうかを調べる、という意図が明確になっていいような気がするが、empty() の方は…

MongoDBノート - $regex を使ったクエリでのインデックスの使われ方

昨日の記事で Mongoidノート - validates_uniqueness_of で :case_sensitive => false を指定すると…… - Alone Like a Rhinoceros Horn simple prefix queries (also called rooted regexps) like /^prefix/ のような場合を除きインデックスは使われない(使…

Mongoidノート - validates_uniqueness_of で :case_sensitive => false を指定すると……

Mongoid の validates_uniqueness_of で :case_sensitive => false を指定するとインデックスが使われないような予感がしたので、確認のためソースを追ってみた。 # File: mongoid-2.3.4/lib/mongoid/validations.rb def validates_uniqueness_of(*args) val…

word の中の単語を選択する textobj-wiw を書いた

(この記事は Vim Advent Calendar 2011 5日目の記事です。前日は thincaさんでした!) 前々から、地味にフラストレーションを感じていたこととして、この状態から、"word" の部分を書き換えたい場合、 this_is_a_word_in_a_very_long_identifier ↓ this_is…

unite-outline の近況: Ruby と RSpec の見出し抽出を改善

今秋から Rails やってます。というわけで、unite-outline の Rubyサポートを強化中。まずは、Ruby用 outline info の改善から。 def 以外のメソッド定義も拾う なんと、メソッドの定義は def しか拾ってなかったので、attr_accessor, attr_reader, attr_wri…

unite-outline の近況: C のマクロがどう展開されるかを表示するようにした

C のマクロが展開されてどうなるかを => の後に表示するようにしてみた。Before: ↓ After: 上の画像より空間の利用効率が上がって情報量が増えたのがわかると思う。do { ... } while(0) のような複数行に渡るものは最初の数行分しか表示できないけど、アウト…

Railsノート - Thor によるメッセージの色付けをやめさせる

久しぶりに Rails を触る。rails generate とかやるとメッセージに色が付くようになっていた。お、見やすいじゃんと思ったのも束の間、端末エミュレータの背景色と同化して一部の文字が見えていないことが判明。調べると、rails generate は Thor というライ…

alignta 秋の仕様改訂、の近況

とりあえずここまでの作業分を master へマージしました。 alignta でパターンを正規表現として解釈、は本当に使いやすいのか? alignta の整列回数指定の {1} とか {+} とかって覚えにくいし打ちにくいよね…… でやろうって言った変更と、 alignta 秋の仕様…

unite-outline の近況: 空行の挿入を控えめにした

クラスのような大きなまとまりどうしの間には依然として空行を入れるが、単に見出しの種類が違うというだけでは間に空行を入れないことにした。元々この機能は、ハイライトによる見出しの色分けがまだできなかったとき*1に考案したもの。C のソースから見出…

unite.vim の file_rec でプロジェクトのファイルを一望する

vim

unite.vim 使ってる人はみんな似たことやってるんじゃないかと思いつつ……現在編集中のファイルが所属するプロジェクトのトップディレクトリ*1を起点に unite.vim で file_rec する設定。([unite] は unite.vim に割り当てている prefix)これで、[unite]p …

alignta の整列回数指定の {1} とか {+} とかって覚えにくいし打ちにくいよね……

もっと簡略な記法がいい。囲まなければならない、というのがもう嫌なんだ。しかも { } を入力するためにはシフトキーも使わなければならない。嫌じゃあ!*1こんなのはどうだろうか。 pattern{1} → pattern/1 pattern{+} → pattern/g こっちの方がはるかに打…

「ガベージコレクションのアルゴリズムと実装」を読んだ 〜実装編〜

「ガベージコレクションのアルゴリズムと実装」を読了。前半の「アルゴリズム編」で GC の基本アルゴリズムを網羅的に解説し、後半の「実装編」では実際の処理系のソースを追いながら GC の実装を見てみるという構成で、非常に面白かった。ガベージコレクシ…

alignta でパターンを正規表現として解釈、は本当に使いやすいのか?

試行錯誤の自問自答中。 alignta 秋の仕様改訂(案) - Alone Like a Rhinoceros Horn を受けて、別ブランチにて作業を開始し、パターンを(デフォルトで)正規表現として解釈するように修正したところ、(当然のごとく)テストがこけるようになった。見てみ…

日本語プログラミング言語探訪 〜プロデル〜

プロデル 日本語プログラミング言語「プロデル」 概要 プロデルとは プロデルは、日本語で簡単・気軽にソフトウェアを 「造る」ことができるプログラミング言語と開発環境です。 フランス語で「造る」「生産する」といった意味がある動詞"Produire"を 呼びや…

日本語プログラミング言語探訪 〜TTSneo〜

TTSneo TTSneo公式サイト 概要 TTSneo公式サイト 日本語プログラミング言語「TTSneo」は、日本語で気軽にプログラムを作ることができるスクリプト言語です。 * テキストエディタやメーラー、イメージビューアなどソフト作りに最適 * プログラミング未経験の…

日本語プログラミング言語探訪 〜Mind〜

Mind 日本語プログラミング言語 Mind スクリプツ・ラボ有限会社 - Mind download - Mind Version 7 for UNIX GPL準拠のフリーソフトウェアとしてソースが公開されている。 概要 日本語プログラミング言語 Mind Mind はソースコードを日本語で記述するという…

日本語プログラミング言語探訪 〜言霊(ことだま)〜

注意 このノートは適当にググって見つかった資料を元に作成しているため、最新の研究成果、言語仕様を反映していない可能性があります。あしからず。 言霊(ことだま) 言霊コミュニティサイト - 日本語で楽しくプログラミング 言霊コミュニティサイト - Tin…

unite-outline が見出しを自動更新するようになりました

やった! これで ともおさらばだ!unite-outline の「なんでこれができないの?」の筆頭であった見出しの自動更新をついに実装しました。詳細はヘルプで g:unite_source_outline_filetype_options、unite-outline-filetype-option-auto-update*1 の辺り見て…

ref.vim で英英辞典を引く

vim

ref.vim に標準添付の alc.vim を参考に、オンラインの英英辞典を引く source をいくつか作ってみました↓ ▲ ref-answers Answers.com: Wiki Q&A combined with free online dictionary, thesaurus, and encyclopedias ▲ ref-hyperdict Online Dictionary - H…

alignta 秋の仕様改訂(案)

alignta の仕様が変わりました、というエントリではありません。verion 0.2.0 から早半年。時間の経過とともに、現行の alignta の使いにくい点なども徐々に明らかに*1なってきました。そこで、こんな風に変えようと思ってるんですけどどうでしょう? という…

unite-outline で候補の絞り込みから選択へかけての打鍵数を減らす [2]

前々から気になっていたこととして……絞り込みの結果、マッチが1件という段になっても、そのまま で該当する見出しの箇所へジャンプできないという問題がありました。 ▲ぐぬぬ……unite-outline では絞り込みの結果に、実際にマッチした見出しに加え、その親(…

unite-outline の見出しがカラフルになりました

久しぶりの更新前からやろうやろうと思っていたのに、長らくほったらかしになっていた unite-outline のシンタックスハイライト対応。最近また Vim をいじったりする余裕ができたので、えいやっとやってみました。こんな感じです↓ 見出しの種類が色でパッと…

置換のためのコマンドラインで g が欠ける問題

vim

長らく悩まされていた問題が解決したのでメモ。 現象 カーソルの下にある語(cword)を一括置換するためのキーマッピングを実行すると、コマンドラインモードにて以下の状態になるように設定してあります。(ここでは、cword が get_foo で、][ がカーソル位…

unite-outline で候補の絞り込みから選択へかけての打鍵数を減らす

unite-outline では、候補の絞り込みの際、見出しの親子関係に配慮し、マッチした見出しだけでなく、その親見出しも絞り込みの結果に残すようにしています。*1これはメソッド名などで絞り込みを行ったときに、実際にマッチしたもの(メソッド)だけを残すと…