Vim

無数のパッチを組み合わせて君だけの MacVim を作ろう!

Vim

この記事は Vim Advent Calendar 2013 の 9 日目の記事です. 昨日は id:daisuzu さんの Fabricで最新のVimをバラまく でした.僕はサーバでの Vim で自前の環境使うのは諦めているので,すごいなぁと感心するばかりです. 先日開催された VimConf2013 にて…

VimConf 2013 で発表してきた

vim

クックパッドで開催された Vim Conference 2013 に参加してきた. 発表 How to suggest new features for Vim (香り屋さん) いかにして取り込まれやすいパッチを書くかという話だった.基本的に Vim の方針(Vim is a text editor)に反するものは取り込まれ…

コマンドオプションを解析するライブラリ Vital.OptionParser を書いた

Vim

この記事はVim AdventCalendar 2012の 343 日目の記事です. 昨日は cohama さんの Vim で Ruby の def end とかを自動入力する vim-endwise を vim-smartinput で実装してみた でした. そろそろ終わりが見えてきて,僕が投稿するのもこれが最後な気がしま…

Momonga.vim #2 に行ってきた

vim

title: Momonga.vim #2 date: 2013-10-16 21:02 tags: [vim, momongavim, 2] categories: [vim] 書き留め 昼食 thinca さん達と食べる予定をしていたのに遅延してきた特別快速を1つ前に来る快速と勘違いして乗ってしまいあえなく遅刻,1人で食べることに… 本…

clever-f.vim でカーソルの横移動を便利にする

Vim

この記事はVim Advent Calendar 2012 291 日目の記事になります.徐々に気温も秋らしくなり,終わりが見えてきてますね. この記事では,Vim の f キーを拡張する clever-f.vim というプラグインを紹介します. 今まで tekkoc さんや thinca さんに紹介して…

clever-f.vim が VimL の Weekly trending repositories on Github に入った

Vim

Vim の f キーを拡張するプラグイン,clever-f.vim が Github の Trending repositories(VimL) に入っていたので記念カキコ.挙動をカスタマイズできるようにしたり migemo 的な拡張を入れたりしてコミットが活発だったからだろうか. 追記(9/8): Monthly t…

C や C++ のコードを自動で整形する clang-format を Vim で

この記事は Vim Advent Calendar 269 日目の記事になります. きつねさんとおぼえる!Clang という本を読んでいて,clang 周りで色々役立ちそうなツールがあることを知ったので,その中でも C や C++ のソースコードを整形する clang-format というツールの …

caw.vim 用のオペレータマッピング

Vim

コメントアウト用のオペレータマッピングが欲しかったので,caw.vim から tcomment_vim に乗り換えようと思ったけれど,tcomment_vim が色々いまいちだったので結局 caw.vim に戻ってオペレータマッピングは自前で定義することにした. https://github.com/r…

neocomplcache から neocomplete.vim へ乗り換える

Vim

現在 neocomplcache は開発が neocomplete.vim へと移っており,保守のみが行われている状態です.しかし,neocomplcache は結構細かく設定していたりして移行に手間取りそうで二の足を踏んでいる人も多いのではないでしょうか.僕もそうだったのですが,今…

Travis CI で Vim プラグインのテストを自動化する

最近 Vim 界でも続々とテストフレームワークプラグインが出てきており,自分もぼちぼち kana さん作の vim-vspec でテストを書いたりしている. 最近,Travis CI で C++ なリポジトリのテストを自動化した ので,ついでに Vim プラグインのほうも自動化して…

Mac で最新の安定版 Vim (7.3.969)をインストールする

この記事の内容は deprecated です. 現在,Vim はパッチレベル 969 までが安定版,それ以降を開発版として開発が進められています. Mac で最新の開発版のパッチを適用した MacVim を使用したければ,Homebrew で macvim の HEAD を入れると簡単です. $ br…

一時ウィンドウを手軽に出し入れできる tmpwin.vim を作った

Vim

この記事は Vim アドベントカレンダー 183 日目の記事です. 早いもので,始まってからもう半年になりますね. ちなみに昨日の記事は manga-osyo さんの Vim Advent Calendar 2012 中間発表 でした. 本記事では,一時ウィンドウを簡単に開いたり閉じたりで…

unlet でリストの要素を削除できる

Vim

unlet は変数の定義を削除するだけでなく,配列の要素の削除に使えると知ったのでメモ. 具体的には次のように使える let a = [1, 2, 3, 4, 5] unlet a[2] echo a " => [1, 2, 4, 5] let b = [1, 2, 3, 4, 5] unlet b[2:-2] echo b " => [1, 2, 5] まだまだ …

「constexpr 長いねん」に対するエディタ的回答

autocmd FileType cpp \ inoremap <expr> e getline('.')[col('.')-6:col('.')-2] ==# 'const' ? 'expr ' : 'e' これで conste まで打つと自動で constexpr に展開されるので,const とほとんど同じ手間で constexpr と打てる!やった!</expr>

今年作った Vim プラグイン

Vim

unite-ruby-require.vim Ruby の require のパスを絞り込み検索する unite.vim ソース. clever-f.vim f マッピングの拡張.; ではなく f だけで繰り返し移動できるようになる. inu-snippets neosnippet 用の自作スニペット. accelerated-jk j と k の移動…

「立て!立つんだビムー!」

vim

この記事は Vim アドベントカレンダー 2012 の 19 日目の記事です. 昨日はhrsh7th さんの vim-versions についての記事 でした. たくさんプラグインを入れたり設定を書いたりしていると Vim の立ち上がりはどんどん遅くなってしまいます. 一度 Vim を立ち…

Ruby 2.0 のキーワード引数を補完する neocomplcache ソースを書いた

neco-ruby-keyword-args というプラグインを作りました. neco-ruby-keyword-args Ruby 2.0 では,引数を名前で指定するキーワード引数が追加されました. 今まではハッシュを引数にすることで擬似的に名前渡しを実現していましたが,もうそんなことをする必…

neosnippet のスニペットファイルを書く上での注意点

Vim

今日の勉強会の休み時間に ujihisa さんに教えてもらったので,忘れないうちにメモ. 以前,C 言語の main 関数のスニペットに main の引数 argc と argv が常に書いてあるのが気に入らなかった(引数を1度も使わないとコンパイル時に警告を食らう)ので,下…

Vim #11 に参加してきた

@ujihisa さんが主催する Vim 勉強会 #11 に参加してきました. neocomplcache について(@ujihisa さん) neocomplcache についての簡単な解説.インサートモードの = に補完候補を移動するキーを割り当てていたのが印象的でした. inoremap <expr>= pumvisible()</expr>…

vim-smartinput のスマートか分からない設定

Vim

vim-smartinput は @kana さん作の Vim プラグインで,賢い入力補助を行なってくれます. inoremap ( ()<Left> inoremap { {}<Left> とか設定している人には特にオススメです. 詳細については smartinput.txt を見ていただければ分かると思います. インストールするだ</left></left>…

unite-n3337 を作った

N3337 という,C++ の現行規格にもっとも近いドラフトがあり,今まで規格について調べたいときは N3337 の PDF ファイルを開いていました. しかし,いちいち開いて検索ワードを打ち込んで検索結果を1つずつ辿って…という作業が面倒だったので,unite.vim で…

Vim で PDF ファイルを読む

Vim

優秀な PDF リーダーは多数あるため基本的にはそちらで読みますが,PDF からテキストをコピーしてくる場合や,ちょっと確認する程度で良い場合はわざわざ PDF リーダーを開くのは億劫ですし,無駄な作業も増えます.そこで,PDF を読むコマンドを作ってみま…

neobundle.vim の遅延読み込みを使って gVim でしか使わないプラグインを定義する

Vim

僕は少しファイルを修正したりするときは zsh から CUI の Vim を,がっつり1つのディレクトリのソースを編集するときは gVim を使うようにしています.そして,プラグインの中には GUI のみでしか動作しないものや,gVim でしか使っていないプラグインも幾…

QuickRun から unite-qf へ出力する outputter を書いた.

Vim

ソースは 404 · GitHub に置いています.インストールは他のプラグインと同様に NeoBundle 'rhysd/quickrun-unite-qf-outputter' とするのが簡単です.QuickRun と unite-qf はこちら. thinca/vim-quickrun · GitHub sgur/unite-qf · GitHubunite-qf は qui…

VimFiler で Git のルートディレクトリを一発で開く

Vim

カレントディレクトリが Git リポジトリ内にある場合,そのリポジトリのルートを VimFiler で開くコマンドを fg に割り当てます. .vimrc に次のように書けば OK です. function! s:git_root_dir() if(system('git rev-parse --is-inside-work-tree') == "t…

ちょっと編集したいとき と ガッツリ編集したい時 で読み込む設定ファイルを変える

Vim

Vim の使い方は実に人様々です.「プラグインは1つも入れず,設定だけ変える」派から「100以上プラグインを入れてガチガチに固める」派まで居ます. これはちょっと極端な例ですが,そこまででなくても「プラグインが便利なのは分かるけれど,基本的にシェル…

インクルードガード用の neocomplcache スニペット

neocomplcache のスニペットには Vim script の式を使って展開する機能があります. c.snip snippet include_guard alias inc_guard prev_word '^' abbr #if !defined HOGE #define HOGE #endif #if !defined `toupper( substitute( expand("%"), "\\.", "_"…

Vimmer 達の vimrc

Vim

有名な Vim 使いが github で公開している vimrc を簡単にまとめてみました. 一段落ついたら参考にして自分の vimrc を見直そうと思います. Shougo さん https://github.com/Shougo/shougo-s-github/blob/master/vim/.vimrc kana さん https://github.com/…

unite-session が便利

Vim

unite-sessionはVimプラグインUniteに標準で付いてくるUniteのソースです.Uniteのインストールなど詳しくはこちら. Shougo/unite.vim · GitHubunite-sessionは現在のVimの状態(セッション)を保存しておくことのできるUniteソースです. 試しにVimを立ち…

Vimのinsertモードで便利なC++コーディング用キーマップ

autocmd FileType cpp call MyCppMapping() function! MyCppMapping() inoremap <buffer><expr><CR> \ strpart( getline('.'), col('.')-2, 2 ) == "{}" ? \ "\<CR>\<C-o>k\<C-o>$\<CR>" : "\<CR>" inoremap <buffer>{ {}<Left> inoremap <buffer>( ()<Left> inoremap <buffer>() () inoremap <buffer><> <><Left> inoremap…</left></buffer></buffer></left></buffer></left></buffer></cr></cr></c-o></c-o></cr></cr></expr></buffer>