2014-03-01から1ヶ月間の記事一覧

Vim Advent Calendar 2013 121日目:Vim のパッチ一覧を出力する unite-vimpatches をつくった

vim

この記事は Vim Advent Calendar 2013 121日目の記事になります。 あったら便利そげな気がしたのでつくりました。 出力するパッチのデータは mattn さんの Web API を使わせて頂きました。 また、出力されるパッチは 7.4 系のものになります。 [プラグイン] …

KaoriYa 版 Vim 7.4.227がリリース

vim

vim-jp » Windows 32ビット/64ビット 7.4.227 リリース ということで結構久々にリリースされた気がします。 [問題] 他の方の環境でも影響がある変わりませんが、KaoriYa 版 Vim を更新したらフォントが正しく設定されなくなりました。 わたしは以下のように…

std::function を簡単に書いてみた

C++

特に理由はないけど簡単に書いてみた。 [ソース] #include <memory> template<typename T> using decay_t = typename std::decay<T>::type; template<typename Sig> class function; template<typename R, typename ...Args> class function<R(Args...)>{ struct handler{ virtual R operator()(Args... args) = 0; }; std::shared_ptr<handler> …</handler></r(args...)></typename></typename></t></typename></memory>

middleman の haml から markdown を読み込む

haml に markdown を埋め込みたいなーと思っていたら某ももんがさんが教えてくれたので覚書。 次のように = render :markdown で .md を読み込むことができます。 [index.html.haml] --- title: homuhomu --- %h1 =current_page.data.title = render :markdo…

C++14 でアクセッサを書いてみた

C++

書いてみた。 [ソース] #include <utility> #include <iostream> template<typename T, typename Member> auto setter(T t, Member member){ return [=](auto&& x){ t ->* member = x; }; } template<typename T, typename Member> auto getter(T t, Member member){ return [=]{ return t ->* member; }; } class X{ int value = 42…</typename></typename></iostream></utility>

Vim Advent Calendar 2013 116日目:neobundle.vim で Vim のフォーカスが外れた時に自動でプラグインを読み込む

vim

この記事は Vim Advent Calendar 2013 116日目の記事になります。 関連::NeoBundleLazy したプラグインをフォーカスが外れている時に自動的に読み込む 以前、Vim Advent Calendar で上記のような記事を書いたのですが、この機能が neobundle.vim 本体に組み…

C++14 でラムダ関数を friend にする

C++

ふと『ラムダ関数を friend にするにはどうすればよいのか』と思って書いてみました。 とりあえず Clang 3.5 だと以下のようにラムダ関数の型を friend にすれば動作した。 [ソース] #include <iostream> auto func = [](auto x){ return x.value; }; class X{ friend </iostream>…

C++14 で関数オブジェクトから関数ポインタを返すc_function を実装してみた

C++

c_function についてははここら辺を参照して下さい。 これを C++14 でサクッと実装できないだろうかー、って事で以下の様なコードを書いてみたんですが、これを Clang 3.5(trunk) でコンパイルしてみたらコンパイラがエラー吐いた…。 [ソース] #include <type_traits> #in</type_traits>…

C++14 でローカルクラスを返す関数

C++

C++14 だとこんな愉快な事ができるのかーと思って書いてみた。 [ソース] #include <iostream> template<typename T, typename U> constexpr auto make_person(T name, U age){ struct person{ T name; U age; }; return person{ name, age }; } int main(){ constexpr auto homu = make_person(</typename></iostream>…

Vim Advent Calendar 2013 112日目:Vim script でいろいろな関数の定義方法

vim

この記事は Vim Advent Calendar 2013 112日目の記事になります。 今回は Vim script でのいくつかの関数の定義方法を紹介します。 [グローバル関数] 関数名にはアルファベットと数値と '_' を使用する事ができます。 また、関数名は大文字のアルファベット…

Ruby で文字列内の URI を抽出する

某所でそのような話がでていて調べてみたら URI.extract が利用できるようです。 [ソース] require "uri" text = " あああ http://atnd.org/events/33746 いいい https://f.cloud.github.com/assets/214488/2436964/04c70a28-ade2-11e3-88b7-0ed9a83b4704.gi…

Vim Advent Calendar 2013 110日目: Vim script からキー入力を呼び出す

vim

この記事は Vim Advent Calendar 2013 110日目の記事になります。 1つ飛んでいるような気がしますが書きたい方がいれば教えて下さい。 さて、今回は Vim script からキー入力を呼び出す方法について簡単に書きます。 [:normal {commands} を使う] {commands}…

sinatra からコンソールに出力を行う

某所で教えてもらったので覚書。 sinatra を使っている場合にコンソールへ出力を行いたい場合は、 $stdout.sync = true # コンソールへと出力される puts "homu" のように #stdout.sync を設定しておけば出力されます。 ちょっとした変数の値を確認したい場…

N3897: Auto-type members を使用したい場面

C++

関連:本の虫: 2014-01-pre-Issaquah-mailingのレビュー:N3890-N3899 ちょうどこの間書いたコードで decltype(value) m = value; とか泣きながら書いていたのでほしいなーとか思っていました。 あとはパッと思いついたコードだと struct X{ // 連続して同じ…

Vim Advent Calendar 2013 107日目: Vim で矩形なオブジェクトを対象とする為の textobj を書いた

vim

この記事は Vim Advent Calendar 2013 107日目の記事になります。 通常、テキストオブジェクト iw の範囲は : カーソル位置 : 範囲NeoBundle "Shougo/vimproc.vim" NeoBundle "Shougo/unite.vim" NeoBundle "Shougo/unite-outline" NeoBundle "Shougo/vimfil…

Vim で矩形選択でヤンクした時と同じようにレジスタに保存する

vim

そんなことがやりたくて Lingr でやり方を教えてもらったので覚書。 setreg() を使用するとレジスタの種類を指定できるのでそれを利用します。 " レジスタ + に矩形選択でヤンクした時と同じような状態で保存する call setreg('+', "homu\nmami\nmado\n", "b…

C++14 で名前付きタプル

C++

C++14 で名前付きタプルのようなものを書いてみた。 [ソース] #include <boost/preprocessor/seq.hpp> #include <boost/preprocessor/tuple.hpp> #include <boost/preprocessor/cat.hpp> #define PACK_FILLER_0(X, Y) \ ((X, Y)) PACK_FILLER_1 #define PACK_FILLER_1(X, Y) \ ((X, Y)) PACK_FILLER_0 #define PACK_FILLER_0_END #define PACK_FILLE…</boost/preprocessor/cat.hpp></boost/preprocessor/tuple.hpp></boost/preprocessor/seq.hpp>

Vim Advent Calendar 2013 104日目: over.vim 2.0 をリリースしました

vim

この記事は Vim Advent Calendar 2013 104日目の記事になります。 最近、週3ぐらいのペースで書いていますが参加者はまだまだ募集中ですよ! 書いてみたい方がいればぜひ ATND へ登録して下さい!! さて、今回は :substitute のプレビューを行う over.vim …

Vim のオプションで前方に値を追加する

vim

前回の vimrc 読書会で出てきたので覚書。 オプョンの前方に値を追加する場合は ^= を利用します。 [ソース] set path+=./hoge set path^=./foo echo &path " => ./foo,.,,,./hoge

Vim Advent Calendar 2013 102日目: ヤンクした URL を貼り付けて neosnippet を展開する

vim

この記事は Vim Advent Calendar 2013 102日目の記事になります。 元ネタ:vim-operator-mdurl という vim plugin 書いた - vimtaku blog 上記の記事ではオペレータを使用したアプローチでしたが、わたしは neosnippet を使ってヤンクした URL を貼り付けた…

MinGW でのビルド済み LLVM/Clang のバイナリ

某所で教えてもらったんですが、MinGW でのビルド済み LLVM/Clang のバイナリが bitbucket で配布されているらしい。 Haroogan / LLVM for Windows 2000 や XP にも対応しているっぽいので、わたしの環境でも試してみたんですが、うまく動作しなかった…。 他…

:NeoBundle 時のデフォルトのオプションを設定する

vim

最近教えてもらったので覚書。 g:neobundle#default_options に :NeoBundle 時に使用されるデフォルトのオプションを設定する事ができます。 " "_" にはデフォルトで反映されるオプション " それ以外の任意のキーにもオプションを設定しておく事ができる let…

今週末の 3月15日(土) 21時から第4回 Vimプラグイン読書会を行います

vim

今週末の 3月15日(土) 21時から第4回 Vimプラグイン読書会を行います。 日時: 2014/03/15 Sat 21:00 - 場所: LingrのVim部屋 読むプラグイン: tpope/vim-pathogen 目的: プラグインマネージャの仕組みを理解する 気になる方はご参加下さい。

Ruby の gsub() に hash を渡す

そんな事できたのかーという覚書。 [ソース] puts "homumamimado".gsub(/(homu|mami|mado)/, { "homu" => "ほむ", "mami" => "まみ", "mado" => "まど" }) [出力] ほむまみまど 普通に便利そう。

Vim Advent Calendar 2013 97日目:モモンガでもわかるテキストオブジェクトとオペレータ

vim

この記事は Vim Advent Calendar 2013 97日目の記事になります。 Twitter 見ていると『テキストオブジェクトわからん』というツイートをたまに見かけるので自分が理解している範囲で簡単に解説してみるなど。 まぁこういう記事は大量にあると思うけど わたし…

vim-textobj-multiblock でプラグインのデフォルトの設定をユーザの設定を分けた

vim

以前はプラグイン側もユーザ側も1つの共通した変数に対して設定を行っていたのですが、それだとユーザ側で設定を行うとプラグイン側の設定が上書きされて無効になってしまうので、それを避ける為に別々の変数にしました。 基本的に以前と同様に使用できます…

Vim Advent Calendar 2013 95日目: unite.vim のアクションを起動するときに start-insert して開く方法

vim

この記事は Vim Advent Calendar 2013 95日目の記事になります。 そろそろネタもなくなってきたので Twitter で少し見かけた簡単なネタでも。 さて、unite.vim を起動して 等でアクションを呼び出すとデフォルトでは normal モードでアクションが開きます。 …

vim-operator-jump_side にトグルする機能を追加した。

vim

以前作った vim-operator-jump_side なんですが、要望があったのでトグルする機能を追加しました。 (operator-jump-toggle) を呼び出すと カーソル位置が textobj の先頭→末尾へ移動 それ以外の位置→先頭へ移動 こんな感じで逆の位置へ移動します。

Vim Advent Calendar 2013 93日目: Vim で行番号の左側に余白を追加する

vim

この記事は Vim Advent Calendar 2013 93日目の記事になります。 先週の vimrc 読書会で読んでいた vimrc で numberwidth が設定されているのを見て思いついたのでネタにします。 さて、わたしは行番号を表示しているのですが、行番号の左側に余白がないのが…

libclang の Python binding を使用する 〜 詳細な型名の取得 〜

前回はカーソル位置の型名を取得する方法について書きました。 今回は詳細な型名を取得する方法について書きます。 さて、前回使用した方法では例えば以下のように typedef されている場合、typedef した型名を取得します。 typedef int hoge; hoge h; // h …