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

C++ で文字列の繰り返し

C++

某所で少し話題になったのだけれど、例えば Ruby だと puts "homu" * 10 # => homuhomuhomuhomuhomuhomuhomuhomuhomuhomu みたいな感じで文字列の繰り返しを書けるのですが、C++ だとどうするのが楽か、という問。 とりあえず、* 演算子でできるように書いて…

Vim Advent Calendar 2013 86日目: neovim に関する記事をまとめてみた

vim

この記事は Vim Advent Calendar 2013 86日目の記事になります。 担当者と連絡が取れなかったので軽めの代替記事になります。 さて、先週辺りから Vim 界隈や Twitter あたりで話題になっている neovim ですが、いくつか日本語記事も出てきているようなので…

Vim Advent Calendar 88日目: 誤った goto 文で到達しないコード箇所を直ちに検知する方法

vim

この記事は Vim Advent Calendar 2013 88日目の記事になります。 元ネタ 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…

libclang の Python binding を使用する 〜 Type 編〜

前回からすっかり時間があいてしまいましたがまだ続けますよ。 決して忘れていたわけではない 前回までは Cursor について書いていましたが、今回は型情報について簡単に書きます。 Cursor からその位置の型情報を取得する事ができます。 [ソース] # -*- cod…

Vim script の getbufvar() 時にデフォルト値を設定したい場合

vim

と、いう機能は以前 Patch 7.3.831 で組み込まれたのですが、Vim script でがんばる方法。 なにかいい方法がないかと考えていたら上記の Issues で mattn さんが書いていました。 以下のように getbufvar() に空の文字列を渡すと b: 相当が返って来るらしい…

Vim script でリストをシャッフルする

vim

簡単に書いてみた。 乱数生成は vital.vim で。 [ソース] let s:random = vital#of("vital").import("Random.Xor128") call s:random.srand(localtime()) function! s:rand() return s:random.rand() endfunction function! s:shuffle(list) let list = a:li…

Ruby で github のリポジトリの最新のコミットハッシュを取得する

vim

だいぶ前になりますが Lingr で raa さんに教えてもらったので覚書。 Ruby で github のあれこれを取得する場合、Octokit を利用するとよさそう。 [ソース] require 'octokit' # リポジトリの最新のコミットハッシュを取得 puts Octokit.list_commits("osyo-…

Vim Advent Calendar 2013 83日目: switch.vim で文字列リテラルを切り替える

vim

この記事は Vim Advent Calendar 2013 83日目の記事になります。 元ネタ 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…

marching.vim のコマンドオプションの設定方法を変更した

vim

C++ のコードを補完を行う marching.vim なのですが、C++ 以外の言語で動作させる場合にオプションの設定方法がまずかったので少し変更しました。 [以前の設定] " 言語(filetype)に関係なく全ての言語で使用されていた let g:marching_clang_command_optio…

Vim Advent Calendar 2013 81日目: vimfiler.vim でバッファ上でファイル名を編集する

vim

この記事は Vim Advent Calendar 2013 81日目の記事になります。 一瞬、空白が空いたような気がしますが気のせいです。 書きたい方がいれば今のうちですよ!! 今回は『vimfiler.vim にこんな機能があったなんて!!』というネタ。 さて、わたしは vimfiler.…

jekyll server で 『invalid byte sequence in Windows-31J〜』とエラーになった時の対処方法の別解

前回、同じ問題で $ set RUBYOPT=-EUTF-8とすれば解決すると書いたのですがそれの別解です。 Lingr で crazymaster さんに教えてもらいました。 http://lingr.com/room/vim/archives/2014/02/16#message-18366809 と、いう風に環境変数ではなくて _config.ym…

Vim Advent Calendar 2013 79日目:Vim の○○○の機能がいつ実装されたかを手軽に調べる方法

vim

この記事は Vim Advent Calendar 2013 79日目の記事になります。 さて、Vim を使用していると『あれ、この機能っていつ追加されたっけ?』と思うことが稀によくあります。 特にプラグインなどを作成している場合はサポートする Vim のバージョンに関わってく…

jekyll server で 『invalid byte sequence in Windows-31J〜』とエラーになった時の対処方法

2回ぐらい嵌ったので覚書。 jekyll server を実行した時に $ jekyll server 〜〜〜エラーいっぱい〜〜〜 Liquid Exception: invalid byte sequence in Windows-31J in archive/001.md error: invalid byte sequence in Windows-31J. Use --trace to view bac…

make_overloaded_function 使ってみた。

前回の記事で『関数の型を書くのがめんどくさい』と書いたら id:RiSK さんから『make_overloaded_function があるよ』とコメントで教えて頂いたので試してみました。 [ソース] #include <boost/functional/overloaded_function.hpp> #include <boost/lexical_cast.hpp> #include <string> #include <iostream> std::string to_string(int n){ retur</iostream></string></boost/lexical_cast.hpp></boost/functional/overloaded_function.hpp>…

Vim Advent Calendar 2013: KaoriYa 版 Vim の +migemo を試してみた

vim

この記事は Vim Advent Calendar 2013 76日目の記事になります。 バレンタインデーネタとか全くないです。 さて、最近 migemo でインクリメンタルサーチしたいなーと思っていたんですが KaoriYa 版 Vim にそういう機能が組み込まれているそうなので簡単に試…

Boost.Functional/OverloadedFunction を試してみた

以前から気になっていたんですがやっと試してみました。 OverloadedFunction を使用すれば複数の関数を1つの関数オブジェクトにまとめる事ができます。 [ソース] #include <boost/functional/overloaded_function.hpp> #include <boost/lexical_cast.hpp> #include <string> #include <iostream> std::string to_string(int n){ return boost::lexi</iostream></string></boost/lexical_cast.hpp></boost/functional/overloaded_function.hpp>…

Vim Advent Calendar 2013: :NeoBundleLazy したプラグインをフォーカスが外れている時に自動的に読み込む

vim

この記事は Vim Advent Calendar 2013 74日目の記事になります。 元ネタ: http://lingr.com/room/vim/archives/2014/02/11#message-18320930Lingr の Vim 部屋で上記のようなやりとりがあったのですが、簡単に実装してみました。 ちなみに NeoBundleLazy と…

libclang の Python binding を使用する 〜 referenced 編〜

前回から少し時間があきました。 前回は definition に関する記事を書きました。 今回は referenced について書きます。 referenced は前回紹介した definition と似ており定義位置を返します。 definition との違いは definition が宣言のみの場合は None …

Vim Advent Calendar 2013:コマンドラインウィンドウで表示される履歴の行数を減らす

vim

この記事は Vim Advent Calendar 2013 72日目の記事になります。 vimのメモリ使用量を26分の1に削減した - pockestrap わたしも history の値は大きいので気をつけたいですね。 さて、history の値を大きくしている場合、他にも問題が出てきます。 それはコ…

middleman で構築したサイトを GitHub Pages で公開するまでの流れをまとめてみた

@supermomonga さんに教えてもらいながら middleman で構築したサイトを GitHub Pages で公開する事ができたので、その手順をまとめておきます。 デプロイとかめんどくさいと思っていたんですが、実際やってみたらめちゃくちゃ簡単でした。 [必要なもの] git…

本日 21時から第3回 Vimプラグイン読書会を行います

vim

再掲。 本日の 21時から第3回 Vimプラグイン読書会を行います。 [概要] 日時:2月8日21時〜 読むもの mattn/unite-mcdonalds osyo-manga/unite-fold 場所:Lingr の Vim部屋 unite-source の作り方などが気になる方は参加してみるとよいと思います。

Vim Advent Calendar 2013 : Vim で Haml を書くときに quickrun.vim を利用したらちょー捗った話

vim

この記事は Vim Advent Calendar 2013 69日目の記事になります。 最近、Vim で haml を書く機会があったのですが、quickrun.vim を利用したら haml を書くのがちょー便利になったのでまとめておきます。 [HTML を Haml に変換する] Haml を書いている時に HT…

Ruby と Python を少し使ってみての感想

去年は Ruby、年末辺りから Python を少し使っていたのでそれぞれの個人的な感想をまとめてみるなど。 両方共ガッツリと学習したわけではないのでボケてるかもしれませんが。 [Ruby] Lingr の bot をつくるときに使用 Sinatra + heroku で Web サーバの運用 …

Vim script でハッシュ値を生成する

vim

たまーーに Vim script でハッシュ値を扱いたいと思うことがあります。 そういう時は 7.3.816 以降であれば sha256() 組み込み関数を利用すればハッシュ値を生成することができます。 [ソース] echo sha256("homu") echo sha256("mami") echo sha256(1 + 2) …

Vim の :substitute の \= で除算を記述する

vim

Vim の :substitute では、 " 行末に列数を追加する :%s/\(.*\)\zs$/\=len(submatch(1))/g のようにして \= を記述すると以降の文字列を式として評価されます。 [問題] 次のように除算(/) を計算しようとするとうまく動作しません。 :%s/\(.*\)\zs$/\=len(su…

2月8日(土)21時から第3回 Vimプラグイン読書会を行います

vim

今週末の2月8日(土)21時から第3回 Vimプラグイン読書会を行います。 [概要] 日時:2月8日21時〜 読むもの mattn/unite-mcdonalds osyo-manga/unite-fold 場所:Lingr の Vim部屋 今回読むプラグインは2つとも unite-source になります。 unite-mcdonalds …

KaoriYa 版 Vim 7.4.161 がリリース

vim

Vim 7.4.161 (2014/02/02版) 配信 — KaoriYa 久々のリリース

HTML から haml に変換する処理を quickrun.vim に追加した

vim

最近ちょっと haml のコードを書くことがあったので html2haml を使用して HTML から haml に変換するような設定を quickrun.vim に追加してみた。 [html2haml のインストール] $ gem install html2haml [quickrun.vim の設定] " HTML のデフォルトの :Quick…