2014-07-01から1ヶ月間の記事一覧

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

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] 現在の時刻で適当にハッシュ値を生成して…

clang-format plugin for Visual Studio

LLVM のサイトをあさってたら clang-format plugin for Visual Studio というものを発見した。 LLVM Snapshot Builds clang-format plugin for Visual Studio(ダウンロード) 気になるけどいま手元に Visual Studio 環境がないのでぐぬぬ。 誰か試してみて…

LLVM 3.5 は08月25日にリリース予定

The LLVM Compiler Infrastructure Project LLVM 3.5 のリリーススケジュールがトップページに記述されていました。 リリースまでのスケジュールは以下の通りです。 7月21日: Branch for 3.5 release 7月21日〜27日: Testing Phase I 7月28日〜8月03日: Fix …

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

vim

さて、プラグインで vital.vim を使用したい場合は :Vitalize コマンドを使用してプラグイン内に vital.vim を埋め込みます。 これによりプラグイン側で vital.vim に依存することなく vital.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>…

AngularJS と組み合わせてツイートする内容を動的に変更するツイートボタンをつくる

さて、サイト内にツイートボタンを埋め込みたい場合は公式のジェネレータを使用するのが簡単です。 しかし、ここで生成したコードではページを開いたあと(ツイートボタンを表示したあと)にツイート内容を変更することができません。 そこでツイートボタン…

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" が挿…

std::initializer_list には operator[] がない

C++

なんか前も言っていたような気がしないでもないんですが、std::initializer_list には operator[] が定義されてないんですね。 基本的には range-based for 使っているので気にならないんですが、この前ランダムアクセスしようと思ったらエラーになって面食…

Boost.ScopeExit 使ってみた

そういえば、使ったことがないので試してみた。 Boost.ScopeExit を使用すると『そのスコープを抜けるときの処理』を記述する事ができます。 例えば、スコープの最初の方に『最後に呼ばれる処理』みたいなことを定義する事ができます。 [ソース] #define BOO…

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 コマンドに渡せばよいのですが、毎回これを打つのもめんどくさ…

HTML から Slim に変換する

HTML から Slim に変換したい場合は html2slim が利用できます。 [インストール] $ gem install html2slim $ html2slim --version html2slim 0.1.0 [使い方] $ html2slim index.html index.slim [index.html] <html> <head> <title>Test</title> </head> <body class="test"> <div class="container"> <h1> Hello, Slim world. </h1> </div></body></html>

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

vim

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

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

vim

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

HTML を生成するテンプレートエンジンの Slim を使ってみた

いま、HTML を書くときは Haml を使用して生成しているんですが、同様のテンプレートエンジンに Slim というのがあるので試してみました。 [インストール] $ gem install slim $ slimrb --version Slim 2.0.3Slim の実行コマンドは slim ではなくて slimrb …

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>…

C++ で中身が同じ構造体を相互変換する

みたいな話が Lingr の C++ 部屋で出てた。 そういうことを実現したい場合は Boost.Fusion を使うのが現実的かな? (reinterpret_cast で無理やり変換してしまうという手が無いわけではないのだけれどさすがにアレ過ぎるので。 [ソース] // 構造が全く同じ…

遊ぶようの github organization をつくってみた

最近…でも無いんですが、github の org の存在を教えてもらいました。 新しい github のページが欲しい場合、その度にアカウントを作る必要があると思っていたんですが、org で簡単に作れるんですね。 これは便利。 そんな感じで遊ぶようの org つくって Ang…

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] 以前は中央を短縮していたんですが、最新版では右側を短縮するようになりました。 ちなみに、以前…