タグ

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

  • Emacs - yasnippetでスニペットを一覧する - http://rubikitch.com/に移転しました

    yasnippetは便利だけど… yasnippetは略語を展開して 定型文入力を支援するelispです。 yasnippetは開発してから何年もたち、 すでにたくさんのスニペットがついてきました。 それこそスニペットの山、やま、Yama! これだけスニペットがあればさぞかし 便利になるだろうと最初は思うはずです。 だがしかし! これには質的に避けられない大きな問題があったのです。 その問題とは… 『記憶』 です。 いくらたくさんスニペットが登録されていたとしても、 それを展開するための略語が覚えられないのです。 開発者からしてみれば、よかれと思って どんどん追加しまくったスニペット群、 だが、略語が覚えられないと展開できない という根的問題があるのです。 頻繁に使う略語ならば、何度か使っていくうちに勝手に 覚えてきますが、使用頻度の低い略語は一旦覚えたとしても、 あっさり忘却の彼方へ

    Emacs - yasnippetでスニペットを一覧する - http://rubikitch.com/に移転しました
  • Emacs - smartrep.elでrepeatを活性化せよ - http://rubikitch.com/に移転しました

    くどいプレフィクスキー Emacsにはプレフィクスキーという概念がありますね。 そのおかげで1ストロークではおさまりきれいないほどの 数のコマンドをキーに割り当てることができます。 それはいいことなんですが、プレフィクスキー 付きのコマンドを何度も実行すると、いい加減 プレフィクスキーがくどいと感じてきませんか? たとえば、 C-x 3でウィンドウを左右分割してください。 その後C-x {を何回か実行して ウィンドウを縮めてください。 C-x { C-x { C-x { …と何度もC-x {を 実行するハメになってしまいますね。 repeatはいいけど これを回避する方法としてrepeatを使う方法があります。 C-x zを使えばC-x { C-x z z …のようにできますが、 やはりC-xがくどいのではないでしょうか? (global-set-key (kbd "C-,") 'repe

    Emacs - smartrep.elでrepeatを活性化せよ - http://rubikitch.com/に移転しました
  • all-ext.el:対象行を絞り込んでからまとめて編集するM-x allを超強化!occurと融合&anything・helmと連携 - http://rubikitch.com/に移転しました

    お久しぶりです。 みなさん、M-x allって知ってますか? M-x package-install all でインストールできるのですが、これはM-x occurのように正規表現にマッチする行を表示します。 occurとの違いは表示結果を書き換えれば、該当部分が自動的に書き変わることです。 ユースケースとしては、編集対象行を絞り込んでから、置換やrectangle系コマンドで一気に編集するって感じです。 便利なので以前から重宝しています。 ただ、occurより劣る点としては、対象行の行番号が出ていない点と、M-g M-n (next-error)とM-g M-p (previous-error)で移動できない点です。 (union all occur) occurで絞り込んだはいいけれど、その結果をやっぱり編集したいという場合に改めてM-x allを実行するのは面倒ですね。 そこで、拙作

  • ネットブックでEmacs環境を構築する - http://rubikitch.com/に移転しました

    それではお待ちかね、ネットブックにEmacsをインストールする話です。 この手順通りにやることで、あなたのネットブックは 立派なEmacs専用機に大変身します。 古くから、モバイルギアやリナザウによってUnix環境を 持ち歩き、そこの中でEmacsひきこもり生活を始めて いる人がいますが、その環境構築には多大な手間が かかりました。 しかし、この方法を使えば、OS換装の手間もなく、 単にEmacsをインストールするだけでよいのです。 OSはWindowsのままですが、Emacsにはeshellという 立派なシェルがありますので、各種Unixコマンドや スクリプト言語の環境を整えておけばLinuxと何等 変わらない操作性を得ることができます。 あなたも、「物書きマシン」、「Emacsが動くpomera」 というコンセプトでネットブックをとらえてみませんか? 僕は、愛用ネットブックを 「パソコ

    ネットブックでEmacs環境を構築する - http://rubikitch.com/に移転しました
  • savekill.elリリース - Emacsの突然死に備えて - http://rubikitch.com/に移転しました

    savekill.elをリリースしました。 動機 最近、なぜかよくわかりませんが、Emacsが突然死することありますよね? あまり使いこんでない人はあまり経験がないかもしれませんが、ヘビーユーザーにとっては日常茶飯事です。 不安定すぎて落ちまくるほどではないですが、僕のところでは数日に1回のペースで落ちてしまいます。 Emacs以外を使っていると、ソフトウェアの突然死の恐怖はよくわかると思います。 「保存してなくて、今までの作業がパーになった!」 誰もが一度はそんな経験があるでしょう。 もちろん、そこは我等がEmacs、ちゃんと防衛線は張っています。 Emacsには自動セーブ機能があり、一定時間以上保存していないと、一時ファイルに保存する仕組みになっています。 そのため、Emacsが落ちたとしても、当該ファイルに対し M-x recover-file を実行すれば、ほとんどの作業を取り戻す

    savekill.elリリース - Emacsの突然死に備えて - http://rubikitch.com/に移転しました
  • Emacs Lispで時間がかかる処理をするときに進捗状況を報告する - http://rubikitch.com/に移転しました

    動機時間のかかる処理をしていると、いつまで待たされるのかわからなくなります。 このとき、進捗状況を表示してくれると安心です。 マニュアルより Progress - GNU Emacs Lisp Reference Manual 使い方単純な数値ループ: (dotimes (変数 回数) 処理〜)決まった回数(N)だけループするにはdotimesを使います。 以下の例では、メッセージを表示し、500個カウント(1カウントあたり0.01秒なので)します。 、5秒後(0.01×500)にdoneと表示します。 (progn (message "Collecting some mana for Emacs...") (dotimes (k 500) (sit-for 0.01)) (message "Collecting some mana for Emacs...done"))進捗状況付き数値ル

    Emacs Lispで時間がかかる処理をするときに進捗状況を報告する - http://rubikitch.com/に移転しました
  • 行動を細分化し、テキパキ物事を仕上げる仕事術 with org-mode - http://rubikitch.com/に移転しました

    ブログを毎日更新すると決めていたものの、1ヶ月で途絶えてしまいました。 ごめんなさい。 毎日書くのはさすがにきついです。 まだ文章を書くのに時間がかかるので、ブログに時間がとられてしまいました。 これからは、数日おきくらいになると思います。 さて、org-modeでGTDをやって2年ほどになりますが、思ったほど成果がでていませんでした。 しかし、行動をものすごく細かく分けて考えることで、力が発揮できるようになりました。 「すべてはプロジェクト」と考え、サブタスクを定義していく方法です。 すべてはプロジェクトGTDでは、2つ以上の行動がともなうものをプロジェクトと定義しています。 ところが、1つの行動で済むタスクというのはほとんど多くないと思いました。 行動はとことん細分化することができるからです。 極論を言うと、「歯磨きをする」でさえもプロジェクトです。 なにせ、以下のステップに細分化され

    行動を細分化し、テキパキ物事を仕上げる仕事術 with org-mode - http://rubikitch.com/に移転しました
  • 自己投資によって仕事を効率化し、時間を生み出すマインドセット from 『レバレッジ・シンキング』 - http://rubikitch.com/に移転しました

    東洋経済新報社刊、田直之著『レバレッジ・シンキング』を読みました。 著者提唱の「レバレッジ」理論の総まとめ。 「労力」「時間」「知識」「人脈」にレバレッジをかけて、効率的に成果をあげ、時間を生み出し、その時間を再投資することでもっと自分を成長させていこうというのが狙い。 『レバレッジ・リーディング』、『レバレッジ時間術』、『レバレッジ勉強法』、『レバレッジ人脈術』の内容も含んでいるが、要点がコンパクトにまとめてあるのでおすすめ。 いわば、これらののレバレッジ・メモを読んでいるような気がする。 レバレッジ・メモはいろいろなの要点をまとめた究極のなのだから、書はかなり有用! 著者が実践している方法には、なんでもかんでも「レバレッジ」という接頭辞がつく。 たとえば、「レバレッジ・リーディング」は多読法としてはありきたりだと思うが、あえてそういう名前をつけることでかっこよく思えてくるのが

    自己投資によって仕事を効率化し、時間を生み出すマインドセット from 『レバレッジ・シンキング』 - http://rubikitch.com/に移転しました
  • Emacs Lispのソースコードデバッガ edebug を使う - http://rubikitch.com/に移転しました

    edebugとはソースコードデバッガedebugとは、Emacs Lispのソースコードデバッガです。 これを使うと、Emacs Lispがどのように実行されているのかをステップバイステップで見ることができます。 前の記事で紹介した trace-function では不十分な場合は、edebugで格的にデバッグします。 edebugは状態がころころ変化するので、実際に手を動かしてみましょう。 edebugを有効・無効にするC-u C-M-xで関数をedebug対象にするedebugは基的には関数単位でedebug対象にします。 特定の関数をedebug対象にするのは簡単です。 通常、関数フォームを評価する、すなわち関数を定義するには、defun中あるいは、defunの直後でC-M-xを使います。 それに対し、関数フォームをedebug対象にするには数引数をつけ、C-u C-M-xを使い

    Emacs Lispのソースコードデバッガ edebug を使う - http://rubikitch.com/に移転しました
  • デバッグの第一歩!Emacs Lisp関数をトレースする方法 - http://rubikitch.com/に移転しました

    Emacs Lispのデバッグをしているとき、特定の関数呼び出しをトレースしたいことがあります。 関数呼び出しのトレースとは、呼び出した関数の引数の値と、返り値をチェックすることです。 もちろん、関数が呼び出されたかどうかもわかります。 トレースの実現にはadvice機能を使っています。 M-x trace-functionでトレースするM-x trace-functionは、特定の関数をトレースします。 このコマンドは、トレース対象関数と出力バッファを聞いてきます。 出力バッファはデフォルトで*trace-output*なので、そのままにしておくのが無難です。 複数の関数をトレースする際に出力がごちゃごちゃになるのが嫌ならば別のバッファ名にしておけばいいです。 その後でトレース対象関数を呼び出したら、トレース結果を表示します。 M-x trace-function-backgroundで

    デバッグの第一歩!Emacs Lisp関数をトレースする方法 - http://rubikitch.com/に移転しました
  • レバレッジメモ: 論理的な文章を書く基本とコツ 〜明快な文章を短時間で書くための6ステップ〜 - http://rubikitch.com/に移転しました

    学習研究社刊、西村克己著『論理的な文章を書く基とコツ』を読みました。 僕は何冊かを執筆していますし、文章を書くことに苦手意識は持ってはいません。 しかし、文章を書くのにものすごい時間がかかってしまうことに問題意識を持っています。 こので初心に帰り、文章の基礎を見直そうと思います。 他にも数冊文章術図書館から借りています。 時間がかかるのはやり方に問題があるので、正しいやりかたに変えようというのが最近のモットーです。 読書はレバレッジ・リーディング です。 そして、情報の扱い方 と文章の書き方とプログラミングの作法を見直します。 書は文章を書くための基がステップバイステップで書かれているです。 文章を書くための手順が欲しければ、書はわかりやすいし、おすすめです。 文章を書くことがこれまでにないほど重要視されている中、小中学校では、文章の書き方をきちんと教えることが重要だと

    レバレッジメモ: 論理的な文章を書く基本とコツ 〜明快な文章を短時間で書くための6ステップ〜 - http://rubikitch.com/に移転しました
  • レバレッジメモ: 疑う力の習慣術 - http://rubikitch.com/に移転しました

    PHP新書刊、和田秀樹著『疑う力の習慣術』を読みました。 書を読んだ目的は、情報の見極め方を知りたいからです。 この不信の時代、情報を鵜呑みにしたら危ないです。 しかし、あらゆる情報をシャットアウトしてしまっては時流に取り残されます。 そこで重要になってくるのが疑う力なわけです。 では、何をどのように疑っていけばいいのか、疑う力が何を持たらすか、疑う力の具体例が気になります。 現時点でのレバレッジメモなお、レバレッジメモでは、「エッセンスが重要だから出典は書く必要はない」といわれています。 だが、僕は多読初心者であり、1冊ずつメモを作成しないといけないレベルに過ぎません。 そのため目次を予め打ち込んでそこの下の階層にメモを書いています。 レバレッジメモのもう一つの意義「の内容をメモだけで再現する」を満たすためには、目次というコンテキストが必要と考えています。 そして、冊数が増えるに従っ

    レバレッジメモ: 疑う力の習慣術 - http://rubikitch.com/に移転しました
  • Emacsの中でsudoする方法 〜これでrootによる操作も楽々〜 - http://rubikitch.com/に移転しました

    Emacs、増刷されました!】 みなさん、Emacsを使っていて、突然rootでの操作がしたいと思ったとき、どうしてますか? たとえば、ユーザに書き込み権限のないファイルに書き込みたいとき、root権限でコマンドを実行したいとき。 わざわざターミナルに移動してsuやsudoを使っていたりしませんか? 面倒ですよね。 どうせなら、Emacsの中で直接sudoを使ってみたいですね。 ここで紹介するsudo-ext.elがその願いを叶えてくれます。 注意! 2011-01-17 月更新 Macではsudoersの設定をする必要があるようです。http://d.hatena.ne.jp/maeshima/20110116/1295196063]] http://d.hatena.ne.jp/handlename/20110117/1295231889 機能 sudo-ext.elが提供する機能

    Emacsの中でsudoする方法 〜これでrootによる操作も楽々〜 - http://rubikitch.com/に移転しました
  • anything-filelist 〜すべてのファイルを瞬時に開く方法〜 - http://rubikitch.com/に移転しました

    Emacsを書きました】 深いディレクトリ階層にあるファイルを開くのは面倒なものです。 比較的最近使ったファイル・よく使うファイルであればrecentfを使えば問題ありません。 もし、recentfに入っていないファイルの場合、長いパスを入力するなりlocateを使うなりしないといけません。 面倒ですね。 recentfは便利なのでここ参照 そこで、システム上のすべてのファイルをリストを作成して、そこから開く方法を使います。 anything.elをインストールする まずは準備段階として、anything.elをインストールしておきましょう。 最新機能なのですでに入れている人は更新しておきましょう。 具体的には M-x auto-install-batch anything を実行するだけです。 http://d.hatena.ne.jp/rubikitch/20100718/anyt

  • anything.elプログラマ向け最新情報 - http://rubikitch.com/に移転しました

    Emacsを書きました】 anything.elフレームワークは徐々に進化しています。 ユーザーとして使いやすくする一方、より簡単にプログラミングできるように改良しています。 なるべく非互換性を導入しないように特に気をつけています。 初期に作られた情報源も動くはずです。 動かない場合はanything.elのバグの可能性があります。 anything関数とキーワード引数anything関数がキーワード引数を受け付けるようになりました。 これにより、可読性が上がります。 おそらく一番目立つ最新機能でしょう。 もちろん、通常の引数も使えるので、お好きな方をどうぞ。 基キーワードanything関数の通常の引数に対応するキーワードは以下の通りです。 :sources情報源 :input最初の入力パターン :promptプロンプト :resumetのとき、直前のanythingセッションを復

    anything.elプログラマ向け最新情報 - http://rubikitch.com/に移転しました
  • anything導入のeverything 〜3分で使えるanything.el〜 - http://rubikitch.com/に移転しました

    Emacsを書きました】 anything.elは難しいという印象を持っている人がいるようです。 おそらく、導入しにくいのが原因ではないでしょうか。 anything.elを導入するには、変数anything-sourcesを設定する必要がありました。 しかし、これはもはや過去の話です。 Web検索というのは、ときおり古い情報にひっかかることがあります。 情報は鮮度が命です。 世界は刻一刻と変化しています。 正しい情報を得るには、一次情報に当たるのが最短距離です。 anything.elの一次情報は、開発者である僕のブログの最新記事が一次情報になります。 anything.elを検索したところ、古い情報にひっかあり、惑わされ、それでanything.elは難しいという印象を持たれるのは開発者として意ではありません。 auto-install.elを導入するインターネットにあるLisp

  • テスト駆動開発支援のtest-case-mode.elを使ってみた - http://rubikitch.com/に移転しました

    今更感はあるが、最近テスト駆動開発支援Emacs Lispのtest-case-mode.elが発表された。 http://nschum.de/src/emacs/test-case-mode/ M-x auto-install-batch test-case-mode でインストール。 こんな感じ。 テスト成功のグリーン、失敗のレッドなどの信号をモードラインに表示させる バッファが変更されたら信号も対応して変わる テストを実行して、失敗したら、その行へM-x next-errorとM-x previous-errorで飛べる assert関数群に色がつく JUnit, CxxTest, CppUnit, Python(PyUnit), Ruby (test/unit)に対応 テストコードを自動判別して、テストコードならばtest-unit-modeを有効にする 設定 以下の.emacsに

  • 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/に移転しました
    atm_09_td
    atm_09_td 2010/02/02
    結構貴重かも。
  • 僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました

    Rubyでは、簡単にデーモンが記述できる。その方法は簡単!Ruby 1.9だと Process.daemon と書くだけだ。その行の後は制御端末が切離され、デーモンとして実行される。Ctrl+Cで終了できないので、永遠に実行を続けるスクリプトは「pkill -f」などで殺す。 既存のスクリプトをデーモン化するには、この一行を加えればいいだけなのだが、常にデーモンにしてしまうとデバッグが困難になってしまう。そこで、テスト時はふつうに実行して、普段はデーモンにしてしまえばいい。その方法もまた簡単!上の一行を daemonize.rb というファイルに保存すればいい。だけどこれだけだとつまらないので、ついでにRuby 1.8にも対応させてみる。 if Process.respond_to? :daemon # Ruby 1.9 Process.daemon else # Ruby 1.8 req

    僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました
  • 1