タグ

ブックマーク / rubikitch.hatenadiary.org (21)

  • Emacsからgitのブランチを扱うgit-dwim.elをリリース - http://rubikitch.com/に移転しました

    Emacsを書きました】 gitはブランチが強力です。 ブランチは単なるポインタなので、gitではブランチの積極的な利用が推奨されています。 トピックブランチ特に「トピックブランチ」は便利なブランチ利用法です。 作業前に特定の作業用のブランチを切り、無事に実装できたらmasterにマージ(リベース)し、ブランチを削除する方法です。 トピックブランチを切ることで、現在の目標を明確にすることができます。 また、緊急の修正をする場合はあわてずに一旦masterに戻って修正し、再びトピックブランチで作業することができます。 トピックブランチについては http://progit.org/book/ja/ch3-4.html が詳しいです。 トピックブランチを作成するnewtopicとういう名前のトピックブランチを作成するには、以下のコマンドを使います。 $ git checkout -b ne

  • Emacs Lisp基礎文法最速マスター - http://rubikitch.com/に移転しました

    基礎文法最速マスターブームにのっかってみる。Ruby基礎文法最速マスターをだいたいEmacs Lisp(elisp)に置き換えてみる。 Emacs LispはEmacsで使われているLisp方言のひとつだ。他の言語をある程度知っている人はこれを読めばEmacs Lispの基礎をマスターしてEmacs Lispを書くことができるようになるかもしれない。無保証ではあるが。 ある程度はCommon Lispにも応用できると思うよ。 更新情報 [2010/02/03] 注釈の誤りを修正。 let*について加筆。 基礎 対話的にEmacs Lisp式を評価する Emacsを起動したときに生成されている、スクラッチバッファ(*scratch*)を使うと、Emacs Lispの式を簡単に評価することができる。M-Tabで補完できるぞ。 式を書いたらC-jを押すと、式の値が出てくるぞ。 (+ 1 3) 4

    Emacs Lisp基礎文法最速マスター - http://rubikitch.com/に移転しました
  • そろそろEmacsのウィンドウについて一言いっとくか - http://rubikitch.com/に移転しました

    Emacsはひとつの窓(ふつうの意味の「ウィンドウ」、Emacs用語の「フレーム」)の中に複数の表示領域(Emacs用語の「ウィンドウ」)を持つことができる。そして、ヘルプ等を表示させる場合はEmacsが勝手に画面を分割して別のウィンドウに表示させる。まぁ、Emacsを使ってるならみんな経験してることだ。 ワイドディスプレイが台頭する中、フレームの横幅はどんどん長くなっている。Emacs22までだと強制的に上下分割されてとても使いづらかった。Emacs23になったら横幅にあわせて、上下分割か左右分割か判断してくれるようになった。横幅が広いと左右分割してくれる。表示行数が減らないのでこれは嬉しい。画面の有効活用だ。 Emacs22で左右分割させたいならば、M-x install-elisp-from-emacswiki display-buffer-for-wide-screen.elしてく

    そろそろEmacsのウィンドウについて一言いっとくか - http://rubikitch.com/に移転しました
  • Rubyで簡単にエスケープシーケンスによる色付け→timestampスクリプト改良 - http://rubikitch.com/に移転しました

    エスケープシーケンスで色をつけるのは端末アプリケーションだと定番だ。 Rubyで色つき文字を出す場合、わざわざエスケープシーケンスを書く必要はない。Term::ANSIColorというライブラリを使えばいい。 インストールは「gem install term-ansicolor」で。 require 'term/ansicolor' class String include Term::ANSIColor end というコードを入れておけば、文字列に色名メソッドなどが定義されててわかりやすく記述できるぞ。こんなふうに。 print "red bold".red.bold, "\n" timestampコマンドを色付きにしてみる [update] <2010-03-30 火> シグナルで終了したときには、プロセスオブジェクトを表示してみた。 任意のプログラムを実行するとき開始/終了時のタイム

    Rubyで簡単にエスケープシーケンスによる色付け→timestampスクリプト改良 - http://rubikitch.com/に移転しました
  • anything.el による補完時に補完候補をその場で表示する anything-show-completion.el をリリース - http://rubikitch.com/に移転しました

    anything.el による補完の改善すべき点=視線の移動 - http://rubikitch.com/に移転しました にて anything.el による補完は視線の移動がつらいという意見があったので、選択している候補をその場で表示する anything プラグインを作成しました。 anything アプリケーションを require するときに自動で検出するので、 anything-show-completion.el を load-path の通った場所に置くだけで使えます。 現在、 anything-complete.el 、 anything-rcodetools.el 、 anything-dabbrev-expand.el 、 perl-completion.el に対応しています。 M-x install-elisp http://www.emacswiki.org/c

    anything.el による補完時に補完候補をその場で表示する anything-show-completion.el をリリース - http://rubikitch.com/に移転しました
  • Emacs 初心者必見! one-key.el はキーバインドが覚えられない人への特効薬だ - http://rubikitch.com/に移転しました

    Emacs 初心者向け記事がアツい ので、負けじと俺もっ。 Emacs には無数にキーバインドがあるから覚えきれない人が大多数だろう。 10 年以上使っている俺でさえもだ。ましてやどんどん Emacs Lisp を導入する人にとってはキーバインド習得コストは大問題となる。 その問題に対処しようと今年新星のごとく登場したのが one-key.el だ。キーボードからメニュー形式でコマンドを実行する Emacs Lisp だ。導入記は id:grandVin さんに 先越されちゃった 。 http://www.emacswiki.org/emacs/OneKey M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/one-key.el M-x install-elisp http://www.emacswiki.or

    nak2k
    nak2k 2009/02/08
    Windowsアプリのメニューをキーボードショートカットで扱うみたいな感じ(忘れたらどのキーを押せばいいかメニューに書いてある)
  • Emacs 23のeldoc.elとeldoc-extensions.elがいい感じ - http://rubikitch.com/に移転しました

    eldocはEmacs Lisp(他言語も一部対応)でカーソル位置の関数の仮引数をエコーエリアに表示してくれるやつ。標準添付だし、Emacs Lisp書く人ならふつー入れてるよね。 Emacs23のeldocはそれに加えて対応する仮引数がハイライトされるようになっている。 Emacs22な人は http://zchan.homeunix.net/pub/Nevada.APP/Build/emacs-23.0.60/lisp/emacs-lisp/eldoc.el とかから取ってくる。 さらに、eldoc-extensions.elもインストールすると、関数のドキュメントまで出してくれるよ。Emacs23のeldoc.elでないと動かない。 M-x install-elisp http://www.emacswiki.org/cgi-bin/wiki/download/eldoc-exten

    nak2k
    nak2k 2009/02/08
  • 次世代auto-complete.elを読んでみる - ’(rubikitch wanna be (a . lisper))

    テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました — ありえるえりあ 情報源による拡張が可能な auto-complete 0.1.0 をリリースしました — ありえるえりあ←[2008/12/01]追記 今、auto-complete.elがアツい。現在、開発版として新機能が塔載されつつある。安定版はEmacsWikiにある。 M-x install-elisp http://www.cx4a.org/pub/auto-complete.el 2008-11-19版のコードを読んでみよう。 まずは流し読みしてみる 前々から気になっているけど、(eval-when-compile (require 'cl)) でCommon Lispマクロを使ったほうがかっこいいと思う。while/push/setq/nreverseでループを回すのが

    次世代auto-complete.elを読んでみる - ’(rubikitch wanna be (a . lisper))
    nak2k
    nak2k 2008/12/07
  • Ruby リファレンスマニュアルを Emacs で参照・ anything.el との連携(改訂版) - http://rubikitch.com/に移転しました

    前回の Ruby リファレンスマニュアル(通称るりま)と ReFe2 をインストール・ Emacs で参照する・ anything.el との連携 - http://rubikitch.com/に移転しました では欠点があったのでより強化してみた。 ライブラリのリファレンスが見られるようになった 「 Enumerable#map 」などの別名のエントリも作るようになった ライブラリ名、クラス名、メソッド名が一箇所になるように目次を作成した refe2x コマンド ReFe2 よりも bitclust コマンドを使う方がより詳細な説明が出ることが判明。それに ReFe2 だとライブラリのリファレンスが見られないようだ。 bitclust ならば見られる。なので、拙作 refe2 コマンドを改訂して refe2x コマンドを作成した。以下からもってけ! refe2x コマンドの BITCLUS

    Ruby リファレンスマニュアルを Emacs で参照・ anything.el との連携(改訂版) - http://rubikitch.com/に移転しました
  • Ctrl+中指か薬指を使うキー操作が多いEmacsで指の負担を軽くする方法 - http://rubikitch.com/に移転しました

    http://d.hatena.ne.jp/kotorikotoriko/20081103/1225687600 Emacsを使っていると、Ctrlを押しながらうんぬんというのがとても多い。だから指が疲れてしまうという話をよく聞く。俺は10年以上使っているのだが、幸い今のところ指が疲れるということはない。というか、逆に左手小指が異常に鍛えられている気すらする。これはさておき、俺は俺なりに指の負担を軽減する方策を取っている。 skk + スティッキーシフト SKKを使っているとどうしてもShiftを押しまくることになる。これはスティッキーシフトでShiftを押さないようにしている。CamelCaseな変数名を使うJavaプログラマにもおすすめかも。 SKK + スティッキーシフト = 最強 - http://rubikitch.com/に移転しました view-modeを活用する あとは、極

    Ctrl+中指か薬指を使うキー操作が多いEmacsで指の負担を軽くする方法 - http://rubikitch.com/に移転しました
    nak2k
    nak2k 2008/11/05
  • grep-edit.el無双 - ’(rubikitch wanna be (a . lisper))

    複数のファイルにまたがる特定のパターンを置換する必要があった。そんなときにはEmacs使いならばgrep-edit.elがよい。M-x grepで置換箇所を出力して、M-x query-replaceで置換。これ最強。grep-edit無双。 unix wizardならばperlのワンライナーで置換するだろうけどヘタレな俺には不安で…誤爆するかもしれんし。 http://www.bookshelf.jp/elc/grep-edit.el 俺設定。buffer-read-onlyでハネられたら嫌なので置換時にinhibit-read-onlyをセットしておく。そして、C-c C-cで編集終了したいからそう設定しておく。行へ飛ぶのはEnterで。 grepの結果から探索する目的にはそのうち公開予定のanything-grep.elを使っている。anything.elだと絞り込みができるからね。

    grep-edit.el無双 - ’(rubikitch wanna be (a . lisper))
    nak2k
    nak2k 2008/10/29
  • 使い捨てコード用のファイルを開く - http://rubikitch.com/に移転しました

    思い付いたら即コードを書けるように、しかし*scratch*や/tmp以下に書いてもすぐに消えてしまうのでもったいない。どうせだったら後学のために保存しておこうと思った。 http://read-eval-print.blogspot.com/2008/09/emacs.htmlより触発された。ほとんどぱくり。read-stringで拡張子を入力できるようにした。思ったより便利そうだ。さよなら*scratch*バッファ〜 (defun open-junk-file () (interactive) (let* ((file (expand-file-name (format-time-string "%Y/%m/%Y-%m-%d-%H%M%S." (current-time)) "~/memo/junk/")) (dir (file-name-directory file))) (make

    使い捨てコード用のファイルを開く - http://rubikitch.com/に移転しました
  • [anything][anything-release][emacs]次世代anything.elとプラグインをリリース!候補選択は是非anythingを

    お待たせしました。メンテナになって初のanything.elをリリースします。オリジナル版を使いやすくするために超強化しました。 [2008/08/26]例を追記しました。 次世代anything.elの開発方針 しっかりテストする 使いやすいユーザーインターフェース オリジナル情報源を書きやすくする Emacs Lispプログラムに組み込みやすくする プラグインによる拡張性を高める 旧バージョンとの互換性を維持 特徴 anything-sources(情報源)に使える属性を増やした ユニットテスト(el-expectations)で堅牢になった 情報源の属性を動的に設定できるようになった(プラグイン) anythingを終了せずにアクションを実行(persistent-action)できる 直前のanythingの画面を復活できる(anything-resume) アクションから候補選択

    [anything][anything-release][emacs]次世代anything.elとプラグインをリリース!候補選択は是非anythingを
  • anything.elのメンテナになりました - http://rubikitch.com/に移転しました

    この度anything.elのメンテナになりました。原作者がコードを書く暇もないほど多忙なため、僕が開発を引き継ぐことになりました。 anything.elを一言で言うとEmacsで動くQuickSilverです。 今後の予定として、俺設定のうち安定しているコードを取り込もうと思います。 anything起動時のカレントバッファ anything-current-buffer の新設。需要が大ありなのに取り込まれてないのが不思議。 anything.elを終了せずにアクションを実行する機能(persistent action:チラ見)。 膨大なanything.elの設定を公開! - http://rubikitch.com/に移転しましたのうちのinvariantキーワード。バッファが変更されていない場合は候補のキャッシュを使うことで高速化を図る。 anythingの隣のウィンドウのスク

    anything.elのメンテナになりました - http://rubikitch.com/に移転しました
  • tapかわいいよtap - http://rubikitch.com/に移転しました

    Ruby 1.9で導入されたObject#tapはRuby 1.8でも1.8.7から使えるようになった。 tapメソッドとは何かというと、自分自身にブロックを作用させて自分自身を返すだけのメソッドだ。つまり副作用専門メソッド。定義はいたって簡単、コレ。 class Object def tap yield(self) self end end たとえば、1〜4の二乗のうち10以上のものを求めたいんだけど、デバッグ時とかで途中経過である1〜4の二乗を表示してほしいなんて場合はこんな感じに。いらなくなったらtapの部分を消せばいい。楽チン。 ary = [1, 2, 3, 4] ary.map{|x| x**2}.tap{|a| p a}.select {|x| x>10 } # => [16] # >> [1, 4, 9, 16] ほかにも、破壊的メソッドを適用した後で自分自身を返す場合にも

    tapかわいいよtap - http://rubikitch.com/に移転しました
  • Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - ’(rubikitch wanna be (a . lisper))

    Ruby 1.8.7ではRuby 1.9からのbackportがとても多い。つまり、Ruby 1.9のあのメソッドがRuby 1.8でも使えるようになったということだ!! これがすごいという機能がもりだくさん、ちょっと大人になったRuby 1.8をお楽しみに。 Enumeratorは組み込みになり、eachなどのイテレータメソッドはブロックをつけないとEnumerable::Enumeratorを返すようになった。おかげでブロック付きメソッドの柔軟性が飛躍的にアップ! expectationsテスティングフレームワークによるテストで書いているので「gem install expectations」してから実行してみよう。手軽にユニットテストが書けるからおすすめ。書式は…見ればわかるよねw ChangeLogで現在からRuby 1.8.6リリースまでを読んだので、ほとんどカバーしていると思わ

    Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - ’(rubikitch wanna be (a . lisper))
    nak2k
    nak2k 2008/05/08
  • RubyでのDSLの作り方 - http://rubikitch.com/に移転しました

    Jay Fields' Thoughts: Implementing an internal DSL in Ruby RubyでのDSLの作り方をexpectationsというtesting frameworkを例にとって説明している。 やっぱassert_equalってオブジェクト指向っぽくなくてカッコ悪いよねwここはDSLでカッコよく書きたいものだ。 彼の言いたいことを日語で超要約してみる。 まず、どういうふうに書きたいかを決める。こんな感じにしたい。 Expectations do # テストだよというブロック expect :expected do # :expectedが期待される値 :expected # ブロックの評価結果が実際の値 end end これから、これをRubyスクリプトとして実行可能な形式にする。 まず、DSLを読み込んだら(実行したら)、Expectatio

    RubyでのDSLの作り方 - http://rubikitch.com/に移転しました
    nak2k
    nak2k 2008/02/18
    そもそもRubyやLispやってないとDSLの良さ自体なかなか分からないからなぁ。
  • Rubyのメソッドの補完を行うanything-rcodetools.elをリリース - ’(rubikitch wanna be (a . lisper))

    rcodetoolsに含まれているrct-completeコマンドを使うとRubyのメソッド等の正確な補完ができる。rcodetoolsパッケージ内にはEmacsインターフェースとして、rcodetools.el(通常版)、icicles-rcodetools.el(icicles版)が同梱されている。 俺はicicles-rcodetoolsを使ってきたが、iciclesはこの場合どうも使い勝手がよくないように感じてきた。そこで今流行のanything.elを使うことにしてみた。そしたら、かなり使いやすい。M-C-iを押したら画像のように補完候補が出てきて、文字を打つとどんどん絞り込まれる。そして、persistent actionと併用するとそのエントリをRIで引ける。 rct-completeが実行できない場合でも、RIの全エントリからメソッドの絞り込みができる。icicles-rc

    Rubyのメソッドの補完を行うanything-rcodetools.elをリリース - ’(rubikitch wanna be (a . lisper))
  • anything.elでrakeタスクを選択する - http://rubikitch.com/に移転しました

    俺はrakeが大好きだ。だから常にrakeを使っている。タスクもたくさん定義している。だけど俺は記憶力がやばいのでEmacsの中で実行しようと思っても、どんなタスクを定義したのか忘れてしまうことがたびたびある。zshだとタスクを補完してくれるけど、Emacsでできないかと考えた。 結論は今流行りのanything.elを使うことだった。このanything-c-source-rake-taskをanything-sourcesの先頭に入れておくことで、anythingを起動して「rake」と入れた時点で内部で「rake -T」が実行され、タスクを表示してくれるようになった。念願叶って涙が出るほどだ。作者Tamas Patrovicsには感謝している。すばらしいツールをありがとう。 (defvar anything-current-buffer nil) (defadvice anythin

    anything.elでrakeタスクを選択する - http://rubikitch.com/に移転しました
  • anything.el を終了せずにアクションを実行する方法 - http://rubikitch.com/に移転しました

    anything.el はとても便利だが、通常の anything はアクションを実行したら*Anything*バッファが消えてしまう。たとえば、 anything.el でマニュアルを参照する 場合は絞り込んだ候補を次々と見たいものである。以下のコマンドを定義すれば、 anything 実行中に C-z を押せば anything を終了せずにアクションを実行できる。マニュアル参照以外にも、ファイルを「チラ見」するときも便利だ。チラ見ウィンドウのスクロールは通常の C-M-v で実行できる。チラ見し終わったら C-g で anything を強制終了すれば元々の画面( window-configuration )に戻る。 source に persistent-action 属性が設定できる。それは、 C-z を押したときに実行される関数だ。指定しなければ、 action 属性の先頭が実

    anything.el を終了せずにアクションを実行する方法 - http://rubikitch.com/に移転しました