2014-08-01から1ヶ月間の記事一覧
ってできないのかなーと思ったら 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 をブロックしなくなります。 不具合等があれば Issues までお願いします。
そんな要望があったので追加してみました。 haskell で使用したい場合は次のように設定すると hdevtools が使用されます。 let g:quickrun_config = { \ "haskell/watchdogs_checker" : { \ "type" : "watchdogs_checker/hdevtools", \ }, \}
してみました。 以前は unite-vimpatches を起動すると Web と通信を行うため Vim がブロックされましたが、その部分を非同期で処理するようにしてみました。 問題があれば Issues 等で教えてもらえると助かります。
以前作った unite-vimpatches ですが、ブラウザで開くのではなくて Vim で読みこむようなアクションを追加してみました。 次のように設定すれば Vim で内容を開くようになります。 call unite#custom#default_action("source/vimpatches/*", "openbuf") バッ…
そんな話が 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>…
某 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|…
ちょっと編集したファイルを毎回端末開いてコミットするのが手間だったので適当にラッパーコマンドを定義してみた。 " Commit {コミットメッセージ} command! -nargs=* Commit echo system("git commit " . expand("%:p") ." -m " . shellescape(<q-args>)) Commit {</q-args>…
毎回設定する度に忘れるので覚書。 書いたあとに書いたことすら忘れそうだけど さて、例えば、次のようなシンタックスハイライトを設定するとします。 " aaa を highlight Error でハイライト syntax match Error /aaa/ 上の設定を行うと こんな感じにハイラ…
たまにハマる人がいるようなので簡単にまとめてみた。 候補順が逆 マークした後に上にカーソルが移動する -auto-resize になる(候補の数によって自動的にウィンドウの高さが変わる) また、下に split された場合は自動的にプロンプトが下に来ます。 プロン…
この間の Vimプラグイン読書会で話に出ていたので覚書。 さて、neosnippet.vim のマーカー(カーソルのジャンプ先)は syntax の conceal によって制御されています。 conceal を使用することでユーザ側が表示・非表示の制御を 'conceallevel' にて行うこと…
某所から突かれていろいろと直してました。 主に見た目的な部分を。 修正箇所は以下の通り。 表示形式をなるべく標準の quickfix に近づけた ハイライトの改良 w:quickfix_title を出力 yank アクションの対応(yy で候補のエラー内容をヤンク) 問題があれ…
これの 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…
さて、html ファイルから slim ファイルへ変換したい場合、gem の html2slim が利用できます。 $ gem install html2slim $ html2slim input.html output.slim こんな感じで変換元の html ファイルと変換後の slim ファイルを指定します。 [Vim script でテキ…
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 の設定を追加しました。 デフォルトでは pyflakes の方を優先して使用するようになっているので、pyflakes と flake8 の両方を入れている方は次のように設定してしている必要があります。 " filetype=python 時に使用するチェッカー…
みたいなのが某 issues に飛んできたので簡単に調べてみた。 とりあえず、以下のようには判定できるぽい感じ。 let name = "file" echo index(keys(unite#variables#all_sources()), name) != -1 ソースコードから直接拾ってきただけなので他にそれっぽい関…
以前、任意の区切り文字を入力して行結合を行う jplus.vim というプラグインを作ったのですが、それに行継続の \ を削除して行結合を行う機能を実装してみました。 [プラグイン] osyo-manga/vim-jplus - github NeoBundle "osyo-manga/vim-jplus" [使い方] "…
昨日、Lingr の Vim 部屋で出てきてたのですが Vim script の組み込み関数に complete() というのがあります。 :help complete() complete({startcol}, {matches}) *complete()* *E785* 挿入モード補完の候補を設定する。 挿入モードでのみ使用できる。CTRL-…
標準ライブラリでできる範囲で書いてみました。 [ソース] #include <tuple> template<typename T, typename Uniq> struct holder{ T value; operator T(){ return value; } holder& operator =(T t){ value = t; return *this; } }; template<typename T, typename Uniq, typename ...Args> T get(holder<T, Uniq>, Args... args){ return std::get</t,></typename></typename></tuple>
std::unique のデフォルトのデリータは何なのか調べてみたら次のように定義されているみたい。 template< class T, class Deleter = std::default_delete<T> > class unique_ptr; template < class T, class Deleter > class unique_ptr<T[],Deleter>; と、いうことでデフォ</t[],deleter></t>…
と、いうのが Lingr の C++ 部屋に貼られていたので覚書。 [ソース] #include <memory> #include <functional> #include <iostream> int main(){ auto p = std::unique_ptr<int, std::function<void(int*)>>{ new int{42}, std::default_delete<int>{} }; // deleter を設定 p.get_deleter() = [](int* p){ std::cout << "call d</int></int,></iostream></functional></memory>…
と、いうのが Lingr の C++ 部屋に貼られていたので覚書。 [ソース] #include <memory> #include <functional> #include <iostream> int main(){ auto p = std::unique_ptr<int, std::function<void(int*)>>{ new int{42}, std::default_delete<int>{} }; // deleter を設定 p.get_deleter() = [](int* p){ std::cout << "call d</int></int,></iostream></functional></memory>…
Boost 1.56.0 がリリースされました。 boost Version 1.56.0 結構久しぶりのリリース。 Align と Type_Index の 2 つが新しいライブラリとして追加されました。 Align: Memory alignment functions, allocators, and adaptors, from Glen Fernandes. Type_In…
某所で話題になって調べてみたんですが、以下の記事が参考になりました。 jedi.vim の popup_select_first が効かない - Memo これで動作するようになります。 ただ、jedi.vim 側の設定の仕組みがなんかおかしいような気がするのでもうちょい調べてみる必要…
久しぶりに Vim の complete-functions を書いていたんですが、知らなかった仕様にはまったので覚書。 さて、Vim でオレオレコード補完処理を行いたい場合は 'completefunc' や 'omnifunc' などのオプションにコード補完関数を設定して実現します。 function…
Bugs Fixed in Visual Studio 2013 Update 3 - Visual C++ Team Blog - Site Home - MSDN Blogs http://blogs.msdn.com/b/vcblog/archive/2014/08/04/bugs-fixed-in-visual-studio-2013-update-3.aspx 最近の Visual Studio 事情はよく知らないのだけれどだ…
class X{ int value_ = 42; public: auto value = accessor(this, &X::value_); }; みたいな感じで書きたかった。 [ソース] template<typename Class, typename T> struct accessor_impl{ Class* class_; T Class::* member; T operator ()() const{ return class_ ->* member; } void op</typename>…
brightest.vim にハイライトしない単語のパターンを設定できるようにしました。 [プラグイン] osyo-manga/vim-brightest [使い方] " アンダーバーから始まる単語はハイライトしない let g:brightest#ignore_word_pattern = '^_\k\+'
先日公開した brightest.vim ですが、公開後に色々と意見もらって特定のシンタックス上だとハイライトしない機能を実装してみました。if とか for とかそういうシンタックスはハイライトしたくない場合に有効です。 [プラグイン] osyo-manga/vim-brightest […