Emacsは、標準の状態では正直使い勝手の良い代物ではありません。いろいろと手を加えることで至高の環境になると思うのですが、そこで新たに問題となってくるのが起動時間。便利なelispを導入するほど起動に時間がかかるようになってきます。特にこれがないとやってられないってくらい重要なelispに限って重量級なことが多く、例えば当方のPCだとyasnippet.elでは1.3秒、anything.elに至っては2秒弱ほど読みこむのに時間がかかっています。 ええ、知ってますとも。Emacsは一度起動したら終了せずに使うものだということを。そして、emacsclientという便利なものもあることを。 ただ、シャバはそんなに甘くありませんです。Emacsだって不意に落ちることはあります。非力なPCで使っていれば、メモリを開放するためやむなくEmacsを終了することだってあります。emacsclient
前回は、Emacs の環境別に書き分ける方法を紹介したのですが、 どようびさんのコメントにあるように環境別にガチガチに書いてしまうと流用できなくて不便です。 で、環境によっては未導入な Elisp とかがあるわけですが、通常は .emacs 読み込み時に存在しない Elisp を require しようとすると、エラーを吐いて以後の読み込みを中断します。 これはこれで設定の正しさを確認できますが、違う環境でとりあえず使いたい場合にはちょっと面倒です。 そこで、存在しないものは、その関連する設定ごと無視してくれて、存在する Elisp は関連する設定も正しく読み込んでくれるような形が望ましいです。 when による分岐と require の第三引数を使う。 Emacs のバージョンいくつからかは知りませんが、require 関数には、オプションで第三引数 noerror を受けつけてくれます
去年からほそぼそと作ってきた、EmacsからDBを操作できるツール Emacs DBI を紹介します。 Emacs DBI の簡単な紹介 このツールの目的は、クロスプラットフォームで便利なDB操作環境を実現することです。 pgAdmin や MySQL Query Browser のようなGUIの良さをCUIで実現してみようとしてみました。すなわち、ぼくのかんがえたさいきょうのDBツールです。ちなみに、このツールにとってEmacsはただの実行環境です。Emacs使わない人でも使うと便利だと思います。 データベース画面 e2wmで3ペインの画面 機能概要 以下のような機能があります。 EmacsとDB接続可能なPerlが動けばターミナルでも何処でも動く DB定義、テーブル定義がすぐ見れる auto-complete によるSQL補完 接続先DBにからキーワード、型名、テーブル名、カラム名など
この記事は Emacs Advent Calendar jp: 2011 : ATND の9日目です。遅くなってごめんなさい! 去年にひき続いて標準で少しEmacsを便利にする小技を。 Emacsを使ってて普段使ってるmodeにちょっとだけ色を足したいとか思うことはないですか?そんなときは font-lock-add-keywords を使えば好きな色を足すことができちゃいます。 使い方は簡単。例えばこんな風にすると (font-lock-add-keywords 'c-mode '(("!" . font-lock-warning-face))) c-modeで「!」が赤くなります。数字にも色を付けて、hogeをキーワードの色にしたければこんな風に。 (font-lock-add-keywords 'c-mode '(("!" . font-lock-warning-face) ("ho
linum-modeをoffにしたら畳んだ直後のポイントでC-hしても落ちなくなった. そこで,org-modeではlinum-modeを使わないことにした.ところが,global-linum-modeを使っていると,org-mode-hookが呼ばれた後にlinum-modeになるため,org-mode-hookでは対応できない.そこで,linum-mode-hookを使えばいいと思ったんだけどそんなものはなかった. 仕方が無いので,global-linum-modeを定義を調べると,linum-onという関数が呼ばれていそうなことがわかったので,包囲アドバイスを書いてみた. (defadvice linum-on (around my-linum-on () activate) (unless (and (fboundp 'org-mode-p) (org-mode-p)) ad-do
Presentation: What is Pymacs?: Pymacs は、emacs と Python の双方向通信を可能とする道具である。 Pymacs は、Python を emacs 拡張言語とすることを目指している。 elisp から、Python モジュールをロードすることができる。 また Python 関数から、emacs のサービスを使ったり、elisp オブジェクトを直接操作したりすることができる。 このソフトの目標は、 elisp からも Python からも自然に記述でき、デバッグが容易で、エラーをスマートに処理でき、両者に跨った再帰を許すことである。 Pymacs をインスコするのに、emacs や Python をコンパイルとかリンクしなおす必要はない。 Emacs は、子プロセスとして Pyhotn を起動し、Pymacs が、両者の通信をつかさどる。 ht
今,scratch buffer をヴァージョン管理するという誰得な拡張を作っているんですが,その一部に汎用化できそうな部分があったんで,抜き出してご紹介. stopwatch.el zip repository Features 以下の関数を使って時間を比較できるようになります.扱える時間のフォーマットは (high low microsec),または (high low) です. stopwatch (time1 &optional time2) TIME1 と TIME2 の差分を計算します.返り値は high low microsec をつなぎあわせた数字になります.TIME2 を省略した場合は current-time() との比較になります. stopwatch-by-UNIT (time1 &optional time2 integer) stopwatch() と同様に差分
世間が iPad で盛り上がっている中、空気を読まずにEmacsです。 (2010/05/31 追記:バグがあって動かない状態でしたので、修正いたしました。試してみて動かなかった皆さんご迷惑をおかけしました。peccuさんご指摘ありがとうございました。) (2010/06/07 名称変更:名称を変更ましたので、混乱しないように内容をすこし修正しました。既に導入いただいた皆さんすみません。) 図の一覧@Cacoo(2010/07/03追記) 概要 Window分割をあらかじめ決めておいて一発で切り替えたり、ポップアップの出現位置を固定したり、ちょっと便利になるプラグインを追加できるようにする、e2wm.elというEmacsの拡張を作ってみました。Emacs以外の人に分かりやすい表現で言うと、Eclipseの「パースペクティブ」のようなものを実現するものです。 画面概観 近年モニターの解像度が
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
概要 Emacsのキーバインドをブラウザで視覚的に表示できるelispです(スクリーンショット1枚目) 自身が使用したEmacsコマンドを履歴に保存し、Emacsコマンドの使用頻度を一緒に調べることも可能です。(スクリーンショット2枚目、赤が良く使っているコマンド、赤→黄→青の順) 新しくインストールしたモードのキーバインドを確認したり、キーバインドを調整する時にどのキーを余り使っていないか調べるとき等に便利です。 インストールの仕方 emacsと、rubyがインストールされている必要があります。 SourceForgeで開発しています こちらから最新のパッケージをダウンロードして下さい。 解凍したパッケージをロードパスの通った場所に置きます。 .emacsに以下の設定を追加します。Windows環境の人はrubyからも変数の値を利用するので、フルパスで指定しないとうまく動かないかもしれま
lispを(なるべく)書かないコマンド作成講座(菅原泰樹) 「Emacsのトラノマキ」連載第三回「lispを(なるべく)書かないコマンド作成講座」 * はじめに 今回は今までと趣向を変えて自分用のコマンドの作り方を紹介しようと思います.elispをごりごり書かないとコマンドを作れないと思っている人も多いかと思いますが,そんなことはないです.書かなくてもなんとかなるもんです.そんな訳でなるべくelispを書かずにコマンドを定義する方法を紹介していきます. elispを書かずにコマンドを定義するには以下の方法があります. - キーボードマクロを活用する - 外部プログラムを使う - Emacsに手を入れる Emacsに手を入れるのは最後の手段なので,キーボードマクロと外部プログラムを使う方法を見ていきましょう. * キーボードマクロ Emacsにはキーボードマクロというものがあります.Exce
@iRi_Eさん作のpos-tip.elにauto-completeが対応しました。補完のポップアップヘルプで利用できます。 pos-tip.el: http://www.emacswiki.org/emacs-en/PosTip auto-completeのコードはいつものようにGitリポジトリから取得してください。 pos-tip.elを使うにはac-quick-help-prefer-xをtに設定し(デフォルト)、あらかじめ(require 'pos-tip)しておきます。 次のスクリーンショットはauto-complete + RSense + pos-tip.elを組み合わせた素晴しい機能性・見栄えを表現しています。
browse-kill-ring みたいなのを popup.el と pos-tip.el でやりたいなあと思って作ってみました。 貼り付けたい内容を pos-tip.el の pos-tip-show で詳細な内容を表示しながら、popup.el の popup-menu* で選択します。 必要物 前提として、popup.el と pos-tip.el が必要です。 popup.el http://github.com/m2ym/auto-complete pos-tip.el http://www.emacswiki.org/emacs/PosTip popup-kill-ring.el 自体は、EmacsWiki に置いたので、そこからダウンロードして下さい。 popup-kill-ring.el http://www.emacswiki.org/emacs/popup-kill-r
これまでは.emacs.d/init.elで自分の分割したinit-*ファイルをロードしていたが、init-loader.el(http://coderepos.org/share/browser/lang/elisp/init-loader/init-loader.el)というのがあったので、こちらを導入してみた。 インストール install-elisp.elを使って、インストールします。install-elisp.elの導入に関してはEmacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。 - 日々、とんは語る。あたりを見ればいいような気がします。 次のコマンドを使ってinit-loader.elをインストールします。 M-x install-elisp http://coderepos.org/share/browser/lang/elisp/init-l
最近ロードバイクを買いました。nagata(@handlename)です。 前回、安易にも無防備な.emacsを晒したら、我らがtypester先生に 「.emacsに全部書くのは小学生までだよね〜」(大幅に誇張あり) と言われてしまったので、早速.emacsを分割してみたいと思います! (設定ファイル群をgithubにあげました) なんで分割するの? そもそもなんで分割するんでしょうか? メリットとしては、こんなものがあります。 見通しがよくなる 環境依存の設定を切り分けられる 一部のファイルにエラーがあっても他のファイルの設定は適用される それぞれ個別にbyte compileできる 一部のエラーが全体に影響しないっていうのはいいですね。とっても。 では、実際に分割する方法を見ていきましょう。 分割してみよう 分割した設定ファイルを読み込むために、IMAKADOさん謹製のinit-lo
.emacs分割のすゝめ | tech.kayac.com - KAYAC engineers’ blog で紹介されている init-loader.el をそのまま使うと、ログを見ても、どのファイルに対するロード時のエラーかがわからない。 init-loader-re-load() を次のように変更すれば、エラーファイルを特定できる。(追記:変更した場合は、古い.elc ファイルの削除を忘れてはいけません) (defun init-loader-re-load (re dir &optional sort) (let ((load-path (cons dir load-path))) (dolist (el (init-loader--re-load-files re dir sort)) (condition-case e (let ((time (car (benchmark-ru
egg.elいまいちーと書いたところ、 @gom egg.elが嫌ならmagit.elでどう?俺的にはそっちのが使いやすいけど。 http://twitter.com/rubikitch/statuses/1901340067 と id:rubikitch さんに教えてもらいました。ありがとうございます。 というわけで、早速試してみた。 インストール makeするのね $ git clone git://github.com/jdhuntington/magit.git $ ./autogen.sh $ ./configure --prefix=$HOME/lisp/magit $ make $ sudo make install .emacsの書き換え (add-to-list 'load-path "~/lisp/magit/share/emacs/site-lisp/") (requ
バッファの削除と復元を手軽に行える,小さなコードを書きました。以前どこかで見かけたものをスタックで書き直しました。以下の設定を dot.emacs に付け足せば,C-x k でのバッファ削除時に yes-no 確認を行いません。削除したファイル名を保存していくので,C-x / でどんどん開き直せます。 (require 'cl) (defvar my-killed-file-name-list nil) (defun my-push-killed-file-name-list () (when (buffer-file-name) (push (expand-file-name (buffer-file-name)) my-killed-file-name-list))) (defun my-pop-killed-file-name-list () (interactive) (unles
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く