2012-07-01から1ヶ月間の記事一覧
Vim script で :QuickRun 時のみ処理したい場合があったので判定できる様な hook を書いてみました。 [ソース] " :QuickRun 時のみ処理する " :source 時は処理されない if exists("quickrun_running") echo "hoge" endif " quickrun_running {{{ let s:hook…
この間の vimrc 読書会で教えてもらいました。 feedkeys 関数でエミュレート出来るみたいです。 [ソース] function! g:twice() call feedkeys("yy") call feedkeys("p") call feedkeys("p") endfunction " call g:twice() でカーソル行をヤンクして2回コピー…
feedkeys() をおぼえた! これで勝つる。 [次回の読書会予定] 来週の 8/4(土) 23:00〜から行う予定です。 あと来週の生贄はわたしの vimrc らしいです_(:3ゝ∠)_ vimrc が5個ぐらいあるんだけどどうしよう…。
EffectiveC++ 読書会とかあるんですが C++Now! の資料を眺める『C++Now! 読書会』とかやりたいですね。 オフラインではなく、vimrc 読書会のようにオンラインチャットとかで。 オフラインだと参加出来ない人もいると思うし、何より発言しづらいと思うので。 …
quickrun 0.6.0 (多分)から Vim script を実行する為の quickrun-runner が実装されました。 これを使用することで Vim script のエラーを quickrun-outputter で出力を行う事が出来ます。 しかし、現状の使用では最初のエラーしか出力が行われず、全ての…
libclang を利用した ctags が開発されているらしい。 Announcing "clang-ctags" clang-ctags - github libclang の Python モジュール(cindex.py)を使用しているので Python で実装されているみたいですね。 ざっと見てみたところ Emacs で使用されている e…
元ネタ:関数対応版:Vim scriptをsourceしてエラーがあればquickfixに表示する - ぼっち勉強会 Vim script のエラー出力はちょっと特殊で、関数内でエラーが出た場合、その関数内の相対的な行番号を返すというすごく不親切なフォーマットだったりします。 わ…
Boost.TypeErasure に BOOST_TYPE_ERASURE_MEMBER というマクロが用意されており、これを使用すれば簡単に Concept を定義出来ます。 使い方はこんな感じ。 [ソース] #include <boost/type_erasure/any.hpp> #include <boost/type_erasure/member.hpp> #include <boost/mpl/vector.hpp> #include <boost/range/algorithm/for_each.hpp> #include <vector> BOOST_TYPE_ERASURE…</vector></boost/range/algorithm/for_each.hpp></boost/mpl/vector.hpp></boost/type_erasure/member.hpp></boost/type_erasure/any.hpp>
quickrun では config に cmdopt でコマンドオプションを設定することができます。 しかし、それとは別に :QuickRun 時にコマンドオプションを追加したい場合があります。 既存の機能では :QuickRun -cmdopt {オプション} のように :QuickRun 時にコマンドオ…
と をおぼえましたまる [次回] 第四回 vimrc読書会は7/28(土)23:00から行われます。 わたしはちょっと参加できるか分からない…。
quickrun の結果を unite.vim へと出力を行なっている動画をキャプチャしました。 今はこんな感じでデバッグを行っています。 ウィンドウでバッファ管理を行うようにしたので、unite.vim が出力されている時でも簡単にファイルを行き来出来ていい感じ。
TweetVim のアイコン表示を見ていて 『vimfiler でもファイルのアイコンを表示させれば面白いんじゃないか』 って事で簡単に表示させてみました。 とりあえず、こんな感じ。 [vimfiler] [ソース] let s:icons = { \ "vim" : "D:/vimfiler_icon/vim.ico", \ "…
元ネタ:https://twitter.com/kanno_kanno/status/225611572389756928 C++ でコーディングしている場合、よくヘッダーを変更して :QuickRun する為に .cpp に戻るような動作を行なっているのですが、上記の quickrun-hook を使えばヘッダーからでも簡単に :Q…
最近 Sprout をあんまり触っていなかったんですが、いつの間にか実装されていました。 使い方は Boost.Fusion と同じですね。 [ソース] #include <sprout/functional.hpp> #include <sprout/tuple.hpp> #include <sprout/string.hpp> struct sum{ template<typename String> constexpr float operator ()(int a, String s, float f) const{ </typename></sprout/string.hpp></sprout/tuple.hpp></sprout/functional.hpp>…
Vim で改行する時に前行のインデントを揃えるようにタブ文字を挿入するように設定しているんですが、ごく稀にタブ文字ではなくスペースでインデントを揃えて欲しい場合があります。 と、いうことで の場合にインデントをスペースで揃えるようなマッピングを…
先週の土曜日に vimrc 読書会が開催されました。 1回目の時は当日に宣伝されいたんですが、2回目は1週間前ぐらいから Twitter で宣伝していたので 1回目よりも人が来ている気がしましたね。 ┌(┌ ^o^)┐クリプボぅ! [vimrc] 当日の生贄 当日は @anekos さ…
既存の機能で一番簡単に実装するとこんな感じですかね。 [ソース] " quickrun-unite_qf {{{ let s:hook = { \ "name" : "unite_qf", \ "kind" : "hook", \ "config" : { \ "enable" : 0, \ } \} function! s:hook.priority(...) return 999 endfunction func…
ツイートした後に自動的に更新してくれると嬉しいよねー って事でちょっとためしてみました。 まぁレスポンスはかなり悪いですが…。 [ソース] augroup tweetvim_group autocmd! autocmd BufEnter \[tweetvim\] :TweetVimHomeTimeline augroup END [tweetvim]…
前回、元のタブに戻る quickrun-hook を定義してみたんですが、どうせならウィンドウ、バッファにも戻ったほうがいいかなーってことでちと追記。タブ→ウィンドウ→バッファの順で戻ります。 [ソース] let s:hook = { \ "name" : "back_buffer", \ "kind" : "h…
quickrun-runner に vimproc を設定すると非同期で処理が行われるので、実行中(コンパイル中)タブ移動することがよくあります。 わたしの場合は、quickrun 後に unite.vim へと出力を行なっているんですが、その時に移動した先のタブで unite.vim が開いて…
デフォルトでそういう機能が付いているかも知れませんが、サクッと Vim script 書きました。 [コード] function! s:tweetvim_footer(footer) silent $ put =a:footer call cursor(1, 1) endfunction let g:tweetvim_footer="[7/14(土)23:00からlingrでvimrc…
Emacs でプリプロセスの展開 - Life is very short ハイライトするのはいいなーと思って quickrun-hook で適当に setl ft=cpp でも埋め込もうかと思ったんですが outputter/buffer/filetype で直接設定出来るみたいです。 [quickrun_config] let g:quickrun_…
バッファ移動・可視化するためにバッファごとにタブを生成しています。 しかし、これだとタブ内のウィンドウレイアウトを保持したままバッファ移動する事ができません。 例えば、上部にソースファイルウィンドウ、下部にエラーリストウィンドウを出力したま…
quickrun_config に予め設定しておけば便利だよ。ってお話。 [quickrun_config] let g:quickrun_config = { \ "cpp/g++-preprocessor" : { \ "exec" : "%c %o %s:p", \ "command" : "g++.exe", \ "cmdopt" : " -P -E -std=gnu++0x", \ }, \} [:QuickRun cpp/…
やりたい事はだいたいできたので晒します。 だいぶ量が多いですが、これでも quickrun-hook のお陰でかなりすっきりとしました。 特に解説とかはしない。 function! s:quickrun_config() return \ extend(copy(g:quickrun#default_config), get(g:, "quickru…
Boost 1.5.0 の が gcc(clang) + std=c++0x でコンパイルエラーになります。 [ソース] #include <boost/fusion/include/deque.hpp> int main(){ return 0; } エラーは長いので省略。 msvc だと問題なかったです。 もコンパイルエラーになるし、1.50.1 とか来ないかしら。 [参照] http://lists</boost/fusion/include/deque.hpp>…
[目的] quickrun_config で各 filetype ごとに細かく config を設定をする場合、 let g:quickrun_config = { \ \ "cpp/msvc" : { \ "command" : "cl.exe", \ "exec" : "%c %o %s:p", \ "hook/output_encode/encoding" : "sjis" \ "hook/add_include_option/e…
quickrun が構築した最終的なコマンドを確認したい事がたまにあるので、サクッと quickrun-hook で実装。 [ソース] let s:hook = { \ "name" : "output_command", \ "kind" : "hook", \ "config" : { \ "enable" : 1, \ "log" : 0 \ } \} function! s:hook.o…
[追記 2014/1/2] 正しくぱーすされていなかったので修正 デフォルトの errorformat ではうまくパースされなかったので適当に定義。 ってか、Vim で python 書いている人もいると思うけど困らないんだろうか。 let &l:errorformat = '%A File "%f"\, line %l%…
と、いうのを Twitter で見かけたので試してみましたが、コンパイルエラーになりました。 どうやら から #include が削除されているのが原因みたい。 [ソース] #include <boost/range/algorithm/for_each.hpp> #include <iostream> int main(){ int v[] = {1, 2, 3, 4, 5}; boost::for_each(v, [](int n){ s</iostream></boost/range/algorithm/for_each.hpp>…