id:thinca さんがさり気なく Lingr で使っていたので覚書。 :QuickRun -debug x と、するとグローバル変数 x にその時の session データが保存されます。 どんな状態で実行されたか確認したい場合はこれを利用する事ができます。 shabadou.vim だと hook で同じようなことをやっているんですが、知らなかった。
この記事は Vim Advent Calendar 2013 175日目の記事になります。 さて、以前、矩形なオブジェクトを対象とする textobj をつくりました。 Vim Advent Calendar 2013 107日目: Vim で矩形なオブジェクトを対象とする為の textobj を書いた - C++でゲームプログラミング 上記で作った textobj は、 : カーソル位置 : 範囲 NeoBundle "Shougo/vimproc.vim" NeoBundle "Shougo/unite.vim" NeoBundle "Shougo/unite-outline" NeoBundle "Shougo/vimfiler.vim" の用に幅が同じオブジェクトに対しては有効なのですが、幅が違うオブジェクトの場合には対処できません。 " アカウント名のみヤンクしたい NeoBun
の記事は Vim Advent Calendar 2013 148日目の記事になります。 参加者募集中です。 さて、このブログでも何回か記事にしたんですが、Vim 7.4.260 にて g: から始まる関数名がエラーになるようになりました。 これは Vim 側のバグで g:foo() のような関数名でも動作していたのが修正された形になります。 ただし、その後 264 で g: + 有効な関数名(大文字から始まる関数名)であればエラーにならない修正がはいりました。 つまり最新版では g: + 大文字から始まらない関数名がエラーになります。 そんなわけで 7.4.264 現在は以下のような動作になります。 " g: + 大文字ではない関数名はエラー " これは func() が有効な関数名ではないため " function! g:func() " " endfunction " g: + 大文
この記事は Vim Advent Calendar 2013 140日目の記事になります。 書きたい人募集中ですよ!! さて、今回はすごくマイナーなネタでも。 [gtk 環境だと remote_foreground() がうまく動作しない] Vim のマイナーな関数に remote_foreground() というのがあります。 これは任意の Vim をフォアグラウンドに移動させるという関数なのですが手元の Ubuntu 環境だとうまく動作しませんでした。 で、raa さんが見つけてくれたんですがどうやら結構前から gtk 環境で動作しなくなっているみたいです。 remote_foreground() doesn't work exactly on GTK (on KDE) 上記のメールはもう4年以上前なのでその後進展があったのかわからないのですが『wmctrl を使えばいい』という回避方
この記事は Vim Advent Calendar 2013 121日目の記事になります。 あったら便利そげな気がしたのでつくりました。 出力するパッチのデータは mattn さんの Web API を使わせて頂きました。 また、出力されるパッチは 7.4 系のものになります。 [プラグイン] osyo-manga/unite-vimpatches NeoBundle "osyo-manga/unite-vimpatches" [使い方] :Unite vimpatches 候補を選択すると詳細が書かれているページがブラウザで開きます。 [ブラウザでなくて Vim で開く] 詳細が書かれているページをブラウザではなくて Vim で開きたい場合は ref-lynx を使います。 thinca/vim-ref osyo-manga/ref-lynx 上記のプラグインを入れて action の
この記事は Vim Advent Calendar 2013 95日目の記事になります。 そろそろネタもなくなってきたので Twitter で少し見かけた簡単なネタでも。 さて、unite.vim を起動して 等でアクションを呼び出すとデフォルトでは normal モードでアクションが開きます。 これをコマンドオプションの -start-insert のように insert の状態で開きたい場合は unite#custom#profile() で設定する事ができます。 call unite#custom#profile('action', 'context', {'start_insert' : 1}) これでアクションを起動した時に start-insert の状態で起動する事ができます。
この記事は Vim Advent Calendar 2013 93日目の記事になります。 先週の vimrc 読書会で読んでいた vimrc で numberwidth が設定されているのを見て思いついたのでネタにします。 さて、わたしは行番号を表示しているのですが、行番号の左側に余白がないのがちょっと気になっていました。 ぴったりくっついているのは見づらい。 そこで、バッファの行数に応じて numberwidth の値を動的に変更する事で余白を設けるようにしてみました。 augroup numberwidth autocmd! autocmd BufEnter,WinEnter,BufWinEnter * let &l:numberwidth = len(line("$")) + 2 augroup END numberwidth の値をバッファの行数桁よりも +1(正確にいえば右側のス
この記事は Vim Advent Calendar 2013 88日目の記事になります。 元ネタ それ、Vim で。 と、いう事でやってみました。 [必要なプラグイン] Shougo/vimproc.vim コマンドを非同期で実行する osyo-manga/vim-watchdogs シンタックスチェックを行う jceb/vim-hier エラー箇所を波線でハイライトする dannyob/quickfixstatus カーソル位置のエラー内容をコマンドラインに出力する thinca/vim-quickrun watchdogs.vim のバックエンド osyo-manga/shabadou.vim quickrun.vim の hook 拡張 NeoBundle "Shougo/vimproc.vim" NeoBundle "thinca/vim-quickrun" NeoBundle "
この記事は Vim Advent Calendar 2013 76日目の記事になります。 バレンタインデーネタとか全くないです。 さて、最近 migemo でインクリメンタルサーチしたいなーと思っていたんですが KaoriYa 版 Vim にそういう機能が組み込まれているそうなので簡単に試してみました。 ちなみに Vim において migemo がどういう扱いになっているのかはよくわかっていません。 (パッチがあるのかとか KaoriYa 版以外の Vim で利用できるのか etc... [インストール] 以下のページから migemo の dll や辞書ファイルなどをダウンロードします。 C/Migemo — KaoriYa ダウンロードが終わったら以下の手順に従い Vim に組み込みます。 インストール手順 以下の説明ではVimをインストールした(gvim.exeの置いてある)ディレク
この記事は Vim Advent Calendar 2013 52日目の記事になります。 quickhl.vim の延長線なのですが、カーソル下の単語を移動するたびにハイライトするようなスクリプトを書いてみました。 どういうことかというと以下のような感じ。 そもそも quickhl.vim にも同じような機能があったのですが、挙動があまり好きではなかったので自分で実装した感じです。 [ソース] " 1 が設定されていれば有効になる let g:enable_highlight_cursor_word = 0 " let g:enable_highlight_cursor_word = 1 augroup highlight-cursor-word autocmd! autocmd CursorMoved * call s:hl_cword() " カーソル移動が重くなったと感じるようであれ
この記事は Vim Advent Calendar 2013 30日目の記事になります。 早くも2回目の記事になりますが、まだまだ参加者は募集しています。 興味のある方はぜひ!参加しましょう!! Vim Advent Calendar 2013 さて、今回の記事なのですが、以下が元ネタになります。 来年も使いたいelispランキング2013 と、言うことでわたしも今年お世話になった Vim のプラグインを紹介してみようと思います。 なお、独断と偏見で決めたので偏っているかも知れませんがご了承下さい。 あとこのランキングはプラグインの使用頻度を重視した順番となります。 第10位[capture.vim] tyru/capture Vim のコマンドの結果を新規バッファへと出力するプラグインです。 例えば、 :Capture map で、キーマッピングの一覧を出力したり :Capture !g
この記事は Vim Advent Calendar 2012 365日目の記事になります。 そう… 365日目です!! 今日は11月30日、明日には12月01日が始まります。 本当に1年ぶっ続けでやってしまった と、いう事で Vim Advent Calendar 2012 最後の記事なのですが、特に面白いネタも思いつかなかったので中間発表の時のようなまとめ記事になります。 集計するにあたって手伝ってくれた syui さん、supermomonga さん、raa さん、ありがとうございました。 ※例によって人力で集計した部分もあるので間違っているところや記入漏れがあったらごめんなさい。 [年間トータル投稿数ランキング] 第1位 73回:manga_osyo 第2位 28回:tyru 第3位 23回:ujihisa 第4位 17回:supermomonga 第5位 14回:cohama 第6
すみません、少し遅れました。 この記事は Vim Advent Calendar 2012 329日目の記事になります。 元ネタ http://lingr.com/room/vim/archives/2013/10/24#message-17160863 https://twitter.com/tek_koc/status/393244775702212608 https://gist.github.com/mrkuc/7121179 最初見たのは Lingr の Vim部屋の thinca さんの発言だけど、大本は mrkuc さんが元ネタぽいです。 Emacs には zone-mode というものがあるらしく、上の処理はそれを利用しているらしいです。 と、いう事で Vim でもサクッと実装してみました。 ちなみにちと重いのでマシンスペックがないとアイエエエなことになるかも…。 [プラグ
この記事は Vim Advent Calendar 2012 287日目の記事になります。 さて、unite.vim の候補は以下のようにして動的にソートする事が出来ます。 " :help unite#mappings#set_current_filters() " 参照 nnoremap <buffer><expr> S unite#mappings#set_current_filters( \ empty(unite#mappings#get_current_filters()) ? ['sorter_reverse'] : []) これで S を押せば候補が逆順にソートされます。 しかし、unite.vim にはいくつか sorter が用意されており、vimfiler.vim のように候補を選択してソートを行いたい事が稀によくあります。 (vimfiler.vim は S を押すと
この記事は Vim Advent Calendar 2012 281日目の記事になります。 さて、Vim script でユニットテストのコードを書いていると『カーソル位置の関数を評価したい』と思うことがよくあります " いずれかの関数内にカーソルをあわせてテスト関数を評価したい function! s:test1() " ... endfunction function! s:test2() " ... endfunction function! s:test3() " ... endfunction まぁそれに限らずカーソル位置の関数を評価したいと思うことは稀によくあると思います。 と、いうことでそれを行うスクリプトを簡単に書いてみました。 [必要なプラグイン] tyru/current-func-info.vim - github thinca/vim-scall - github
この記事は Vim Advent Calendar 2012 270日目の記事になります。 例によって参加者はまだまだ募集しています。 興味のある方は @osyo_memo までご連絡下さい! 関連:Emacs の起動時と終了時に「“プロ生ちゃん”のシステムボイス」音源を再生する - blechmusikの日記 さて、今回の内容ですが、昨日の夜 Lingr で上記のような記事を見かけました。 つーことで早速 Vim 版も作ってみました。 Vim からプロ生ちゃんをしゃべらせたり、起動時や終了時に声をかけてくれます。 [動作環境] Mac Ubuntu WindowsXP WindowsVista 以降は外部コマンド Ruby が必須 Mac と WindowsXP と Ubuntu は動作確認済みです。 aplay コマンドが使用できれば他の Linux 環境でも動作すると思います、多分。
この記事は Vim Advent Calendar 2012 261日目の記事になります。 と、いうツイートを見かけたのでついカッとなって anzu.vim にキャッシング処理を追加しました。 検索結果をキャッシングする事で、2回目以降は高速で処理するようになります。 このキャッシュは『カレントバッファのテキストが変更されたとき』にクリアされます。 anzu.vim については VAC の『Vim で現在の検索位置を表示する』を参照してください。 また、この変更で anzu.vim は Vim 7.3.867 以上が必須になります(理由は後述参照。 [Patch 7.3.867 で追加された便利なアレ] さすがに anzu.vim ネタだけでは物足りないので Vim 7.4 で追加された便利な機能の紹介でも。 Patch 7.3.867 で次の autocmd が新しく追加されました。 T
この記事は Vim Advent Calendar 2012 251日目の記事になります。 Vim でタブページを多用している場合、:tab drop はとても便利なコマンドです。 しかし、:tab drop を使用した事がある方はわかると思いますが、このコマンドを実行した際に各タブページが1つずつ開かれて行く為、視覚的にとても煩わしいです。 これを解決するためにオレオレ :tab drop コマンドを定義してみました。 function! s:to_fullpath(filename) let name = substitute(fnamemodify(a:filename, ":p"), '\', '/', "g") if filereadable(name) return name else return a:filename endif endfunction function!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く