vim

Vim で rcodetools を使った Ruby のコード補完プラグインをつくった

vim

生きてました。 まだちょっと時間が取れない感じなのでまだ問題はあるんですが以前つくっていたプラグインでも公開してしまおうかなーと。 と、いうことで rcodetools を利用した Ruby のコード補完プラグインをつくってました。 [プラグイン] osyo-manga/vi…

Vim で RSS の取得

vim

ってできないのかなーと思ったら webapi.vim にすでにあった。 [ソース] let result = webapi#feed#parseURL("http://d.hatena.ne.jp/osyo-manga/rss") for item in result echo item.title endfor [出力] [vim]unite-github を非同期に対応させた [vim]watc…

unite-github を非同期に対応させた

vim

unite-github を非同期に対応させてみました。 表示するまで Vim をブロックしなくなります。 不具合等があれば Issues までお願いします。

watchdogs.vim に hdevtools を追加した

vim

そんな要望があったので追加してみました。 haskell で使用したい場合は次のように設定すると hdevtools が使用されます。 let g:quickrun_config = { \ "haskell/watchdogs_checker" : { \ "type" : "watchdogs_checker/hdevtools", \ }, \}

unite-vimpatches を非同期で読み込むようにしてみた

vim

してみました。 以前は unite-vimpatches を起動すると Web と通信を行うため Vim がブロックされましたが、その部分を非同期で処理するようにしてみました。 問題があれば Issues 等で教えてもらえると助かります。

unite-vimpatches の内容を Vim で読みこむようにしてみた

vim

以前作った unite-vimpatches ですが、ブラウザで開くのではなくて Vim で読みこむようなアクションを追加してみました。 次のように設定すれば Vim で内容を開くようになります。 call unite#custom#default_action("source/vimpatches/*", "openbuf") バッ…

Vim で bash の reverse-i-search のようなことを行う

vim

そんな話が Lingr の Vim 部屋で出ていたので。 " <C-r> で unite-history/command を起動 " 選択するとコマンドラインに選択したコマンドが挿入される " unite.vim と vim-unite-history が必要 cnoremap <C-r> :Unite history/command -start-insert -default-action</c-r></c-r>…

Vim script でリストの範囲にリストを代入する

vim

某 Lingr で話が出ていたので覚書。 let list = range(10) let list[3:6] = [-1, -2, -3, -4] echo list " => [0, 1, 2, -1, -2, -3, -4, 7, 8, 9] " :help E711 *E711* *E719* :let {var-name}[{idx1}:{idx2}] = {expr1} *E708* *E709* *E710* リスト|List|…

Vim から現在開いているファイルをコミットする

vim

ちょっと編集したファイルを毎回端末開いてコミットするのが手間だったので適当にラッパーコマンドを定義してみた。 " Commit {コミットメッセージ} command! -nargs=* Commit echo system("git commit " . expand("%:p") ." -m " . shellescape(<q-args>)) Commit {</q-args>…

Vim のシンタックスハイライトで他のシンタックスよりも優先してハイライトする

vim

毎回設定する度に忘れるので覚書。 書いたあとに書いたことすら忘れそうだけど さて、例えば、次のようなシンタックスハイライトを設定するとします。 " aaa を highlight Error でハイライト syntax match Error /aaa/ 上の設定を行うと こんな感じにハイラ…

unite.vim のプロンプトの位置による違い

vim

たまにハマる人がいるようなので簡単にまとめてみた。 候補順が逆 マークした後に上にカーソルが移動する -auto-resize になる(候補の数によって自動的にウィンドウの高さが変わる) また、下に split された場合は自動的にプロンプトが下に来ます。 プロン…

neosnippet.vim のマーカーを常に表示させる

vim

この間の Vimプラグイン読書会で話に出ていたので覚書。 さて、neosnippet.vim のマーカー(カーソルのジャンプ先)は syntax の conceal によって制御されています。 conceal を使用することでユーザ側が表示・非表示の制御を 'conceallevel' にて行うこと…

unite-quickfix をいろいろと改良した

vim

某所から突かれていろいろと直してました。 主に見た目的な部分を。 修正箇所は以下の通り。 表示形式をなるべく標準の quickfix に近づけた ハイライトの改良 w:quickfix_title を出力 yank アクションの対応(yy で候補のエラー内容をヤンク) 問題があれ…

neosnippet.vim でヤンクした HTML を Slim で展開する

vim

これの Slim 版。 [vimrc] " Html2Slim({slim}) " => {html} function! Html2Slim(html) if !executable("html2slim") return "" endif let input = tempname() call writefile(split(a:html, "\n"), input) let output = tempname() call system(printf("ht…

Vim script で html2slim のラッパー

vim

さて、html ファイルから slim ファイルへ変換したい場合、gem の html2slim が利用できます。 $ gem install html2slim $ html2slim input.html output.slim こんな感じで変換元の html ファイルと変換後の slim ファイルを指定します。 [Vim script でテキ…

Vimプラグイン読書会で neosnippet.vim のスニペット読んでます

vim

window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…

watchdogs.vim に flake8 を追加した

vim

watchdogs.vim に flake8 の設定を追加しました。 デフォルトでは pyflakes の方を優先して使用するようになっているので、pyflakes と flake8 の両方を入れている方は次のように設定してしている必要があります。 " filetype=python 時に使用するチェッカー…

任意の unite-source が使えるかどうかを判定する

vim

みたいなのが某 issues に飛んできたので簡単に調べてみた。 とりあえず、以下のようには判定できるぽい感じ。 let name = "file" echo index(keys(unite#variables#all_sources()), name) != -1 ソースコードから直接拾ってきただけなので他にそれっぽい関…

Vim で行継続の \ を削除して行結合を行う

vim

以前、任意の区切り文字を入力して行結合を行う jplus.vim というプラグインを作ったのですが、それに行継続の \ を削除して行結合を行う機能を実装してみました。 [プラグイン] osyo-manga/vim-jplus - github NeoBundle "osyo-manga/vim-jplus" [使い方] "…

Vim script で明示的に補完ウィンドウを呼び出す

vim

昨日、Lingr の Vim 部屋で出てきてたのですが Vim script の組み込み関数に complete() というのがあります。 :help complete() complete({startcol}, {matches}) *complete()* *E785* 挿入モード補完の候補を設定する。 挿入モードでのみ使用できる。CTRL-…

Vim の complete-functions でハマった

vim

久しぶりに Vim の complete-functions を書いていたんですが、知らなかった仕様にはまったので覚書。 さて、Vim でオレオレコード補完処理を行いたい場合は 'completefunc' や 'omnifunc' などのオプションにコード補完関数を設定して実現します。 function…

brightest.vim にハイライトしない単語のパターンを設定できるようにした

vim

brightest.vim にハイライトしない単語のパターンを設定できるようにしました。 [プラグイン] osyo-manga/vim-brightest [使い方] " アンダーバーから始まる単語はハイライトしない let g:brightest#ignore_word_pattern = '^_\k\+'

移動する度にカーソル上の単語をハイライトする brightest.vim に特定のシンタックス上でハイライトしない機能を実装した

vim

先日公開した brightest.vim ですが、公開後に色々と意見もらって特定のシンタックス上だとハイライトしない機能を実装してみました。if とか for とかそういうシンタックスはハイライトしたくない場合に有効です。 [プラグイン] osyo-manga/vim-brightest […

vimhelp に関数へのタグリンクを追加した

vim

vimhelp で ":help string-functions" してて関数にタグリンクがないのが不便だったので追加してみました。 :help string-functions そろそろパフォーマンスが気になり始めてきたので何とかしたいなぁ。

カーソルを移動するたびにカーソル下の単語をハイライトするあれをプラグイン化した

vim

ああーふみふみかわいいよふみふみガチャチケ55枚突っ込んで限定R2枚しか出なかった 関連:Vim でカーソル下の単語を移動するたびにハイライトする - C++でゲームプログラミング 以前、上記の記事で書いたコードなんですが、需要があるようなのでプラグイン…

fcitx-python を入れてみた

vim

FcitxでVimからIM制御する — KaoriYa 入れてみました。 公開されている github のリポジトリは一般的なプラグインのディレクトリ構成とは違うので、neobundle.vim で管理したい場合は次のようにして設定する必要があります。 NeoBundle "koron/imcsc-vim", {…

cohama 版 vim-hier を使ってみた

vim

試そうと思っていたんですが、この間 vimrc で話題になるまですっかり忘れていました。 と、いうことで試してみた。 vim-hier をフォークしてみた - 反省はしても後悔はしない cohama/vim-hier cohama 版 vim-hier だと列の位置も考慮してハイライトを行って…

unite-file でドットファイルを表示する

vim

仕様が変わったらしいので覚書。 さて、以前であれば unite-file でドットファイルを表示する場合は、 call unite#custom_source("file", "ignore_pattern", "") という風に "ignore_pattern" に空の文字列を設定すればよかったのですが最近仕様が変わったら…

Vim でランダムな文字列を生成する

vim

最近読書会で読んだ vimrc でそういうような関数が定義されていたんですが、フルスクラッチではなくて組み込みの関数でそれっぽいのを書いてみた。 command! RandomString \ echo sha256(reltimestr(reltime()))[:7] 現在の時刻で適当にハッシュ値を生成して…

ハイフンやドットなどが含まれたプラグイン名(ディレクトリ名)で :Vitalize する

vim

さて、プラグインで vital.vim を使用したい場合は :Vitalize コマンドを使用してプラグイン内に vital.vim を埋め込みます。 これによりプラグイン側で vital.vim に依存することなく vital.vim を使用する事ができるのですが少し注意が必要です。 例えばプ…