vim

Vim script で関数名と同名の変数が定義できる

vim

今日(っていうかさっき)知ったんですが、Vim script って関数名と同名の変数が定義できるんですね…。 [ソース] function! s:type(x) return a:x endfunction let s:type = 42 echo s:type echo s:type("x") [出力] 42 x Vim script 怖い。 [関連] 関数名と…

precious.vim と indentLine を併用する

vim

カーソル位置のコンテキストによって自動的にバッファの filetype を切り替える precious.vim ですが、indentLine を使用していると filetype を切り替える度に indentLine のハイライトが消えてしまいます。 これは以下のように設定することで回避する事が…

unite.vim で絞り込んだワードをコマンドとして実行する

vim

Lingr の Vim 部屋でこんな質問がありました。 http://lingr.com/room/vim/archives/2014/07/21#message-19702876 unite.vim でこういうことをしたい場合は file/new みたいにプロンプトに入力したワードを候補として追加するのが普通かなーってことで簡単に…

unite-vimmer つくった

vim

そういえば、なかったようなのでつくってみました。 vim-jp にある Vimmer の一覧を unite.vim で表示します。 オリジナルのデータはここら辺から拾ってきてます。 [プラグイン] osyo-manga/unite-vimmer NeoBundle "osyo-manga/unite-vimmer" [使い方] " 開…

Vim でプラグインを書くときに便利な neosnippet.vim のスニペット

vim

Lingr の Vim 部屋でそんな話があったので少し紹介 [let g:option = get(g:, "option", 42) を展開] snippet goption abbr goption let g:${1} = get(g:, "$1", ${2}) プラグインでオプションを定義する場合はほとんど get() を利用して記述するので定型文化…

caw.vim でコメントアウトしてペーストする

vim

稀によくそういうことを行いたい時があるのでちょっとやってみた。 [cp でペーストしてコメントアウトする] nmap cp p`[v`]<Plug>(caw:i:comment) とりあえず、頭が動いていない状態で適当に書いてみた。 上の場合は単純にペーストしてその範囲を選択し、コメント</plug>…

over.vim の起動が早くなった…かも?

vim

over.vim は内部で vital.vim を利用しているんですが、その vital.vim のパフォーマンスが改善されたようなので更新してみました。 具体的には計測していないんですが、今まで遅いと感じていた初期起動時間が、vital.vim を更新したら体感ではだいぶ早くな…

neosnippet.vim の ${1:condition} と ${1:#:condition} の違い

vim

Lingr の Vim 部屋でちらっと出てきていたので覚書。 さて、neosnippet.vim の snip ファイルの構文なのですが、 ${1:condition}と記述した場合、"condition" がデフォルト値として挿入され、何も入力しないで次のマーカーへジャンプしたら "condition" が挿…

watchdogs.vim で g:vimlint#config が反映されるようにした

vim

今まで反映されてなかったのかよ!というツッコミはもっともなんですが、watchdogs.vim で動作する vimlint に g:vimlint#config を反映させるようにしまいた。 あと新し目の quickrun.vim じゃないとちゃんと動作しないので、使用する場合は quickrun.vim …

open-browser.vim でカレントの HTML ファイルをブラウザで開く

vim

HTML ファイルなどを編集している場合にその結果をブラウザで確認したい事が稀によくあります。 そういう場合は、 execute "OpenBrowser" expand("%:p") みたいに現在のファイルを :OpenBrowser コマンドに渡せばよいのですが、毎回これを打つのもめんどくさ…

あとから unite-grep が終了したかどうかを確認する

vim

unite-grep は非同期で処理され、処理が終了したらコマンドラインに [grep] Completed. と表示されます。 しかし、コマンドラインはちょっとした動作で消えてしまう事が多いので、たまにこの出力を見逃してしまって、終了したかどうかがわからなくなる場合が…

Vim で slim のシンタックスハイライトを行う

vim

とりあえず、次のプラグインを入れればよさそう。 slim-template/vim-slim NeoBundle "slim-template/vim-slim"

Vim の :map- を試してみた

vim

7.3.1261 で という機能が追加されたんですが、よくわかってなかったので試してみた。 nnoremap qq :echo "qq"<CR> autocmd FileType hoge nnoremap <buffer> q :echo "q"<CR> さて、上のようなマッピングをしている場合、filetype=hoge では qq と q にマッピングがされてい</cr></buffer></cr>…

Vim のカーソルをバッファ末尾まで移動したら先頭に戻る

vim

いわゆる 'whichwrap' のような挙動をバッファの先頭/末尾で行うスクリプトを書いてみた。 [ソース] function! Up(key) if line(".") == 1 return ":call cursor(line('$'), col('.'))\<CR>" else return a:key endif endfunction function! Down(key) if line("</cr>…

unite-action の表示方法が少し変更された

vim

言い出しっぺなので書いておく。 横幅を広くして使用している人はあんまり関係ないんですが、unite-action の短縮の仕方が変更されました。 [before] [after] 以前は中央を短縮していたんですが、最新版では右側を短縮するようになりました。 ちなみに、以前…

marching.vim から reunions.vim の依存を削除した

vim

現在 reunions.vim を vital.vim の外部モジュールへと移植しています。 osyo-manga/vital-reunions reunions.vim を vital.vim の外部モジュールとすることで vital.vim と同様にプラグインに直接 reunions.vim を埋め込む事ができます。。 これにより reun…

unite.vim のデフォルトのコンテキストを設定する

vim

unite#custom#profile() の {profile-name} に "default" を渡すことで全ての unite のデフォルトのコンテキストを設定する事が出来ます。 例えば、『insert から開始し、split しないで、prompt を常に上部に表示したい』場合は次のような設定になります。 …

vimhelp で英語の doc を :help できるようにした

vim

vimhelp で英語の doc を :help できるようにしました。 Vim と同様に末尾に "@en" を付属されれば英語版の doc を表示します。 不具合等があったら Issues までご連絡ください。

Vim 7.4.338 で 'breakindent' オプションが追加された

vim

Vim 7.4.338 で 'breakindent' オプションが追加されました。 このオプションは何をするのかというと 'wrap' で折り返した時に折り返された行もインデントする設定になります。 [関連] 'wrap' で折り返したときにインデントする機能が欲しい · Issue #114 · …

バージョンを指定して Vim 本体をビルドする

vim

最新版の Vim だと色々と不具合があったので少し前のバージョンに戻してみました。 Vim のソースコードは Mercurial で管理されているので Mercurial でソースコードを取得してビルドしている場合は簡単に任意のバージョンをビルドする事ができます。 7.4.32…

unite.vim の候補を動的にソートする unite-source と action をつくった

vim

vimfiler.vim だと S を押すことで動的に候補のソートを行うことができるのですが、そんな感じのことを unite.vim でもやってみました。 [プラグイン] osyo-manga/unite-candidate_sorter NeoBundle "osyo-manga/unite-candidate_sorter" [設定] " ソートの…

unite-github つくった

vim

Vim から vim-jp/issues を参照したかったので適当につくった。 [プラグイン] osyo-manga/unite-github NeoBundle "osyo-manga/unite-github" [使い方] " github/issues:{accunt}/{repos} :Unite github/issues:osyo-manga/unite-github とりあえず、今は is…

unite.vim で常にプロンプト行を上に表示する

vim

少し前に unite.vim にプロンプト周りの変更が行われました。 この変更に伴い unite.vim を下に開いた場合にプロンプトが下に来るようになりました。 この時に以前と同じように『常に上部にプロンプトを表示したい』という場合は次のように unite#custom#pro…

unite-vim_hacks を vim-jp.org に対応しました

vim

関連 vim-jp » vim-users.jpの過去記事を掲載します vimからvim hacksを閲覧する - unite-vim_hacks - 分け入ってもコード vim-users.jp が vim-jp.org へと移動したので、unite-vim_hacks でもそれに対応して pul request を投げていました。 無事に merge …

vim-textobj-from_regexp で if 〜 then 間や式の右辺や左辺を取得したり

vim

Lingr で『if 〜 then 間や式の右辺や左辺を取得したい』みたいな話があったので textobj-from_regexp で簡単にやってみた。 [ソース] " if 〜 then omap <expr> <Plug>(textobj-if-then) \ textobj#from_regexp#mapexpr('if\zs\_.\{-}\zethen') vmap <expr> <Plug>(textobj-if-then)</plug></expr></plug></expr>…

operator-exec_command にビジュアルモードでキーマッピングを呼び出す機能を追加した

vim

昨日、operator-exec_command で caw.vim の operator を定義する記事を書いたのですが、『ビジュアルモードで任意のキーマッピングを呼び出す』みたいなことは多いかなーと思ってラッパー関数追加してみました。 operator#exec_command#mapexpr_v_keymappin…

operator-exec_command で caw.vim の operator を定義する

vim

コメントアウトを行う operator が欲しかったんですが今使っている caw.vim ではそういう機能がなかったので operator-exec_command を利用して簡単につくってみました。 [ソース] " コメントアウト nmap <silent><expr> <Plug>(operator-caw-I-toggle) \ operator#exec_command#</plug></expr></silent>…

Vim Advent Calendar 2013 183日目: unite-neobundle から github の Issues を開く

vim

この記事は Vim Advent Calendar 2013 183日目の記事になります。 今回は軽めの記事。 さて、プラグインを使っていると稀によくバグを見つけることがあります。 そんな時にさっとプラグインの Issues を開きたいですよね。 と、いうことで unite-neobundle …

Google Vimscript Style Guide

vim

というのが Google で公開されていました。 Google Vimscript Style Guide Google Vimscript Guide まだあんまり読んでいないのですがあちこちに maktaba という単語が書かれていますね。

Vim Advent Calendar 2013 179日目: 任意のコマンドを実行する operator をつくった

vim

この記事は Vim Advent Calendar 2013 179日目の記事になります。 今日の担当だった某ももんがさんはスタドリを飲むのに忙しいので代わりにわたしが(大嘘。 関連::help する Vim の operator かいた <Vim Advent Calendar 2013> - pockestrap 上記の記事を読んでいて『任意のコマンド</vim>…