std::getline を利用して任意の文字で文字列を分割する
知らなかったので覚書。
[コード]
#include <iostream> #include <string> #include <sstream> #include <vector> int main(){ std::string input = "homu,mami,mado"; std::istringstream iss(input); std::string str; std::vector<std::string> result; // , ごとに std::getline で文字列を読みこんでくる while( std::getline(iss, str, ',') ){ result.push_back(str); } for(auto&& str : result){ std::cout << str << std::endl; } return 0; }
[出力]
homu mami mado
とりあえず使いたい場合は便利そう。
Ruby の #tap の面白い挙動
Ruby の #tap
はレシーバをブロック引数に渡して、レシーバ自身を返すメソッドです。
x = 42 p x.tap{ |n| p n + n } # output: # 84 # 42
ブロック内でレシーバ自身を書き換えても書き換える前の値が返ってくる
この #tap
の面白い挙動なんですが、ブロック内でレシーバ自身を書き換えても書き換える前の値が返ってきます。
x = 42 p x.tap{ x = 3.14 } # => 42 p x # => 3.14
これはしらなかったなー。
Ruby で実行マシンのプロセス数を取得する
Ruby 2.2.0 で Etc.#nprocessors
というメソッドが追加されたのでそれを使えばよいみたい。
require "etc" p Etc.nprocessors # => 2
手元の環境だと2コアしかないのできびしい。
Vim 8.0 が 8月中にリリース予定
今朝、vim_dev の ML に告知がありました。
Vim 8 pre-announcement - vim_dev
Work on Vim 8.0 is coming close to an end. I hope version 8.0 can be released in about two weeks.
約2週間後にリリース予定らしいので予定通り進めば今月中にも Vim 8.0 がリリースされます。
Vim 7.4 のパッチ数も 2000 を超えて、『Vim 8.0 はまだか…』と思っていましたがついに来ましたね。
Vim 7.0 のリリースが 2006年5月なので、メジャーアップデートは実に10年ぶりとなります。
リリースに関する詳細は version8.txt を参照してください。
Vim でバッファ外のチルダ("~") の表示を無効にする
Vim 7.4.2213 で追加された EndOfBuffer
ハイライトグループを利用してバッファ外に表示されるチルダ("~"
)を無効にすることが出来ます。
[表示あり]
[表示なし]
highlight link EndOfBuffer Ignore
Vim 7.4.2213 でバッファ外の "~" の部分のハイライトを制御する追加された
Vim 7.4.2213 で EndOfBuffer
というハイライトグループが追加されました。
これはバッファ外の "~"
の部分のハイライトをハイライトするのに使用されます。
ここの部分
[設定例]
EndOfBuffer
は通常のハイライトグループと同じように使用できます。
highlight link EndOfBuffer Error
[注意点]
EndOfBuffer
は "~"
だけではなくてそのライン行全てに反映されるので注意してください。