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

Boost.Signals2 で false を返すと disconnect する

と、いうのを書きたかっただけ。 [ソース] #include <boost/signals2.hpp> #include <iostream> template<typename F, typename ...Args> boost::signals2::connection connect(boost::signals2::signal<void(Args...)>& sig, F func){ auto connecter = [=](boost::signals2::connection const& connection, Args... args){ if( !func(ar</void(args...)></typename></iostream></boost/signals2.hpp>…

Vim Advent Calendar 2013 150日目:Vim で任意の列をハイライトする

vim

この記事は Vim Advent Calendar 2013 150日目の記事になります。 参加者募集中です。 Vim には \%v で任意の表示列目にマッチする正規表現があるのですがそれを利用して任意の列をハイライトするようなスクリプトを簡単に書いてみました。 " 使い方 " " ハ…

unite-function-list

vim

:Unite function……ではなくて、:help function-list を unite.vim で出力したい。みたいな話があったので簡単に書いてみた。 let s:source = { \ "name" : "function-list", \} function! s:get_functionlist(help) if !filereadable(a:help) return [] endi…

Vim Advent Calendar 2013 148日目: Vim 7.4.260 から g: から始まる関数名がエラーになるようになりました

vim

の記事は Vim Advent Calendar 2013 148日目の記事になります。 参加者募集中です。 さて、このブログでも何回か記事にしたんですが、Vim 7.4.260 にて g: から始まる関数名がエラーになるようになりました。 これは Vim 側のバグで g:foo() のような関数名…

Ubuntu に boost を入れた

とりあえず、自前で入れるのがちょっとめんどくさかったので apt-get で。 $ sudo apt-get isntall libboost-dev 特にパスを設定する必要もなくこれで boost が使えるように。 ただ、Ubuntu 13.10 だと Boost 1.53 とちょっと古めなので自前で最新版を入れて…

foreman で guard と sinatra を実行した時に正しくプロセスを終了させる

関連:Webアプリのモックアップ作業土台を作る その1 - cu39's diary 上記の記事を参考にして sinatra を liverealod にしてみたんですが、1箇所だけ気になる点があったので覚書。 上記の記事では Procfile に guard: bundle exec guard application: bundle…

Vim Advent Calendar 2013 の今後について

vim

Twitter でもちらっとツイートしていたんですが、Vim Advent Calendar 2013 の今後について。 さて、去年の12月から続けてきた Vim Advent Calendar 2013 ですが最近はスケジュールに穴が開いてしまうことが多くなってきました。 さすがにこのままの状態で続…

Ubuntu の IM を fcitx に変更した

さすがに iBus だと誤爆が多すぎたので IM を fcitx に変更してみました。 Vim 上での日本語入力はこんな感じです。 入力中は Vim 上には挿入されず決定した時点で挿入が行われます。 これはこれでだいぶ気持ち悪いんですがまぁ誤入力してしまうよりはマシで…

vimshell で実行中のプロセスを中断させる

vim

vimshell で foreman 実行させた時にどうやって中断させるのかわからなかったので覚書。 インサートモードで を入力すると割り込みが発生してプロセスが終了します。 個人的にはノーマルモードでもインサートモードと同様に中断したかったので以下のようにマ…

Vim Advent Calendar 2013 142日目: Vim 初心者を脱出するために行う6つのこと

vim

少し遅れましたがこの記事は Vim Advent Calendar 2013 142日目の記事になります。 今回は Vim を使っているけどあんまり使えこなせていないなーという人向けの記事になります。 1.Twitter で Vimmer をフォローする 熟練の Vimmer で Twitter をやっている…

Ubuntu で Vim をビルドした

元々は vim-gnome を使っていたんですが、最新版を使いたかったので自前でビルドしてみました。 Vim のビルドは初めてだったんですが、vim-jp に載っている手順を参考にしたので特に問題なくビルドする事が出来ました。 vim-jp 便利。

Vim Advent Calendar 2013 140日目:gtk 環境だと remote_foreground() がうまく動作しない

vim

この記事は Vim Advent Calendar 2013 140日目の記事になります。 書きたい人募集中ですよ!! さて、今回はすごくマイナーなネタでも。 [gtk 環境だと remote_foreground() がうまく動作しない] Vim のマイナーな関数に remote_foreground() というのがありま…

Go 言語でダックタイピング

言語仕様を少し読んで書いてみた。 [ソース] package main import( "fmt" ) type Accessor interface{ GetText() string } func Say(acsr Accessor){ fmt.Println(acsr.GetText()) } type Inu struct{ name string } func (self *Inu) GetText() string{ ret…

Vim Advent Calendar 2013 138日目:neobundle.vim でリポジトリ内の任意のディレクトリをプラグインとして読み込む

vim

この記事は Vim Advent Calendar 2013 138日目の記事になります。 もう殆ど死にそうになっているんですが、ネタがあったので書こうかな、と。 (まぁ簡単なネタですが。 他にも書きたい人がいれば書いてもいいんですよ? [neobundle.vim でリポジトリ内の任意…

Python で iTunes Music Library.xml を読み込む

「iTunes Music Library.xml をパースしたい」みたいな話が出ていたので簡単にやってみた。 [ソース] # -*- coding: utf-8 -*- import plistlib file = "iTunes Music Library.xml" xml = plistlib.readPlist(file) # プレイリストの一覧を出力 print "=== …

Vim Advent Calendar 2013 136日目:Vim script で関数のデフォルト引数を設定したい

vim

この記事は Vim Advent Calendar 2013 136日目の記事になります。 本来は昨日の記事として書こうと思っていたんですが、諸事情により今日の記事に…。 そんなわけで「昨日のVAC書いてもいいよー」という人募集中です。 Advent Calendar とは一体… [関数の引数…

C++03 で final

C++

と、いうイディオムがあるという事がここら辺にかかれていたので試してみた。 [ソース] template<typename T> class final{ ~final(){} friend T; }; struct X : virtual final<X>{ }; struct test : X{ }; int main(){ // OK X x; // ERROR // test t; return 0; } 思いつ</x></typename>…

Ubuntu のファイラ(Nautilus)で BackSpace キーで階層を戻る機能を有効にする

できなくて地味に不便だったので有効にする方法を調べてみた。 ~/.config/nautilus/accelsに (gtk_accel_path "<Actions>/ShellActions/Up" "BackSpace")を追加すれば次の Nautilus の起動から BackSpace キーで階層を戻るようになります。 [参照] http://d.hatena.ne</actions>…

neobundle.vim で gist のファイルを読み込む

vim

IME 周りがアレなので kaoriya さんのこれを入れようと思ったのですが、スクリプトが gist で配布されていました。 こういう場合、neobundle.vim でどうやって取得するのかなーと思ったら次のように設定すればよいみたいです。 NeoBundle 'gist:koron/599286…

Vim script で条件にマッチする要素を取得する

vim

いわゆる find 的な機能。 一応、組み込み関数で index() というのがあるんですが、これだとリストにしか対応していない & 式が渡せないという欠点があります。 echo index(["mami", "homu", "mado"],"homu") " => 1 " 式は渡せない echo index(["mami", "ho…

ubuntu で Vim とシステムのクリップボードを共有する

vim

まだ ubuntu に慣れていなくて四苦八苦していますこんにちわ。 概ね動作に問題はないのだけれど細かいところを見るとじわじわストレスが溜まっていく…。 とりあえず、Vim はだいたい動作するようになってきました。 IME 周りがだいぶうんこだけど そんな中、…

Ubuntu はじめました

はじめてました。 以前も VMware に入れて使ったことはあったんですが、本格的に使ってみたのはこれがはじめてですね。 まだブラウジング環境ぐらいしか整っていないんですが今のところ大きな問題はなさそう。ネットワーク周りも特に問題なく接続できたし。 …

Vim Advent Calendar 2013 129日目:C++ の Vim でのコーディング風景をキャプチャしてみた

この記事は Vim Advent Calendar 2013 129日目の記事になります。 ただやりたかっただけというネタ。 C++ のコーディング風景をキャプチャしてみるなどしてみました。 キャプチャした動画を見なおしているといかに雑にコーディングしているなのかがわかる […

unite-vimpatches で日付を表示する

vim

そんな要望があったのですが、そういう場合は本体で対応するよりは unite-filters 使ったほうが汎用性とカスタマイズ性が高いかなーって。 と、いう事で日付も一緒に表示したい場合は以下の様な unite-filters を使用すると便利です。 [ソース] let s:filter…

今週末の 4月12日(土)21時から第5回 Vimプラグイン読書会を行います

vim

今週末の 4月12日(土)21時から第5回 Vimプラグイン読書会を行います 日時: 2014/04/12 Sat 21:00 - 場所: LingrのVim部屋 読むプラグイン: vim-jp/vital.vim 目的: Vim scriptでリスト、文字列、辞書の効率的かつ汎用的な扱い方を学ぶ 具体的には Data.Lis…

Vim Advent Calendar 2013 126日目:Vim で一時的に変更したオプションの値を安全に戻す

vim

この記事は Vim Advent Calendar 2013 126日目の記事になります。 さて、プラグインなどを作っている場合、オプションなどの値を一時的に変更したい事があると思います。 function! Func() " 一時的に値を変更する let old_selection = &selection let &sele…

over.vim の 時に改行コードを "\n" で挿入するようにした

vim

こちらも要望があったので実装。 以前は改行コードは "^M"(もしくは "^@")を挿入していたのですがこれを "\n" で挿入するようにしました。 また、この文字は次のように g:over#command_line#paste_filters で制御する事が可能です。 " 改行コードを "\n" …

over.vim で 時にエスケープする文字を設定できるようにした

vim

そんな要望があったので実装しました。 g:over#command_line#paste_escape_chars にエスケープする文字を設定する事ができます。 [設定] " エスケープする文字を設定 let g:over#command_line#paste_escape_chars = '/.*$^~' [ヤンクしたテキスト] $foo.bar …

C++ FAQ

C++

以下の様なページがあったので覚書。 FAQ : Standard C++ ひと通り目を通したいけど量+英語でなかなか大変そう。

Vim 7.4.218 で組み込み関数 uniq() が追加された

vim

Vim 7.4.218 で組み込み関数 uniq() が追加されました。 これは同じ値が連続して並んでいる場合にそれらを1つにまとめる為の関数です。 ですので同じ値が連続している場合のみ削除され、連続していない場合はそのままになります。 echo uniq([3, 1, 1, 3, 3,…