2012/03/29


ようやくリリースされました!
go1 released

We've just tagged a new Go release: go1.
Go 1 is a major release of Go that will be stable in the long term.
It is intended that programs written for Go 1 will continue to compile
and run correctly, unchanged, under future versions of Go 1.

The Go 1 release notes list the significant changes since the last
release and explain how to update your code:
        http://golang.org/doc/go1.html

To learn about the future of Go 1, read the Go 1 compatibility document:
        http://golang.org/doc/go1compat.html

Go 1 is available as binary distributions for the
FreeBSD, Linux, Mac OS X, and Windows operating systems.
To install a binary distribution, follow these instructions:
        http://golang.org/doc/install

If you prefer to build from source, follow these instructions:
        http://golang.org/doc/install/source

The Go team would like to thank all our contributors from the open
source community. We could not have done it without their help.
See the full list of contributors here: http://golang.org/CONTRIBUTORS

We also thank our users. We hope you enjoy Go 1.

Have fun. (And tell your friends! ;-)

Andrew

https://groups.google.com/forum/?fromgroups#!topic/golang-nuts/fVonEtwNSFc
初めてgo言語を触った時、C++よりも型が柔らかく、ネイティブコードへのコンパイル型言語なのにダックタイピングやgcを備える非常に柔軟な言語に感動を覚えました。いろんな可能性を秘めているし、C++よりも簡単なコードで立派なアプリケーションが書ける。そう思いました。(もちろんC++も大好きです)
リリースまでに送ったパッチは56個でした。主にWindowsのAPI周り、HTTPプロキシ処理の初期実装やソケットサーバのバグ修正、特に他のOSで先に実装された機能のWindows版の実装などをお手伝い出来ました。
golang-devチームにとっても僕にとってもgo1 releaseは一つの区切りでしか無いでしょう。今後もまた、パッチを送りつづけるでしょう。

質の高い言語をこんなにも短期でリリースしてしまったgolang-devチームに拍手を送りたいと思います。
Posted at by



2012/03/28


glidenoteさんがmemolistという簡素ながらも良くできたメモ取り用プラグインを作っています。
シンプルなメモ管理用プラグインmemolist.vimを作った - Glide Note - グライドノート

Octopress の記事を書くときに カスタムしたjekyll.vim を 利用していて、「新規作成」と「記事の管理」が非常に便利なので、 同じようなことが出来るメモ用プラグインを作ってみました。 ...

http://blog.glidenote.com/blog/2012/03/26/memolist.vim/
さらにFuzzyFinderとの連携記事もあがってます。
FuzzyFinderでmemolist.vimが進化した! - Glide Note - グライドノート

Recent Posts FuzzyFinderでmemolist.vimが進化した! シンプルなメモ管理用プラグインmemolist.vimを作った エンジニアのための時間管理術、自動化に関するまと...

http://blog.glidenote.com/blog/2012/03/26/memolist-fuzyfinder/
なかなか便利そうです。ただ僕は最近 CtrlP を使ってるので、こんな感じのを vimrc nに追加しました。 nmap ,mf :exe "CtrlP" g:memolist_path<cr><f5>
nmap ,mc :MemoNew<cr>
nmap ,mg :MemoGrep<cr>
,mf で CtrlP を使ったファイル一覧が表示されます。文字を打ち込んで絞り込みも出来ますし、<c-j><c-k> で候補を選ぶ事も出来ます。上記の記事の中にある様に migemo と組み合わせればもっと便利になるかもしれません。今のところファイル名を日本語で検索したいニーズが僕には無いので有効にはしていませんが。
,mc で新しいメモを作り、,mg でメモ検索を行います。文書は markdown 形式で保存されているので、なんならgithubにblogとしてポストしてしまっても良いかもしれません。
glidenoteさんに感謝です。
ちなみにファイル名の入力や検索のキーワード入力中にCTRL-Cでキャンセル出切る様にpull requestしておきました。
Posted at by




この記事は、Vim Advent Calendar 2011の記事です。欠番が出そうだったので、勝手ながら割り込ませて頂きます。

CtrlP.vim Vimを使って開発をする際、リポジトリ内のファイルにどうやってアクセスしていますか?NERDTree?vimshell?unite.vim?FuzzyFinder?

色んな方法があるかと思います。ただこれらは若干古かったりニュアンスが異なっていたり、物によっては開発に向かない物もあります。単純にファイルを選択するのであれば、それで事足りるでしょう。しかしながら本当に開きたいファイルを最短の方法で選ぶには、これまでの方法では時に無駄であったり、余計なお世話だったりもしました。
僕はバッファセレクタやファイルセレクタというのは使わない方なのですが、ちょっと前にこれを見つけて「おっ...よさげなインタフェース」と思った物があったので紹介しようと思います。

ctrlp.vim ÷ home

Full path fuzzy file, buffer and MRU file finder for Vim. » Written in pure Vimscript for MacV...

http://kien.github.com/ctrlp.vim/
ctrlp.vimの特徴は以下の通り。
  • pure vimscriptで書かれている
  • vimの正規表現を使った検索
  • MRU(Most Recently Used)ファイルモニタリングおよび検索
  • ルートディレクトリ検知
  • 複数ファイルの同時オープン
  • ファイルおよびディレクトリの作成
  • 開いているファイル上でのExコマンド実行(行や文字列へジャンプ、もしくは他の動作)
  • キャッシュと履歴を使ったクロスセッションと高速な初期化
  • マッピングとvimとの親和性
インストールは上記サイトのリンクを辿ってgithubの物をgit cloneするのが良いでしょう。
起動するにはその名の通り <c-p> をタイプします。すると画面下部にファイル一覧が表示されるのが分かると思います。初回は検索とキャッシュに時間が掛かりますが、次回起動時にはそのキャッシュを使って高速に起動します。
さて何か文字を打ってみて下さい。文字を打つごとにファイルが絞り込まれているのが分かるかと思います。
この文字は連続していなくても構いません。例えば /foo/bar/baz
/foo/bar/bar
この様なファイルが一覧されている場合に > fooz とタイプすると /foo/bar/baz
に絞り込まれます。候補を選ぶには <c-j><c-k> で移動出来ます。入力のヒストリは <c-n><c-p> で参照可能。絞り込まれたらエンターキーを押してファイルを開きます。恐らく開発で使用する場合、同名のファイルで拡張子のみが異なる事が多いかと思います。C++であればソースとヘッダ、あるフォルダ配下にあるcssファイル、バージョン番号が付いたファイルなど人間がおおよそ見当の付く入力を行えば自然とファイルがマッチするという良くできた検索になっています。

またgit等VCSリポジトリ上であった場合には検索の範囲がリポジトリ内に限られるという親切な設計になっています。
ですので開発プロジェクトのフォルダの中であればどこにいても目的のファイルを開くこと出来ます。
実行中に <c-r> をタイプすると部分一致検索モードから正規表現検索モードにスイッチします。入力した文字を正規表現パターンとしてファイルを検索出来ます。
もう一度タイプすると通常モードに戻ります。また <c-d> でフルパスモードからファイル名モードへ、<c-f> でMRUファイル検索、<c-b> でバッファ検索へとスイッチ出来ます。
入力欄で / もしくは \ はプロジェクトのルートフォルダに相当し、.. による親フォルダの参照も可能です。

そしてパターンの後ろに : を付与すると、一覧に表示されているファイル群にコマンドを実行する事が出来ます。
abc:45 であればファイル abc の45行目にジャンプ、abc:/my\:function でファイルabc内で見つかる my:function へジャンプします。
任意の複数のファイルを開くには、候補一覧で <c-z> を使ってマークし、<c-o> をタイプします。

これだけあれば、「ファイル一覧→選択→検索開始」というアクションを一度に、しかも複数のファイルに対して行う事が出来ます。

さて、例えば日本語のファイルにマッチしたくなったとしたらどうしたいですか?
ctrlp.vim には日本語ファイル名にマッチ出来る仕組みが入っています。
cmigemo をインストールし、以下の様に vimrc に追記します。
let g:ctrlp_use_migemo = 1
なお、cmigemo の辞書ファイル migemo-dict は以下の位置に配置しておく必要があります。
~/.vim/dict/migemo-dict もしくは以下の様にエンコーディング毎に格納しても良いです。
~/.vim/dict/utf-8/migemo-dict ctrlp.vim を起動して、<c-r> をタイプして正規表現モードにスイッチします。通常であればここに正規表現パターンを入力するのですが、ここに kanji の様にmigemoのクエリを入力出来ます。クエリは空白文字列で分割出来るので、例えば ore kyuuyo とタイプすると
俺の給与明細
「俺の給与明細.xls」をマッチさせる事が出来ます。

これさえあれば、仕事中に給与明細をvimで開く事が出来ますね!
Posted at by