2013-01-01から1年間の記事一覧
今年も残すところあと僅か!と、いうところで Vim の内部エラーを踏んでしまい必死になって再現方法を探していましたがわたしは元気です。 と、いう事で今年作成した Vim プラグインのまとめです。 ちなみに去年つくったプラグインの一覧はこちらになります…
この記事は Vim Advent Calendar 2013 30日目の記事になります。 早くも2回目の記事になりますが、まだまだ参加者は募集しています。 興味のある方はぜひ!参加しましょう!! Vim Advent Calendar 2013 さて、今回の記事なのですが、以下が元ネタになります…
以前も予告していましたが、来年1月11日(土)に第2回 Vimプラグイン読書会を行います。 [概要] 日時:2014年1月11日21時〜 読むもの:clever-f.vim 場所:Lingr の Vim部屋 clever-f.vim は使ったことないので当日使ってみてからコード読んでみようかなーと…
そろそろスケジュールがなくなってきたので Vim Advent Calendar 2013 の2回目以降の参加者の募集を開始しました。 2回目の記事を書きたい方は以下のどちらかの手段で参加の表明をお願いします。 どちらか片方だけで構いません。 @osyo_memo まで参加の旨を…
去年の年末にも行ったのですが今年もやりたいと思います。 例によって特に人が集まってなにかするわけではなくて各々で黙々と作業する形になると思います。 [概要] 目的:1年間お世話になった vimrc に感謝を込めて大掃除を行う 内容:自分の vimrc を掃除し…
neosnippet.vim に :NeoSnippetClearMarkers というコマンドが追加されました。 これはスニペットのマーカー()を削除するコマンドです。 例えば、InserLeave 時に呼び出せば insert mode から抜けた時に自動的にマーカーを消すことができます。 augroup te…
さて、wandbox.vim ではエラー時に quickfix へと出力が行われます。 しかし、unite.vim を使用しているのであれば quickfix よりも unite.vim へと出力したいですよね。 quickfix よりも unite.vim を使用した方が絞り込みが容易に行え、何より拡張性が高い…
Python で実行時間を計測する場合 timeit を使用するのがよいのかな。 [ソース] # -*- coding: utf-8 -* import timeit def test(): "-".join(str(n) for n in range(100)) # number で呼び出し回数を指定 print timeit.timeit('"-".join(str(n) for n in ra…
Lingr の Vim 部屋で次のようなコードが投げられました。 http://lingr.com/room/vim/archives/2013/12/22#message-17893985 let g:queue = range(9) command! WHILE while !empty(g:queue) command! END endwhile " echo g:queue WHILE echo remove(g:queue…
次のように const auto でポインタを受け取った場合にちとハマったので覚書。 [ソース] #include <iostream> struct X{ void print(){ std::cout << "X::print();" << std::endl; std::cout << value << std::endl; } void print() const{ std::cout << "X::print() co</iostream>…
この記事は C++ (fork) Advent Calendar 2013 の 21日目の記事になります。 なんとなく書きたいことがあったので突発的に登録したんですが、周りが割りとガチで戦々恐々としています。 そんな C++ (fork) Advent Calendar 2013 ですが、今回は軽めの記事にな…
そういえば、Clang で既に実装されていたなーと思って試してみました。 [ソース] #include <iostream> int main(){ // 任意の場所で ' をおける int n = 1'000'000; int m = 1'23'456'7; std::cout << n << std::endl; std::cout << m << std::endl; // 10進数以外も i</iostream>…
この記事は C++ Advent Calendar 2013 の 19日目の前編の記事になります。 本記事は 2011 年に書いた Vim で C++ のコーディングを行うなら知っておきたい10のこと の 2013 年版になります。 2013 年版といいつつ全然 10個じゃないんですが…。 えー Vim 本体…
この記事は C++ Advent Calendar 2013 の 19日目の後編の記事になります。 さて、Clang なのですが C++er では知らない人はいないと思います。 Clang とは LLVM をバックエンドとした C++ のコンパイラです。 最近では Clang が C++14 の機能を全て実装して…
知らなかったので覚書。 unite-output に渡す引数内でスペースを記述する場合 \ でエスケープする必要がある。 " スペースは \ でエスケープ Unite output:echo\ "homu\ mami\ mado" しかし、これは : をスペースの代替とする事ができる。 " スペースのかわ…
元ネタ:Vimmerなら2013年中に試しておきたい海外産Vim plugin 8選 上記の記事で起動時にいろいろと表示する vim-startify というプラグインが紹介されているのですが 『それ unite.vim でできるよ!』 と思ったのでやってみました。 [表示するもの] 直前に…
何かと話題の wandbox なのですが、その wandbox の API を利用したコード補完の実装を marching.vim に追加してみました。 Vim から wandbox へ補完を行うコードを投げ、wandbox 側でコード補完の処理を行ってもらう事によりローカルに Clang の環境がなく…
宣伝していた通り、昨日 Vim プラグイン読書会を行いました。 目的:プラグイン構成について学ぶ 日時:12月14日21:00〜 読んだもの junkfile.vim vim-visualstar ログ:http://lingr.com/room/vim/archives/2013/12/14#message-17822662 参加者 DeaR cohama…
以前、予告したとおり本日の21時から Vimプラグイン読書会を行います。 以下、再掲。 目的:プラグインの基本的な構成や作り方について学ぶ 日時:12月14日21時〜 読むもの:junkfile.vim 場所:Lingr の Vim部屋 備考:thinca さんによる解説付き Vim プラ…
リリース前から気になっていたんですが、すっかり忘れていたので簡単に試してみました。 [ソース] #include <boost/config.hpp> #include <boost/predef.h> #include <iostream> int main(){ std::cout << BOOST_COMPILER << std::endl; #if BOOST_OS_WINDOWS std::cout << "OS is Windows." << std::endl</iostream></boost/predef.h></boost/config.hpp>…
何かと話題の wandbox ですが API を使ってみたかったのでとりあえず Vim から叩いてみました。 webapi.vim を使用して以下のような感じに。 [ソース] function! s:wandbox_compile(code) let post_code = '{ \ "code": "' . a:code . '", \ "options": "war…
覚書。 とりあえず、手元の環境では libcall() で取得する事は可能でした。 echo libcall("libclang", "clang_getClangVersion", "") " => clang version 3.5 他の環境でも動作するかな。
前々から実装しようと思っていたのですが要望があったので over.vim の :OverCommandLine に初期テキストを渡せるようにしました。 " "hoge" が入力された状態で開始する :OverCommandLine hoge
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
プラグインを作っている時に「ちょっと開発中のコード埋め込みたいなー」って場合にほしいと思っていたので書いてみました。 Lignr の Vim 部屋で t9md さんのアドバイスもらって以下のような感じになりました。 if expand("%:p") == expand("<sfile>:p") echo "sou</sfile>…
Vim の gf はカーソル下のファイルを開けたりして便利なのですが、Ruby の require で使用した場合、ファイルではなくてディレクトリが開かれてしまうので、ついカッとなってオレオレ gf 書いた。 function! s:open_cmd(file_cmd, dir_cmd, file) if filerea…
reanimate_message は元々、確認メッセージやエラー内容の出力などを行う為のイベントだったのですが、別々に制御した方がよさそうだったので、分割しました。 確認メッセージは reanimate_confirm で、エラー内容の出力は reanimate_error で行います。 " …
以前書いた、これを gift.vim を使用して書きなおしてみた。 function! s:to_fullpath(filename) let name = substitute(fnamemodify(a:filename, ":p"), '\', '/', "g") if filereadable(name) return name else return a:filename endif endfunction funct…
stargate.vim ではバッファの &path を使用してインクルードするファイルを参照しています。 Ruby で stargate.vim を使用する際に gems からも参照して欲しかったので &path に gems のパスを追加するようにしてみました。 function! s:ruby() if has("ruby…