Vim 7.4.338 で 'breakindent' オプションが追加されました。 このオプションは何をするのかというと 'wrap' で折り返した時に折り返された行もインデントする設定になります。 [関連] 'wrap' で折り返したときにインデントする機能が欲しい · Issue #114 · vim-jp/issues · GitHub Patch 7.4.338
この記事は Vim Advent Calendar 2013 97日目の記事になります。 Twitter 見ていると『テキストオブジェクトわからん』というツイートをたまに見かけるので自分が理解している範囲で簡単に解説してみるなど。 まぁこういう記事は大量にあると思うけど わたし自身も少し前までは『テキストブジェクよくわからない』状態だったんですが、どういうものか理解してからはテキストオブジェクトが中心となって Vim を操作するようになりました。 他のエディタでは見かけない癖のある機能だと思いますが、Vim を使用しているのであればテキストオブジェクトとオペレータの関係は覚えておいた方がよいと思います。 [テキストオブジェクトとは] テキストオブジェクトを一言でいうと『任意の範囲』になります。 例えば normal モードで diw を入力すると『カーソル下の単語』が削除され、yi( で『
この記事は 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 2012 334日目の記事になります。 明日以降の担当者がまだ決まっていないので誰か書きたい方がいれば @osyo_memo までご連絡下さい。 ちなみに Vim Advent Calendar 2013 は明日あたりから募集する予定です。 関連:俺が見たいのはメッセージの最後なんだ!:messagesを便利にするVimプラグイン 上記の記事に触発されて unite.vim だとどこまで出来るのかいろいろと試してみました。 [:messages を unite.vim で出力] :messages を unite.vim へと出力する場合は unite-output を使用するのが楽だと思います。 " :messages の出力結果を unite.vim へ出力する :Unite output:messages これは次のように alia
@supermomonga さんに教えてもらいながら middleman で構築したサイトを GitHub Pages で公開する事ができたので、その手順をまとめておきます。 デプロイとかめんどくさいと思っていたんですが、実際やってみたらめちゃくちゃ簡単でした。 [必要なもの] git github のアカウント gem middleman [middleman の生成] まずはローカルに middleman のプロジェクトを作成します。 middleman は gem からインストールする事ができます。 $ gem install middleman $ middleman version Middleman 3.2.2 これで、middleman のコマンドを使用できるようになったので次のようにして middleman でプロジェクトを生成します。 $ middleman init t
この記事は Vim Advent Calendar 2013 1日目の記事になります。 さて、今年も Advent Calendar の季節がやってきましたね! 今年もがんばって行きたいと思います。 また、去年の Vim Advent Calendar はこちらになります。 今年1発目の記事って事で簡単に Web 上の記事をまとめてみたいと思います。 [初心者 - Vim を始めた人、始めようと思っている人向け] Learn Vim Progressively mattn さんによる「Learn Vim Progressively」の翻訳記事です Vim の習得する為の内容です Vim初心者の自分が、初心者の視点からVim入門を書いてみました。 初心者目線で書かれています これから Vim を始める場合に入りやすいと思います これだけ知っときゃなんとかなるVim これだけ知っておけばなんと
この記事は 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 320日目の記事になります。 さて、今回は neosnippet.vim の便利そげな使い方でも簡単に書いてみます。 [neosnippet.vim とは] neosnippet.vim とは Shougo 氏が作成されたスニペット補完を行うためのプラグインです。 予め設定しておいた定型文を簡単に挿入する事ができます。 Shougo/neosnippet.vim - github NeoBundle 'Shougo/neosnippet' また、単体でも使用する事は可能ですが、neocomplete.vim または neocomplcache と併用して使用するとよいでしょう。 Shoug/neocomplete.vim - github NeoBundle 'Shougo/neocomplete.vim' [スニペットを定義す
この記事は Vim Advent Calendar 2012 293日目の記事になります。 [元ネタ] http://lingr.com/room/vim/archives/2013/09/16#message-16690895 元々は Lingr での Lindan さんの発言がきっかけだったのですが、今回は unite-filters を利用して memolist.vim の内容をいい感じに unite.vim で出力してみたいと思います。 コンセプトとしては専用の unite-source を定義するのではなくて unite-filters で頑張る感じ。 関連:シンプルなメモ管理用プラグインmemolist.vimを作った - Glide Note [unite-filters とは] 今回、主に使用する unite-filters の converter なのですが、unite-
この記事は Vim Advent Calendar 2012 255日目の記事になります。 以前言っていた popwin.el の Vim 版もどきなんですが、とりあえず形にはなったので公開しようかと思います。 そこそこ汎用性が高くて良い感じなんじゃないかな。 とは言ってもまだ全然使い込んでいないのでバグや改良点はまだまだあると思うんですが…。 設定方法もまだ増えそうだし、quickrun_config のように細かく設定できたほうがいいんだろうか。 そんな感じで人柱大歓迎です。 バグや改良点などがあれば、ぜひ教えてもらえると助かります。 [プラグイン] osyo-manga/vim-automatic - github NeoBundle "osyo-manga/vim-automatic" [これはなに] 任意のタイミングで任意の設定を行うためのプラグインです。 例えば、 『unite
この記事は Vim Advent Calendar 2012 229日目の記事になります。 最近やっと textobj を利用し始めた情弱な Vimmer なんですが、どんな textobj があるのか知らなかったので調べられる範囲でまとめてみました。 基本的に kana さんの vim-textobj-user を使用しているプラグインを上げてあります。 ご覧の通り量が多いので typo などがあったらごめんなさい(・ω<) [textobj 一覧] プラグイン 範囲 マッピング 備考 user entire バッファ全体 ae, ie line カーソル行 al, il 参照 function 関数内 af, if syntax シンタックス ay, iy jabraces 「foo」 or 【bar】など ajb, ijb lastpat 最後に検索されたパターン a/, i/ in
この記事は Vim Advent Calendar 2012 216日目の記事になります。 さて、Vim Advent Calendar 2012 の1日目にも似たような内容の記事を書いたのですが、今回はもう少し Vim script よりの内容になっています。 普段、Vimプラグインを作る際に注意している事や便利なプラグインなんかを紹介してみたいと思います。 [グローバル変数のオプションの初期化に get(g:) を使用する] プラグインのオプションでグローバル変数を使用する場合、 " g:hoge_flag がない場合、変数を初期化する if !exists("g:hoge_flag") let g:hoge_flag = 0 endif のように exists() を使用するのではなくて " g: は辞書なので get を使用する事が出来る " キー "hoge_flag" を取得し
この記事は Vim Advent Calendar 2012 204日目の記事になります。 元ネタ:http://lingr.com/room/vim/archives/2013/06/20#message-15677149 という話が Lingr の Vim部屋で出たのでさくっとプラグイン化して作ってみました。 [インストール] osyo-manga/vim-jplus - github NeoBundle "osyo-manga/vim-jplus" [使い方] 以下のようにマッピングして使用します。 文字の入力方法は getchar() と input() の2種類あるので好みに合わせて使い分けて下さい。 " getchar() で挿入する文字を入力 nmap <leader>J <Plug>(jplus-getchar) vmap <leader>J <Plug>(jplus-ge
この記事は Vim Advent Calendar 2012 199日目の記事になります。 元ネタ : lingr での supermomonga さんの発言 1.:Unite output:let Shougo さんが速攻で返信しました。 unite-output 便利過ぎる。 2.g: を使用する 上記のように let を使用するのでもいいのですがちょっと見づらいです。 g: を使用してもうちょっと見栄えをよくしてみました。 :Unite output:echo\ join(map(keys(g\:),"'g\:'.v\:val"),"\\n") これでグローバル変数名"は" unite.vim で出力する事が出来ました。 3.alias する 毎回 output に引数を渡すのは手間です。 そういう場合は g:unite_source_alias_aliases で予め設定しておく事
バックエンドに vimproc を使用して、Vim script で簡単に外部コマンドの非同期処理が行えるようなラッパを書いてみました。 これで比較的簡単に非同期処理を行うことが出来ると思います。 例によって updatetime に依存しているので、その値が大きいと時間は不適格かも知れません。 [使い方] function! s:echo(str) echo a:str endfunction function! s:async() " 2秒後に "mami" を出力する call g:thread("ruby -e \" sleep 2; puts 'mami' \"", function("s:echo")) endfunction call s:async() g:thread にコマンドと終了時に呼ばれる関数を指定していして使用します。 上記の場合は、:source した2秒後に
先日 unite-kakizome なる unite-source をつくったんですが、よくよく考えるともっと簡単な実装方法があったので書いてみました。 思ったよりも短いです。 [ソース] tabnew function! s:reset() for y in range(winheight(0)) call setline(y, join(map(range(winwidth(0) - 7), "'a'"), "")) endfor endfunction call s:reset() nnoremap <silent><buffer> 1 :call <SID>reset()<Esc> nnoremap <silent><buffer> <LeftMouse> <LeftMouse>Rxx<Esc> nnoremap <silent><buffer> <LeftDrag> <LeftM
汎用的な quickrun-hook をまとめた shabadou.vim を使用して簡単に quickrun.vim をカスタマイズしましょう! って、事で quickrun-hook を使用した quickrun.vim の設定を順を追って設定していきたいと思います。 shabadou.vim を使用すれば、コマンドが成功したら buffer に出力、コマンドが失敗した場合に unite-quickfix へ出力するなどといったことが比較的簡単に設定できます。 と、いう感じで段階を追って g:quickrun_config をいい感じにカスタマイズして行きましょう。 「さあ、ショータイムだ!」 0.必要なプラグイン quickrun.vim vimproc quickrun.vim で非同期処理を行うために必要なプラグイン unite.vim unite-quickfix unite.
この記事は Vim Advent Calendar 2012 65日目の記事になります。 いやー今年も Vim と過ごすクリスマスが楽しみですね! まだまだ参加者は募集中なのでまだ未参加の人はどさくさに紛れて記事を書いてみるのもいいともいます。 また、既に参加して2週目をやりたい!って方がいましたらお手数ですがこの記事のコメント、もしくは lingr の Vim 部屋で言ってもらえればスケジュールに登録するので教えて下さい。 [sugarpot.vim] と、いうことで Vim から画像ファイルをプレビューする事ができるプラグインを作りました。 Vim から Vim を立ちあげてそこに画像ファイルを XPM に変換して描画を行なっています。 また動作に Vim の clientserver を使用しているので +clientserver が必要になります。 本来であれば XPM を用いて画
vim script では、次のように {} 内を評価して変数名を定義することが出来ます。 let s:hoge = "foo" let s:foo{s:hoge} = "foofoo" echo s:foo{s:hoge} " => foofoo echo s:foofoo " => foofoo これは変数名だけではなく、関数名にも適用することが出来ます。 let s:hoge = "foo" function! s:func_{s:hoge}() echo "func_foo" endfunction call s:func_foo() " => func_foo で、これを応用して、関数のオーバーロードのような定義を書いてみました。 [ソース] let int = type(0) let string = type("") " int のみ function! s:disp{int
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く