2014-03-01から1ヶ月間の記事一覧
この記事は Vim Advent Calendar 2013 121日目の記事になります。 あったら便利そげな気がしたのでつくりました。 出力するパッチのデータは mattn さんの Web API を使わせて頂きました。 また、出力されるパッチは 7.4 系のものになります。 [プラグイン] …
vim-jp » Windows 32ビット/64ビット 7.4.227 リリース ということで結構久々にリリースされた気がします。 [問題] 他の方の環境でも影響がある変わりませんが、KaoriYa 版 Vim を更新したらフォントが正しく設定されなくなりました。 わたしは以下のように…
特に理由はないけど簡単に書いてみた。 [ソース] #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>
haml に markdown を埋め込みたいなーと思っていたら某ももんがさんが教えてくれたので覚書。 次のように = render :markdown で .md を読み込むことができます。 [index.html.haml] --- title: homuhomu --- %h1 =current_page.data.title = render :markdo…
書いてみた。 [ソース] #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日目の記事になります。 関連::NeoBundleLazy したプラグインをフォーカスが外れている時に自動的に読み込む 以前、Vim Advent Calendar で上記のような記事を書いたのですが、この機能が neobundle.vim 本体に組み…
ふと『ラムダ関数を friend にするにはどうすればよいのか』と思って書いてみました。 とりあえず Clang 3.5 だと以下のようにラムダ関数の型を friend にすれば動作した。 [ソース] #include <iostream> auto func = [](auto x){ return x.value; }; class X{ friend </iostream>…
c_function についてははここら辺を参照して下さい。 これを C++14 でサクッと実装できないだろうかー、って事で以下の様なコードを書いてみたんですが、これを Clang 3.5(trunk) でコンパイルしてみたらコンパイラがエラー吐いた…。 [ソース] #include <type_traits> #in</type_traits>…
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 でのいくつかの関数の定義方法を紹介します。 [グローバル関数] 関数名にはアルファベットと数値と '_' を使用する事ができます。 また、関数名は大文字のアルファベット…
某所でそのような話がでていて調べてみたら 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日目の記事になります。 1つ飛んでいるような気がしますが書きたい方がいれば教えて下さい。 さて、今回は Vim script からキー入力を呼び出す方法について簡単に書きます。 [:normal {commands} を使う] {commands}…
某所で教えてもらったので覚書。 sinatra を使っている場合にコンソールへ出力を行いたい場合は、 $stdout.sync = true # コンソールへと出力される puts "homu" のように #stdout.sync を設定しておけば出力されます。 ちょっとした変数の値を確認したい場…
関連:本の虫: 2014-01-pre-Issaquah-mailingのレビュー:N3890-N3899 ちょうどこの間書いたコードで decltype(value) m = value; とか泣きながら書いていたのでほしいなーとか思っていました。 あとはパッと思いついたコードだと struct X{ // 連続して同じ…
この記事は Vim Advent Calendar 2013 107日目の記事になります。 通常、テキストオブジェクト iw の範囲は : カーソル位置 : 範囲NeoBundle "Shougo/vimproc.vim" NeoBundle "Shougo/unite.vim" NeoBundle "Shougo/unite-outline" NeoBundle "Shougo/vimfil…
そんなことがやりたくて Lingr でやり方を教えてもらったので覚書。 setreg() を使用するとレジスタの種類を指定できるのでそれを利用します。 " レジスタ + に矩形選択でヤンクした時と同じような状態で保存する call setreg('+', "homu\nmami\nmado\n", "b…
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日目の記事になります。 最近、週3ぐらいのペースで書いていますが参加者はまだまだ募集中ですよ! 書いてみたい方がいればぜひ ATND へ登録して下さい!! さて、今回は :substitute のプレビューを行う over.vim …
前回の vimrc 読書会で出てきたので覚書。 オプョンの前方に値を追加する場合は ^= を利用します。 [ソース] set path+=./hoge set path^=./foo echo &path " => ./foo,.,,,./hoge
この記事は Vim Advent Calendar 2013 102日目の記事になります。 元ネタ:vim-operator-mdurl という vim plugin 書いた - vimtaku blog 上記の記事ではオペレータを使用したアプローチでしたが、わたしは neosnippet を使ってヤンクした URL を貼り付けた…
某所で教えてもらったんですが、MinGW でのビルド済み LLVM/Clang のバイナリが bitbucket で配布されているらしい。 Haroogan / LLVM for Windows 2000 や XP にも対応しているっぽいので、わたしの環境でも試してみたんですが、うまく動作しなかった…。 他…
最近教えてもらったので覚書。 g:neobundle#default_options に :NeoBundle 時に使用されるデフォルトのオプションを設定する事ができます。 " "_" にはデフォルトで反映されるオプション " それ以外の任意のキーにもオプションを設定しておく事ができる let…
今週末の 3月15日(土) 21時から第4回 Vimプラグイン読書会を行います。 日時: 2014/03/15 Sat 21:00 - 場所: LingrのVim部屋 読むプラグイン: tpope/vim-pathogen 目的: プラグインマネージャの仕組みを理解する 気になる方はご参加下さい。
そんな事できたのかーという覚書。 [ソース] puts "homumamimado".gsub(/(homu|mami|mado)/, { "homu" => "ほむ", "mami" => "まみ", "mado" => "まど" }) [出力] ほむまみまど 普通に便利そう。
この記事は Vim Advent Calendar 2013 97日目の記事になります。 Twitter 見ていると『テキストオブジェクトわからん』というツイートをたまに見かけるので自分が理解している範囲で簡単に解説してみるなど。 まぁこういう記事は大量にあると思うけど わたし…
以前はプラグイン側もユーザ側も1つの共通した変数に対して設定を行っていたのですが、それだとユーザ側で設定を行うとプラグイン側の設定が上書きされて無効になってしまうので、それを避ける為に別々の変数にしました。 基本的に以前と同様に使用できます…
この記事は Vim Advent Calendar 2013 95日目の記事になります。 そろそろネタもなくなってきたので Twitter で少し見かけた簡単なネタでも。 さて、unite.vim を起動して 等でアクションを呼び出すとデフォルトでは normal モードでアクションが開きます。 …
以前作った vim-operator-jump_side なんですが、要望があったのでトグルする機能を追加しました。 (operator-jump-toggle) を呼び出すと カーソル位置が textobj の先頭→末尾へ移動 それ以外の位置→先頭へ移動 こんな感じで逆の位置へ移動します。
この記事は Vim Advent Calendar 2013 93日目の記事になります。 先週の vimrc 読書会で読んでいた vimrc で numberwidth が設定されているのを見て思いついたのでネタにします。 さて、わたしは行番号を表示しているのですが、行番号の左側に余白がないのが…
前回はカーソル位置の型名を取得する方法について書きました。 今回は詳細な型名を取得する方法について書きます。 さて、前回使用した方法では例えば以下のように typedef されている場合、typedef した型名を取得します。 typedef int hoge; hoge h; // h …