タグ

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

  • 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を実行するのは面倒ですね。 そこで、拙作

  • 集中力5倍!小よく大を制するミニマリストEmacs - http://rubikitch.com/に移転しました

    この記事は Emacs Advent Calendar jp: 2011 の11日目です. 昨日はta2_o2p さん、明日は id:handlename さんです。 去年、一昨年とインストーラ系を連続して紹介してきましたが、 今年はうってかわって身近な例を取り上げたいと思います。 僕は最近、Windows XPのネットブックを 使っていることが多いです。 あれだけ忌み嫌っていたWindowsの方が自宅の Linuxマシンよりも稼働率が高いのです。 数年前の自分が聞いたらびっくりしてることでしょう。 この前はネットブックにEmacsをインストール する話をしましたが、今回は小さい画面で Emacsを使うノウハウをお送りします。 最近はパソコンといえばノートパソコンが普通の ようなので、これからする話は役立つと思います。 とにかく、小さいパソコンでEmacsを使う場合、 最大の問題点となるの

    集中力5倍!小よく大を制するミニマリスト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/に移転しました
    aki77
    aki77 2011/02/28
    『savekill.elは、キルリングをディスクに保存・復元する小さなEmacs Lispです。 実質10行に満たないサイズです。』
  • 続・Emacsで連番を挿入する方法 - http://rubikitch.com/に移転しました

    久々のEmacsネタ。 歴史は繰り返すものです。 今はブラウザでなんでもできてしまう時代、かつてのEmacsを彷彿とさせます。 だが、ブラウザがEmacsに決定的に劣っているのは、『速さが足りない』ことだと思ってます。 フレーム、フラッシュなどマウス前提のIFなので、素早い動作が難しいです。 対して、Emacsはテキスト入力のスペシャリスト。 テキスト入力が関わる場面があれば、そこに必ずEmacsの活躍があります。 dabbrev、yasnippetなど、入力に不可欠なツールが無数に存在するからです。 さてさて… 2年前に書いた記事 では、外部コマンドやloopを使ってEmacsで連番を入力する方法を紹介しました。 しかし、めんどいですね。 なので、Emacs Lispで書きました。 M-x duplicate-this-line-forward 直前の行をコピーする直前の行と同じ行を作成

    続・Emacsで連番を挿入する方法 - http://rubikitch.com/に移転しました
  • el-get.elでEmacs Lispパッケージをインストール・アップグレードする - http://rubikitch.com/に移転しました

    Emacs Advent Calendar jp: 2010 の9日目の記事です。 去年のauto-install.el に引き続き、今年もインストーラの紹介です。 昨日は id:yaotti さん(anything関数を好きな言語で実装できるanything-with-everything.el (Emacs Advent Calendar 2010 8日目) - yaotti's diary)でした。 anything-with-everything.elは以前から作ろうと思っていたら先越されてしまいました。 明日は id:handlename さんです。 つい最近になって、Emacs Lispのインストールを管理するel-get.elが登場しました。 Emacs Lispのインストールといえば、auto-install.elやその前身のinstall-elisp.elがあります。 し

    el-get.elでEmacs Lispパッケージをインストール・アップグレードする - http://rubikitch.com/に移転しました
  • その発想はなかった! 新しい自動バイトコンパイルでEmacsを高速化する - (rubikitch loves (Emacs Ruby CUI))

    Emacs Lispをバイトコンパイルすると動作が高速化するのは常識である。しかし、バイトコンパイルには致命的な欠点があって、Lispファイルの方がバイトコンパイルファイルよりも新しい場合は、古いバイトコンパイルファイルが読み込まれてしまうのだ!!そのため、Lispファイルを更新したらバイトコンパイルしておかないといけない。 このどうしようもない仕様をなんとかするべく、自動バイトコンパイルで自衛をしている人はけっこういると思う。というか、自動バイトコンパイルがないと絶対に泥沼にはまってしまう。 自動バイトコンパイルとは、Lispファイルを保存したときに after-save-hook をつかって自動でバイトコンパイルをするというもの。しかし、これだとバイトコンパイル中は待たされてしまう。シングルスレッドの悲劇。 Emacsで同時に複数の処理を実行するには、タイマーを使うか、外部プロセスに任

    その発想はなかった! 新しい自動バイトコンパイルでEmacsを高速化する - (rubikitch loves (Emacs Ruby CUI))
  • anything-find-fileの代わりにanything-filelist+を使おう - http://rubikitch.com/に移転しました

    anything-find-fileはデフォルトで無効にこの度、 anything-find-file をobsoleteにしました。 anything-read-string-modeを有効にしても、デフォルトではanything-find-fileは使われなくなります。 anything-startup.el経由でanything.elを使っていると、anything-read-string-modeが有効になります。 anything-read-string-modeは、バッファやファイルや補完をanythingインターフェースにするマイナーモードです。 補完入力関連のコマンドがanythingインターフェースに置き換えられます。 これからは、ファイル名入力は通常のEmacsのインターフェースに戻ります。 anything-find-file は、C-x C-f (find-file

    anything-find-fileの代わりにanything-filelist+を使おう - 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/に移転しました
  • 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/に移転しました
    aki77
    aki77 2010/10/19
  • 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導入の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

  • (rubikitch loves (Emacs Ruby CUI))

    みなさん、楽しくEmacsしていますか? この度、技術評論社より『Emacsテクニックバイブル 〜作業効率をカイゼンする200の技〜』を発刊することになりました。 Emacsには無数のコマンド、操作方法、Lispプログラム、設定があって、ムズカシイし、ややこしいですね。 あなたもきっと、そんな印象を持っているかと思います。 Emacsは現在、新しい時代へ向かっています。 Emacsは歴史のあるソフトウェアですが、ここ数年で多くの先進的なLispプログラムが登場してきました。 書は次世代Emacsのありかたについてあなたにお伝えするものです。 書をマスターすれば、Emacsの便利さを再発見し、Emacsユーザの最先端を走ることができます。 <2010-07-17 土> Update: 目次を公開しました <2010-08-10 火> Update: 正誤表 筆者とEmacs書の内容に入

    (rubikitch loves (Emacs Ruby CUI))
  • auto-async-byte-compile.elリリース - バイトコンパイル問題の終焉 - http://rubikitch.com/に移転しました

    自動バイトコンパイルを行う auto-async-byte-compile.el をリリースしました。以前のバージョンではRubyが必要でしたが、auto-async-byte-compile.elはEmacs Lispで完結しています。 リンク先のbyte-compileスクリプトも持っておくとコマンドラインからload-pathを気にせずにバイトコンパイルできます。 その発想はなかった! 新しい自動バイトコンパイルでEmacsを高速化する - http://rubikitch.com/に移転しましたより。 Emacs Lispをバイトコンパイルすると動作が高速化するのは常識である。しかし、バイトコンパイルには致命的な欠点があって、Lispファイルの方がバイトコンパイルファイルよりも新しい場合は、古いバイトコンパイルファイルが読み込まれてしまうのだ!!そのため、Lispファイルを更新した

    auto-async-byte-compile.elリリース - バイトコンパイル問題の終焉 - http://rubikitch.com/に移転しました
  • text-translator.elで英語・日本語を自動判別しつつすべての翻訳エンジンで検索するパッチ - http://rubikitch.com/に移転しました

    久々にtext-translator.elをアップデートしたら、いろいろ便利機能が追加されていた。とりわけこの2つは強力だ。 text-trantext-translator-allで登録されている全部の翻訳エンジンで翻訳する text-translator-translate-by-auto-selectionで英語・日語を自動判別して適切な翻訳エンジンを使う しかし、この2つが両立していないところが不便だ。text-trantext-translator-allを使おうにも、毎回「enja」だの「jaen」だの打たないといけないのは至極面倒だ。せっかく英語・日語自動判別機能があるなら、使わない手はない。というわけでパッチ。 あ、インストールはauto-install.elからM-x auto-install-batch text translatorでできるよ!auto-insta

  • そろそろ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/に移転しました
    aki77
    aki77 2010/02/10
  • 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/に移転しました
    aki77
    aki77 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/に移転しました
    aki77
    aki77 2010/01/10
  • 人は俺を「recentfマスター」と呼ぶ - http://rubikitch.com/に移転しました

    Emacsを使ってるみんな、recentfというパッケージを知っているかい? 「最近使ったファイル」を上から順に並べていってすぐに切り換えられるようにするヤツだ。最近使ったものを一番上の見易い位置に置いておくのは超整理法の手法で、すこぶる便利だ。知らない人はすぐに使おう。 ただ、デフォルトのrecentfのインターフェースはどうしようもなく使いづらい。ダイアログとかごちゃごちゃになってるし。たかだか超整理法の実装に1360行もあるってどういうことなの?そのまま使っていても、いまいち便利さに気付かないかもしれない。こんなのは空気のようなツールであるべきで、使い方を覚えるようなものではない。 anything.elから最近使ったファイルにアクセスする そこで、anything.elの出番だ。auto-install.elを使って M-x auto-install-batch anything

  • 正規表現の先読みについて解説してみる - http://rubikitch.com/に移転しました

    先読み正規表現について、この前やっと理解できた。Rubyリファレンスマニュアルではこんな説明になっている。 (?= ) 先読み(lookahead)。パターンによる位置指定(幅を持たない) (?=re1)re2 という表現は、re1 と re2 両方にマッチするものにマッチする正規表現です。 re1(?=re2) という表現は、後に re2 とマッチする文字列が続く、正規表現 re1 です。 p /foo(?=bar)/ =~ "foobar" # => 0 p $& # => "foo" (bar の部分の情報はない) (?! ) 否定先読み(negative lookahead)。パターンの否定による位置指定(幅を持たない) (?!re1)re2 という表現は、re1 にマッチしないが re2 にはマッチする正規表現です。 # 000 を除く 3 桁の数字 re = /(?!000)\

    正規表現の先読みについて解説してみる - http://rubikitch.com/に移転しました
    aki77
    aki77 2009/12/22
  • auto-install.elでEmacsLispパッケージを自動インストール→anything.el関連を一括インストール - http://rubikitch.com/に移転しました

    Emacs Advent Calendar jp: 2009参加中!次はkiwanamiさん。 auto-install.el は拙作 install-elisp.el の後継バージョンである。サイトからEmacsLispファイルをダウンロードし、所定の位置に配置し、バイトコンパイルする。最大の違いはダウンロードが非同期になったことだ。 install-elisp ではダウンロード時に待たされるが、 auto-install ではダウンロード中も作業をすることができる。 ダウンロードはEmacsWikiから。install-elispが使えるならば、M-x install-elisp-from-emacswiki auto-install.el を実行する。 http://www.emacswiki.org/emacs/download/auto-install.el そして、以下の設定を

    auto-install.elでEmacsLispパッケージを自動インストール→anything.el関連を一括インストール - http://rubikitch.com/に移転しました