2013-11-01から1ヶ月間の記事一覧
この記事は Vim Advent Calendar 2012 365日目の記事になります。 そう… 365日目です!! 今日は11月30日、明日には12月01日が始まります。 本当に1年ぶっ続けでやってしまった と、いう事で Vim Advent Calendar 2012 最後の記事なのですが、特に面白いネタ…
先日 Vim のスペルチェックに日本語を除外する機能が実装されました。 せっかくなのでスペルチェックをいい感じに使ってみたいと思います。 さすがに常にスペルチェックを有効にするとちょっと鬱陶しいので以下の様な設定をしてみました。 [ソース] set spel…
gift.vim に対象のウィンドウに対してコマンドを実行する機能を追加してみました。 gift#execute() を使用します。 " ウィンドウ番号 2 に対して、"let w:mami = 10" を :execute する echo gift#execute(gift#uniq_winnr(2), "let w:mami = 10") " タブペー…
要望があったので over.vim のコマンドラインで :substitute {pattern} と {string} を移動する機能を追加しました。以下のようにしてマッピングして使用します。 " {string} へ移動 OverCommandLineNoremap <A-s> <Plug>(over-cmdline-substitute-jump-string) " {patt</plug></a-s>…
元ネタ zip - gist 久しぶりにメタプログラミングらしいメタプログラミングをした - 本の虫 最近、あまり C++ 触れられてないのでリハビリがてら書いてみた。 [ソース] #include <array> #include <tuple> template<std::size_t ...Indexes> struct index_tuple{}; template< std::size_t Start, st</std::size_t></tuple></array>…
Lingr の Vim 部屋でそういう話がでていたので、gift.vim に quickrun-hook を追加してみました。 quickrun.vim で非同期で処理している間に別のウィンドウへ移動する場合はあると思います。 そういう場合に quickrun.vim の終了後に元のウィンドウへ戻りた…
vim-textobj-multiblock で「バッファの行数が多いと遅い」というのを見かけたので対応してみました。 g:textobj_multiblock_search_limit で検索する範囲を設定する事ができます。 " カーソル位置から前後100行の範囲のみでチェックする let g:textobj_mult…
この記事は Vim Advent Calendar 2012 358日目の記事になります。 Vim Advent Calendar 2012 も残すところあと4人となりました! なにか書き残したことがある方はお早めにご参加下さい。 また、Vim Advent Calendar 2013 の募集も開始しました。 こちらも興…
「 を実装したと言ったな、すまんありゃ嘘だ」 と、いう言うことで alpaca_taichou さんに突っ込まれたので実装しました。 難しいかと思ったけど LeafCage さんに「input() でおk」と言われたのでさくっと実装できました。 ありがとうございます。 と、いう…
実験的ですが、over.vim のコマンドラインでバッファ補完を実装してみました。 …先にコマンド補完実装しろという気がしないでもない。 とりあえず、 でバッファのワードを補完する事ができます。 こんな感じ。 200行程度のバッファだとそこまで重くはないん…
automatic.vim に preset という機能を実装しました。 例えば『unite.vim が開かれた場合に』という設定は、 " unite.vim が開かれた場合にサイズや位置を変更する let g:automatic_config = [ \ { \ "match" : { \ "autocmd_history_pattern" : 'BufWinEnte…
The LLVM Compiler Infrastructure LLVM 3.4 のリリーススケジュールがトップページに記述されていました。 リリースまでのスケジュールは以下の通りです。 11月19日 - Phase I Testing 11月25日 〜 12月01日 - Fix bugs from Phase I 12月02日 〜 12月08日 …
この記事は Vim Advent Calendar 2012 353日目の記事になります。 Vim Advent Calendar 2013 の募集も開始しました。 興味のある方はぜひご参加下さい。 ブラウザからコードを実行する事ができる codepad というサービスがあります。 これを利用すればローカ…
関連:日本語をスペルチェックから除外する · Issue #476 · vim-jp/issues Vim 7.4.088 で上記のパッチ組み込まれました。 (その後 Vim 7.4.092 で一部バグが修正されました。 で、Kaoriya 版 Vim も更新されたので試してみました。 日本語を除外する場合は…
要望があったので over.vim のコマンドラインに を実装しました。以下のキーマッピングが使用できます。 キー 処理 カーソル下のファイル名を挿入 カーソル下の word を挿入 カーソル下の WORD を挿入 {0-9a-z"%#:-.*} 番号/名前付きレジスタの挿入 ほとんど…
いつか実装しようかなーと思っていたんですが要望があったので実装しました。 通常のコマンドラインと同じような感じで使用できると思います。 キー 動作 or 1つ前のコマンド履歴を挿入 or 1つ後のコマンド履歴を挿入 そろそろ :substitute のプレビュー以外…
over.vim のコマンドラインのキーマッピングする機能を追加しました。 次のようにして使用する事ができます。 " OverCommandLineNoremap {lhs} {rhs} " {lhs} を {rhs} のキーとして割り当てる " ここで設定する事ができるキーは1文字、 " もしくは修飾キー+…
Boost 1.55.0 がリリースされました。 Version 1.55.0 - boost Boost 1.55.0 では Predef が新しいライブラリとして追加されます。 Predef OS やアーキテクチャなどのコンパイル環境を定義済みマクロで利用できる また、Visual Studio 2013 では既知のバグが…
この記事は Vim Advent Calendar 2012 347日目の記事になります。 Vim Advent Calendar 2013 の募集も開始しました。 興味のある方はぜひご参加下さい。 今回は Vim 成分薄いんですが、簡単な小ネタでも。 関連:ruby で sleep が含まれているコードを quick…
めんどくさくてやってなかったんですが、犬さんにつつかれて marching.vim を C言語に対応しました。 clang のオプション以外は C++ と同じなので操作方法などは特に違いはありません。 また、neocomplete.vim で自動補完を行う場合は C++ と同様に g:neocom…
前回試したときは Generic lambda でキャプチャが出来なかったんですが、今回すべてが実装されたようなので再度試してみました。 [ソース] #include <iostream> template<typename F, typename T> auto bind1st(F func, T t){ return [=](auto... args){ return func(t, args...); }; } int plu</typename></iostream>…
この記事は Vim Advent Calendar 2012 344日目の記事になります。 Vim Advent Calendar 2013 の募集も開始しました。 興味のある方はぜひご参加下さい。 [anzu.vim の問題点] anzu.vim はバッファを検索した件数や位置を出力するためのプラグインです。 その…
C++14 の仕様はあまり追えていないのですが、現在のドラフト(n3797)の提案はすべて svn に組み込まれたようです。 http://clang.llvm.org/cxx_status.html#cxx14 Generic Lambdas あたりも全部実装されたようなのでいろいろと遊んでみたい。 土日にでもビ…
コマンドラインを少し改良して、カーソル移動をできるようにしました。 コマンドラインでは次のキーが使用できます。 キー 処理 コマンドの実行 コマンドラインから抜ける レジスタ " の貼り付け or 1文字削除 カーソルの前にある単語を削除 or カーソルを右…
vim-textobj-multiblock をマルチバイト文字に対応させました。 次のようにしてマルチバイト文字を設定することができます。 " ()、[]、「」、()に対応 let g:textobj_multiblock_blocks = [ \ [ '(', ')' ], \ [ '[', ']' ], \ [ "「", "」" ], \ [ "(",…
この記事は Vim Advent Calendar 2012 340日目の記事になります。 Vim Advent Calendar 2013 の募集も開始しました。 興味のある方はぜひご参加下さい。 元ネタ: ※一部加工 http://lingr.com/room/vim/archives/2013/11/02#message-17257647 参考 http://d.…
2回ぐらい Lingr に話題になったネタなんですがいつも忘れているので覚書。 Vim script で文字列を比較する場合、==# を使用する事が多いと思います。 let s:homu = "homu" echo s:homu ==# "mado" " => 0 echo s:homu ==# "homu" " => 1 上記の場合だと問題…
今までは "{" 〜 "}" みたいに1文字のみの対応だったのですが、"if" 〜 "end" みたいに2文字以上も設定できるように対応しました。 以下のようにして pattern を設定できます。 " function 〜 endfunction " if 〜 endif let g:my_block = [ \ ['\_^\s*\<function\>.*',</function\>…
以前は、g:textobj_multiblock_blocks に括弧等を設定するような形だったのですが、これだと複数の設定を行えなかったので新しく動的にキーマップを生成する関数を追加しました。 これは次のように map- を使用します。 " {} と [] にマッチする map-<expr> を返す</expr>…
この記事は Vim Advent Calendar 2012 336日目の記事になります。 Vim Advent Calendar 2013 の募集も開始しました。 興味のある方はぜひご参加下さい。 また、2012 の参加者もまだまだ募集中ですよ! 元ネタ window.twttr = (function(d, s, id) { var js, …