2009-01-01から1年間の記事一覧

Prime::prime?

Ruby 1.9で require 'prime' すると使える Prime.prime? や Integer#prime? 、見ての通り素数判定メソッドなんだけど、負数を含む 1 以下の値を渡すと true が返ってくる。 何でやねん!と突っ込みながら最新のソースを見てみると、修正した跡を発見、が、何…

Enumerable#each_with_indexが便利すぎる

今更かもしれないけど、感動したのでメモ。リストをeachなどで回すとき、インデックスも一緒に欲しいと言うのはどの言語でも往々にしてある。Javaで書いている時なんかせっかく拡張forで書こうとしたけどしぶしぶ普通のforに戻す、とかよくやる。 そんなとき…

任意単位のDate#step

が欲しくなったので、以下のようにした。 class Date def step(limit, step = 1, method = :next_day) unless block_given? return to_enum(:step, limit, step, method) end da = self op = %w(- <= >=)[step <=> 0] while da.__send__(op, limit) yield da…

Re: コミットした変更を元に戻す - yuum3のお仕事日記

git

コミットした変更を元に戻す - yuumi3のお仕事日記 レポジトリーを丸コピー。 コミットした変更を元に戻す - yuumi3のお仕事日記 % git clone % git branch prototype2 prototype1 -- プロトタイプ1からプロトタイプ2のブランチを作成 % git checkout protot…

Vim勉強会 in MTLに参加してきた

Vim勉強会 in MTLに参加してきた。当日の会話ログはこのあたり。 相変わらずMac率が高くてすっかり囲まれてしまった。ものすごくアウェー感。以下感想などを簡単に。 第一部 勉強会 便利な Vim スクリプトや Tips の紹介 - id:iandeth タイトル通り便利な Vi…

rmコマンドをゴミ箱に置き換える

と言うのが私のTODOリストにずいぶん前からあったんだけど、当初はちょいちょい何か書く予定だったんだけど、いいものを見つけたおかげで楽に達成できた。で、見つけたものと言うのがtrash-cliというもの。 インストール trash-cliはPythonスクリプトなので…

レジスタの変更タイミングまとめ

vim

あまりにも複雑怪奇すぎて混乱したのでまとめ。 わかりにくかった部分だけまとめた。全レジスタを網羅しているわけではないので注意。 前置き レジスタの指定 以下で出てくるレジスタを指定するとは、 ノーマルモードで "x (xはレジスタ名)を前置する。 :del…

guicolorscheme.vim を大幅に改良した

vim

guicolorscheme.vimと言うプラグインがある。 これを入れると、88色か256色のターミナルでGUI用に作られたカラースキームを使用できる。 :GuiColorScheme {color_name} と言うコマンドでカラースキームを読み込むと、その場でカラースキームを解析して適用し…

Project Eulerを始めてみた

About - Project Euler 数学の問題をプログラムを使って解くのが目的。 ユーザ登録すると解答できて、自分の解答状況がわかる。解答するのは答えの数字だけでソースを提出する必要はない。お好きな言語でOK。 こういうの前からやってみたかったんだけど、な…

Vim で JavaScript の e4x をハイライトする

vim

~/.vim/syntax/javascript.vim syn include @javaScriptXML syntax/xml.vim syn region javaScriptE4X matchgroup=xmlTag start="<\z(\k\{-}\)>" end="</\z1>" contains=@javaScriptXML unlet! b:current_syntax start= の部分をわざわざ \k にしてるのは、マルチ…

fnameescape()は使うな

vim

Vim 7.1.299 で fnameescape() なる関数が追加された。これは :edit などファイル名が必要な箇所でファイル名をエスケープしてくれる関数。 例えば VimM#1.txt と言うファイルを開きたいとする。この場合、 :edit VimM#1.txt などとしてもうまく開けない。こ…

Re: function's scope ? - KBDAHOLIC - やぬすさんとこ

vim

KBDAHOLIC - やぬすさんとこ function Func() と function s:Func() は同義。後者の形式で定義しても によるアクセスは可能です。見やすいので後者を推奨。 :command や :autocmd では s:Func() でアクセスできます*1。 を使う必要はないです。 は :map と :…

SKKやめました

skk

SKKを使って見ていたわけだけれども、色々あってSKKを使うのやめました。 ちなみに私が使っていたのは主にSKK-IME。と、skk.vimを少々。 理由はいくつかある。列挙してみる。 タイプ数が多くなる これは宿命ですね。どうしようもないと思う。 単漢字に弱い …

'encoding' オプション

vim

'encoding' and iconv - KBDAHOLIC - やぬすさんとこ ここ見てて思ったこと。:help 'encoding' によると、 It should normally be kept at its default value, or set when Vim starts up. だそうなので、 'encoding' オプションは基本的に変更するのは良く…

BrainF*ck in Vim

vim

http://d.hatena.ne.jp/kei-os2007/20080719/1216440837 BrainF*ck の Vim 実装がこちらで公開されているのだが、問題点がいくつかある。 ループの入れ子ができない 出力が1文字ごとに改行される で、勉強がてら書き直してみた。 フルスクラッチです。まあこ…

勝手にプラグインを比較してみるテスト

vim

今使ってるVimプラグインで、似たような機能を提供するもの同士を比較してみるテスト。あくまで個人的な比較なので参考程度に。と言いたいけど細かい説明相当端折ってるので参考にもならないかも。 ここで挙げている特徴はもう一方に対する特徴であり、もう…

グローバル変数の汚染に注意

vim

Vim プラグインを書く際、使用する変数は可能な限りスクリプトローカルを使い、グローバル変数はプラグインの設定のみに使用するのが望ましい。スコープをなるべく小さくするした方が良いと言うのはVimスクリプトに限った話ではないだろう。 が、Vimスクリプ…

Y Combinator in Vim

vim

つい最近 Y Combinator なるものの存在を知った。理解を深めるために、試しに自分で書いてみることにした。…Vimで。 無名関数 そもそもVimでは無名関数は使えないので正確には Y Combinator とは呼べないのかもしれないけれど、まあそれっぽい動きをするもの…

puttyでリモートからWindowsのクリップボードにコピー

できる patch を id:guyon が作ってくれた。 id:guyon++。 PuTTYを使ってリモートのシェル操作でWindowsのクリップボードにテキストをコピーする - Guyon Diary 素晴らしすぎる。素晴らしすぎるので少し補足など。 winclip コピペできるVer. #!/bin/sh echo …

Gitはファイルの移動を追跡できない

git

Gitのリポジトリ内のオブジェクトについて知っている人ならば知っていると思うが、Gitはリポジトリをコミット間の差分ではなくスナップショットの連続として扱っている。つまり、コミットする前と後で「何をどうした」を記録しているわけではなく、 Before-A…

WebDAVに対してpush/pullする

カテゴリがgitになってますが、予め言っておくとあんまりgit関係ないです。以前GitのHTTP認証に絶望したわけだけど、WebDAVってのは大体認証をかけるわけで、しかも私の場合認証付きHTTP proxyを通らないといけない環境*1にいたりすることもあるわけです。 …

Rubyの改行

最近になってRubyを勉強し始めたのだれど、不可解な現象に遭遇した。私は何かとメソッドチェインを繰り返す癖があるので、油断するとすぐに1行が長くなってしまう。 で、これはイカンと適当なところで改行を入れるようにしているのだけど、ご存知の通りRuby…

tabrecent.vimを書いてみた

vim

一つ前のウィンドウに戻るにはpで可能でj,k,h,l等を気にすることなく移動できるので便利なのですが,タブに対しては該当する機能がありません. 2009-01-25 - 日々是鍛錬 私も同じような機能を実装してプラグイン化しようかと思っていた時期がありましたが、…

Windowsで:set encoding=utf-8する方法

vim

Vimの'encoding'オプションはVimが内部で扱うエンコーディングを設定する。この値がcp932やsjisなどだと、ユニコード文字が表示できない。今時ユニコード文字の表示なんてメモ帳でもできる。メモ帳に負けていいのか!否!と言うわけで是非とも:set encoding=ut…

半角カナが入力できない

skk

風の噂によると、どうやらSKKIMEでは、でいわゆる半角カナモードになるらしい…んだけど、ならない。押しても反応なし。 色々調べたり試したりしたところ、どうやらキーマップの設定を変更してユーザ定義にしてしまうと使えなくなってしまう模様。標準だと使…

sectioncategoryモジュール

今のデザインだと右に出てる、カテゴリの一覧を表示するモジュール。 前に古い日記を弄ってその他カテゴリをmiscに変えたんだけど、全然反映される気配がない。 どうやら新規投稿にのみ反応して古い日記の更新には関与しない模様。 それってどうなのよ。バグ…