2013-07-01から1ヶ月間の記事一覧

Vim の executable() でハマった

vim

Vim の executable() でハマったので覚書。 まぁかなり稀なケースなんですけども。 さて、Vim script の組み込み関数で executable({expr}) という関数があります。 これは『{expr}という名前の実行可能ファイルが存在するかどうか判定する。』ために使用し…

Vim 7.4b ベータ版がリリース

vim

Vim 7.4b ベータ版がリリースされたようです。 Vim 7.4b ready for beta testing Vim 7.4b ベータ版リリース - vim-jp Windows の方は @kaoriya さんが最新版をアップロードされているので、そちらを使用するとよいと思います。 window.twttr = (function(d,…

エアーラインビューティフルアタック!!

vim

この記事は Vim Advent Calendar 2012 241日目の記事になります。 さて、Vim のステータスラインをオサレにするプラグインといえば vim-powerline が有名なのですが、最近類似プラグインとして vim-airline というプラグインが登場しました。 bling/vim-airl…

popwin.el の Vim 版考えている

vim

需要があるようなのでちょっと考えている。 と、いっても popwin.el はよく知らないので、それと同等の機能になるかはわかりませんが。 とりあえず、簡易的に実装してみた感じ。 let s:config = { \ "help" : { \ "match" : { \ "filetype" : "help" \ }, \ …

watchdogs.vim をいろいろと更新した

vim

いろいろとアレだったのを修正したり改良したりしました。 [主な更新内容] ユーザ側で watchdogs#setup() を呼ぶ必要をなくした 最初の呼び出し時にプラグイン内で処理する ただし、g:quickrun_config を変更した場合はそのあとに watchdogs#setup() を呼び…

phantomjs でアンカーへ移動した状態でスクリーンショットを保存したかった

phantomjs で https://github.com/osyo-manga/vim-textobj-multiblock/blob/master/plugin/textobj/multiblock.vim#L10 みたいにアンカーへ移動した状態でスクリーンショットを保存したかったんですが、そのまま開くだけでは移動しなかったので自前でクリッ…

Vim で前のカーソル位置に戻るプラグインをつくった

vim

この記事は Vim Advent Calendar 2012 237日目の記事になります。 さて、Vim で前のカーソル位置に戻る機能といえば jumplist があります。 jumplist - vim-users.jp この機能を使うことでカーソル位置の履歴を遡る事ができます。 jumplist では別のバッファ…

Vim で textobj の範囲を取得する

vim

vim-textobj-multitextobj で textobj の範囲を取得したかったんですが、以下の様な実装に。 function! s:pos_less_equal(a, b) return a:a[0] == a:b[0] ? a:a[1] <= a:b[1] : a:a[0] <= a:b[0] endfunction let s:region = [] let s:type = "" function! O…

マシンが復活した

先週の金曜日から起動しなかったメインのマシンがやっとこさ復旧出来ました。 ぶっちゃけ、物理的な問題ではなかったのでそこまで致命的ではなかったのですが(データ自体は残っている)こういうのに慣れていないので復旧するまでに時間が掛かり過ぎである。…

特定の範囲にマッチする正規表現

vim

textobj の範囲を視覚的に確認したかったのでちょっと書いてみた。 [ソース] function! s:region_regex(first, last) if a:first == a:last return printf('\%%%dl\%%%dc', a:first[0], a:first[1]) elseif a:first[0] == a:last[0] return printf('\%%%dl\%…

Vim で複数の textobj を1つにまとめる textobj つくった

vim

この記事は Vim Advent Calendar 2012 233日目の記事になります。 一昨日からメインのマシンが起動しなくなりましたが、わたしは元気です。 さて、前回は textobj プラグインをまとめてみました。 ご覧の通り textobj プラグインはたくさんあり、これを使い…

textobj-multiblock をもう少し改良した

vim

設定にバッファローカル変数を追加した。 b:textobj_multiblock_blocks は g:textobj_multiblock_blocks よりも優先して使用されます。 filetype ごとに設定したい場合に使用すればよいかと。

Sinatra 側で送信されたファイルを受け取る

覚書。 [web.rb] # -*- encoding: UTF-8 -*- require 'sinatra' get '/' do "Hello, world" end post '/' do if params[:file] # ファイルの中身を読み込んで返す return params[:file][:tempfile].read else return "Not found" end end [転送] $ curl -F f…

quickrun-hook-vcvarsall をプラグイン化した

vim

これをプラグイン化しました。 osyo-manga/quickrun-hook-vcvarsall - github 使い方はそのままです。

Vim の textobj プラグインをまとめた

vim

この記事は Vim Advent Calendar 2012 229日目の記事になります。 最近やっと textobj を利用し始めた情弱な Vimmer なんですが、どんな textobj があるのか知らなかったので調べられる範囲でまとめてみました。 基本的に kana さんの vim-textobj-user を使…

textobj-multiblock を少し改良した

vim

textobj-multiblock は便利過ぎてないと生きられないレベルの textobj なんですが、誤爆する事が多かったので少し改良しました。 textobj-multiblock についてはこちらを参照して下さい。 さて、例えば次のように " をマッチする範囲に設定している場合、 " …

Vim script でもラムダを使いたい!

vim

この記事は Vim Advent Calendar 2012 227日目の記事になります。 ラムダですよ!ラムダ! 例えば、Vim script でもオレオレ fold を作りたい時やコールバック関数を受け取りたい時にラムダを使いたい!!と思う事が多いです。 そんな時に reti.vim を使用す…

github のアカウントが復活した

昨日の夜中から停止されていた github のアカウントが復活しました。 ようやく人間として認められたみたいです。 最初は github 上のサポートページからメールを送ったのですが、それだと反応がなかったので直接 support@github.com へとメールを送ったら 10…

github のアカウントが停止された

原因はよくわからないが、github のアカウントが停止された。 理由は、 Our trusty robot, Hubot, seems to think you are not a human.との事で、人間とは認められなくなったらしい。 ついに機械にも人間として扱われなくなり悲しみに包まれつつサポートに…

reti.vim で自身を呼び出せるようにしてみた

vim

reti.vim でこんな感じに自身を呼び出せるようにしてみました。 " Self で自身を評価 echo reti#lambda("a:1 == 1 ? a:1 : a:1 * Self(a:1 - 1)")(4) " => 42 これを使用すれば quick sort もワンライナーで記述出来る。 let list = [3, 2, 7, 1, 9, 8, 4, 6…

Blogger の記事を markdown で記述する

『なぜ Blogger のネタをはてダで…』というツッコミは置いておいて Blogger を markdown で記述したくていろいろと試してみたので覚書。 今回、markdown から HTML に変換するのは marked.js を使用します。 [テンプレートを編集] Blogger のテンプレートの …

github にある JavaScript のコードを読み込む

例えば、github で公開されている marked.js を HTML から直接読み込みたい事があると思います。 この場合、raw で読みこめばいいと思うのですが、 <script src="https://raw.github.com/chjj/marked/master/lib/marked.js"></script> これだけでは読み込みに失敗してしまいます。 これを正しく読み込まれるようにするには次のように URL を変…

Boost.TypeErasure の any で暗黙の型変換が行われるようになっていた

以前、『Boost.TypeErasure の any は暗黙の型変換が行われない』という記事を書いたのですが、リリース版の Boost.TypeErasure(Boost 1.54.0)ではこの挙動が変更されており、暗黙の型変換が行われるようになっていました。 [ソース] #include <boost/type_erasure/any.hpp> #include <boost/type_erasure/operators.hpp> </boost/type_erasure/operators.hpp></boost/type_erasure/any.hpp>…

Vim でスクリプトローカル関数もユニットテストしたい!

vim

この記事は Vim Advent Calendar 2012 221日目の記事になります。 Twitter を徘徊していたらこんなツイートを見かけました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementB…

Vim 7.4a ベータ版がリリース

vim

先週末ですが、Vim Vim 7.4a ベータ版がリリースされました。 Vim 7.4a ready for beta testing Vim 7.4a ベータ版リリース - vim-jp バグなどを見つけた場合、vim-dev@vim.org や vim-jp/issues へ報告するとよいと思います。 (と、いいつつ、わたし自身は…

Boost.TTI を使ってみる

元ネタ:終了処理をするメンバ関数の違いを吸収してくれるカスタムデリータ - 凹みTips Boost.TTI が利用できるよさげなネタがあったので書いてみました。 [ソース] #include <boost/tti/has_member_function.hpp> BOOST_TTI_HAS_MEMBER_FUNCTION(close) // => has_member_function_close struct </boost/tti/has_member_function.hpp>…

本日20:00〜から C++オンライン読書会を行います

C++

本日20:00〜から C++オンライン読書会を行います。 今日読む資料は C++Now 2013 の資料の中からその場で決める予定です。 気になる方や参加されたい方は 20時頃に lingr-cpp 部屋までお越しくださいまし。

unite-neobundle からプラグインの Webサイトを開く

vim

元ネタ:NeoBundleの相対パスからVim pluginのURLをブラウザで開く これ、どちらかというと unite-neobundle から開きたいなーと思って unite-action を追加しようと unite-neobundle の中身見ていたんですが… 既に unite.vim で実装されていました!! unite…

Vim のプラグインを作る時に注意すべきことや便利なプラグイン

vim

この記事は Vim Advent Calendar 2012 216日目の記事になります。 さて、Vim Advent Calendar 2012 の1日目にも似たような内容の記事を書いたのですが、今回はもう少し Vim script よりの内容になっています。 普段、Vimプラグインを作る際に注意している事…

Boost.Optional で Ruby の || 演算子のような挙動を行う

さて、Ruby の || 演算子は次のような挙動になります。 n1 = 42 || 12 puts n1 # => 42 n2 = false || 12 puts n2 # => 12 n3 = 42 || false puts n3 # => 42 このように Ruby の || 演算子は最初に真になった値を返します。 これを Boost.Optional を使って…