最新情報

2014年11月23日Emacs
emacs auto-save-buffers-enhanced.el : 【自動保存】Emacsから「ファイル保存」という概念を消し飛ばす。*scratch*も自動保存 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方
2014年11月22日Emacs
emacs helm-bm.el : 複数のバッファ間の「目に見えるブックマーク」を一覧・検索・移動する最強設定!Migemo対応 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット
2014年11月21日Emacs
emacs bm.el : 【遠距離移動のお供】目に見えるマーク・ブックマークを実現! | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット
2014年11月21日メルマガ
プロジェクト管理あれこれ
2014年11月20日Emacs
Emacs+ewwで国語辞典・類語辞典・Wikipedia串刺し検索Weblioを快適一発検索!Emacs24.4/Emacs25両対応

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

emacs auto-save-buffers-enhanced.el : 【自動保存】Emacsから「ファイル保存」という概念を消し飛ばす。*scratch*も自動保存 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方

パッケージ名 auto-save-buffers-enhanced
概要(原文) Automatically save buffers in a decent way
リポジトリ MELPA
取得先 https://github.com/kentaro/auto-save-buffers-enhanced
バージョン 20130607.1949
関連記事 package:auto-save-buffers-enhanced package:backup-each-save

auto-save-buffers-enhanced.el は、Emacsに本当の 自動保存 を提供します。

言い換えれば、ファイル保存というユーザ操作を消し飛ばします。

名前の通り、かつての auto-save-buffers.el の拡張版で、
現在はこちらの方のみMELPAに登録されています。

これをつか使えばもはや C-x C-s でファイルを保存する必要はありません。

保存し忘れたからデータが飛んだ!
というよくある事態とは未来永劫おさらばできます。

まあEmacsを使っていれば使いづらいものの
標準の M-x recover-file で取り戻せます。

Emacsではウン十年前から auto-save 機能が実装されているから、
今日日、保存忘れでデータが消えるアプリケーションは
嘲笑の対象ですな(笑)

とはいえこの機能は既存のファイル保存の概念を覆してしまうので
なかなか慣れないかもしれません。

M-x auto-save-buffers-enhanced-toggle-activity で、
この機能を一時的に無効にできます。

CVSSubversionGit リポジトリ内の
ファイルのみに適用することもできます。

もちろん backup-each-save.el と併用していると、
バックアップファイルが大量に作られます(笑)

auto-save-buffers-enhanced インストール

このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。

M-x package-refresh-contents
M-x package-install auto-save-buffers-enhanced

設定 141123033929.auto-save-buffers-enhanced.el(以下のコードと同一)

(require 'auto-save-buffers-enhanced)
(auto-save-buffers-enhanced t)

;;; 特定のファイルのみ有効にする
(setq auto-save-buffers-enhanced-include-regexps '(".+")) ;全ファイル
;; not-save-fileと.ignoreは除外する
(setq auto-save-buffers-enhanced-exclude-regexps '("^not-save-file" "\\.ignore$"))
;;; *scratch*も自動保存
(setq auto-save-buffers-enhanced-save-scratch-buffer-to-file-p t)

;;; C-x a sでauto-save-buffers-enhancedの有効・無効をトグル
(global-set-key "\C-xas" 'auto-save-buffers-enhanced-toggle-activity)

バージョン管理システムに対応

以下の設定を加えれば、CVS、Subversion、Gitリポジトリ内の
ファイルのみに適用できます。

;; If you're using CVS or Subversion or git
(auto-save-buffers-enhanced-include-only-checkout-path t)
(auto-save-buffers-enhanced t)

実行方法

$ wget http://rubikitch.com/f/141123033929.auto-save-buffers-enhanced.el
$ emacs -Q -f package-initialize -l 141123033929.auto-save-buffers-enhanced.el

タグ

2014/11/23 | コメント/トラックバック(0) |

カテゴリー:Emacs

emacs helm-bm.el : 複数のバッファ間の「目に見えるブックマーク」を一覧・検索・移動する最強設定!Migemo対応 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット

パッケージ名 helm-bm
概要(原文) helm sources for bm.el
リポジトリ MELPA
取得先 https://github.com/yasuyk/helm-bm
バージョン 20131224.705
関連記事 package:helm-bm package:helm package:bm package:migemo

昨日は「目に見えるブックマーク」としてbm.elを紹介しました が、
今日はその helmインターフェース です。

M-x bm-toggleM-x bm-previous, M-x bm-next があれば
カレントバッファ内の移動は不自由しません。

実は M-x bm-show-all という全bmを一覧するコマンドがありますが、
今ならやっぱりhelmだよねー!
ということで helm-bm.el を紹介します。

実はanything.el時代に M-x anything-bm-list があったのですが、
helmでは削除されていたので、MELPAで探して見付けたのでした。

しかも大幅にパワーアップして帰ってきました。

かつて自分が作ったものがより優れたものに
置き換わるのは嬉しい限りです。

とにかくhelm化されることで快適に検索できるようになります。

なので、bmの用途が広がり、
現在位置を記憶する以外にも
その行の『内容』を記憶させる
という目的にも使えるようになります。

快適設定も紹介します。

helm-bm インストール

このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。

M-x package-refresh-contents
M-x package-install helm-bm

設定 141122044603.helm-bm.el(以下のコードと同一)

;;; bm.el初期設定
(setq-default bm-buffer-persistence nil)
(setq bm-restore-repository-on-load t)
(require 'bm)
(add-hook 'find-file-hook 'bm-buffer-restore)
(add-hook 'kill-buffer-hook 'bm-buffer-save)
(add-hook 'after-save-hook 'bm-buffer-save)
(add-hook 'after-revert-hook 'bm-buffer-restore)
(add-hook 'vc-before-checkin-hook 'bm-buffer-save)
(add-hook 'kill-emacs-hook '(lambda nil
                              (bm-buffer-save-all)
                              (bm-repository-save)))
(global-set-key (kbd "M-[") 'bm-previous)
(global-set-key (kbd "M-]") 'bm-next)

;;; helm-bm.el設定
(require 'helm-bm)
;; migemoくらいつけようね
(push '(migemo) helm-source-bm)
;; annotationはあまり使わないので仕切り線で表示件数減るの嫌
(setq helm-source-bm (delete '(multiline) helm-source-bm))

(defun bm-toggle-or-helm ()
  "2回連続で起動したらhelm-bmを実行させる"
  (interactive)
  (bm-toggle)
  (when (eq last-command 'bm-toggle-or-helm)
    (helm-bm)))
(global-set-key (kbd "M-SPC") 'bm-toggle-or-helm)

;;; これがないとemacs -Qでエラーになる。おそらくバグ。
(require 'compile)

実行方法

$ wget http://rubikitch.com/f/141122044603.helm-bm.el
$ emacs -Q -f package-initialize -l 141122044603.helm-bm.el

提供するコマンドは M-x helm-bm のみです。

アクションは以下のものです。

  • その場所に移動(デフォルト)
  • bmを削除(C-SPCで候補をマークすることで複数可)
  • annotation(bmでつけられるコメント)を編集
  • カレントバッファ内の全bmを削除(候補とは無関係)
  • 全バッファの全bmを削除(候補とは無関係)

デフォルトの設定から、3点を改良しました。

  • Migemo に対応させた
  • 表示件数を増やした
  • M-SPC M-SPCで起動させた

初期設定ではM-SPCにM-x bm-toggleを割り当てていましたが、
2回連続で実行すると元の状態に戻ります。

そこで、2回連続M-SPCを押すと M-x helm-bm
起動させるようにすると、かなり快適になります。

20141122050546.png
Fig1: bmをhelm + migemoで絞り込み!

タグ

2014/11/22 | コメント/トラックバック(0) |

カテゴリー:Emacs helm

emacs bm.el : 【遠距離移動のお供】目に見えるマーク・ブックマークを実現! | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット

パッケージ名 bm
概要(原文) Visible bookmarks in buffer.
リポジトリ MELPA
取得先 https://github.com/joodland/bm
バージョン 20140303.1532
関連記事 package:bm

Emacsでカーソル位置を記憶する手段は主にマークとレジスタです。

しかし、それらの手段では記憶した場所がわかりづらい欠点があります。

bm.el は記憶した行をハイライトするのでわかりやすくなります。

しかも永続化できるのでEmacsを再起動しても復元します!

古くからあるパッケージなので日本語の情報も出揃っています。

bm インストール

このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。

M-x package-refresh-contents
M-x package-install bm

設定 141121040103.bm.el(以下のコードと同一)

(setq-default bm-buffer-persistence nil)
(setq bm-restore-repository-on-load t)
(require 'bm)
(add-hook 'find-file-hook 'bm-buffer-restore)
(add-hook 'kill-buffer-hook 'bm-buffer-save)
(add-hook 'after-save-hook 'bm-buffer-save)
(add-hook 'after-revert-hook 'bm-buffer-restore)
(add-hook 'vc-before-checkin-hook 'bm-buffer-save)
(add-hook 'kill-emacs-hook '(lambda nil
                              (bm-buffer-save-all)
                              (bm-repository-save)))
(global-set-key (kbd "M-SPC") 'bm-toggle)
(global-set-key (kbd "M-[") 'bm-previous)
(global-set-key (kbd "M-]") 'bm-next)

実行方法

$ wget http://rubikitch.com/f/141121040103.bm.el
$ emacs -Q -f package-initialize -l 141121040103.bm.el
  • M-SPC: bmで印をつける・外す
  • M-[: 前のbmへ移動
  • M-]: 次のbmへ移動

20141119044921.png
Fig1: 現在位置をbmする!

タグ

2014/11/21 | コメント/トラックバック(0) |

カテゴリー:Emacs

プロジェクト管理あれこれ

今週からはEmacsでプロジェクトを
扱う方法をお話します。

IDEでは古くからおなじみのプロジェクトの概念ですが、
素のEmacsにはプロジェクトという概念は存在しません。

しかし、プロジェクトの概念を実装するための
基本的な機能は備わっています。

そのため、プロジェクトの実装が乱立している状況です。

今週は実際にプロジェクトを扱うパッケージを採り上げる前に
以下の3つのローカル変数のお話をします。

  • バッファローカル変数
  • ファイルローカル変数
  • ディレクトリローカル変数

特にディレクトリローカル変数はEmacs23で導入された
比較的新しい機能なので注目です。

タグ

2014/11/21 | コメント/トラックバック(0) |

カテゴリー:メルマガ

Emacs+ewwで国語辞典・類語辞典・Wikipedia串刺し検索Weblioを快適一発検索!Emacs24.4/Emacs25両対応

ども、最近 eww にお熱な、るびきちです。

15年にもわたるw3m(端末)使いの僕ですが、
emacs-w3m の遅さには辟易としてきました。

Emacsでのブラウジングでemacs-w3mに代わるものとして
ewwに一目惚れしました。

とにかく速い!

ただ、今のところ機能はシンプルそのものなので、
欲しい機能があったら独自で追加する必要があります。

Emacsでのブラウジングでぜひとも欲しい機能は、
レンダリング後にすぐに欲しい情報が見られることです。

この機能さえあれば、取ってつけたような
Emacsインターフェースなんかなくても十分快適です。

多くのサイトは無駄な装飾に凝っているため、
ewwなどの テキストブラウザ で閲覧したときに、
本文がかなり下の方に表示されてしまいます。

そのため、欲しい情報を見つけるのに
わざわざスクロールする必要がります。

適切な位置まで自動で移動してくれれば、
とても快適になりますよね!

僕はオンライン国語辞典・類語辞典サイトとして
Weblio を愛用しています。

国語辞典や Wikipedia など様々な辞書を 串刺し検索 できるのが嬉しいです。

ただ、ewwで表示させると

Weblio 辞書 >

の行までスクロールさせないと意味が表示できません。

そこで、表示開始位置を設定し、簡単に検索できるように
M-x weblio を定義しました。

設定 141120042304.eww-weblio.el(以下のコードと同一)

(require 'eww)
(defvar eww-data)
(defun eww-current-url ()
  "バージョン間の非互換を吸収する。"
  (if (boundp 'eww-current-url)
      eww-current-url                   ;emacs24.4
    (plist-get eww-data :url)))         ;emacs25

(defun eww-set-start-at (url-regexp search-regexp)
  "URL-REGEXPにマッチするURLにて、SEARCH-REGEXPの行から表示させる"
  (when (string-match url-regexp (eww-current-url))
    (goto-char (point-min))
    (when (re-search-forward search-regexp nil t)
      (recenter 0))))

(defun region-or-read-string (prompt &optional initial history default inherit)
  "regionが指定されているときはその文字列を取得し、それ以外では`read-string'を呼ぶ。"
  (if (not (region-active-p))
      (read-string prompt initial history default inherit)
    (prog1
        (buffer-substring-no-properties (region-beginning) (region-end))
      (deactivate-mark)
      (message ""))))

(defun eww-render--after (&rest _)
  (eww-set-start-at "www.weblio.jp" "^ *Weblio 辞書")
  ;; 他のサイトの設定も同様に追加できる
  )
(advice-add 'eww-render :after 'eww-render--after)

;;; weblio
(defun weblio (str)
  (interactive (list
                (region-or-read-string "Weblio: ")))
  (eww-browse-url (format "http://www.weblio.jp/content/%s"
                      (upcase (url-hexify-string str)))))
;;; wikipedia
(defun wikipedia (str)
  (interactive (list
                (region-or-read-string "Wikipedia: ")))
  (eww-browse-url (format "http://ja.wikipedia.org/wiki/%s"
                      (upcase (url-hexify-string str)))))

実行方法

$ wget http://rubikitch.com/f/141120042304.eww-weblio.el
$ emacs -Q -f package-initialize -l 141120042304.eww-weblio.el

region-or-read-string関数

region-or-read-string 関数は、

  • regionがあるときにはその文字列
  • それ以外では read-string によるミニバッファで文字列入力

する関数です。

他のサイトに対応させる

今回はWeblioを例にしましたが、
オンラインマニュアルやその他の辞書サイトにも簡単に対応できます。

やることは、

  1. M-x weblioの関数をパクる
  2. (必要あれば) eww-render–after
    eww-set-start-at でURLと行の正規表現を設定する

例として M-x wikipedia も定義しましたが、
スクロールする必要がないので、eww-set-start-at の設定は不要です。

ネット最強の 英和辞典 である 英辞郎 on the Web にも対応できますが、
利用規約によりスクレイピング等を禁止しているのでおすすめできません。

グレーゾーンゆえ自己責任でお願いします。

タグ

Emacs24.4組み込みブラウザewwで目の疲れを1/10にする方法

Emacs 24.4からは eww という Webブラウザ が標準添付されました。

emacs-w3m の数倍高速に動作するので、
WindowsはもちろんのことUnix系OSでも利用価値があります。

WebブラウザはWindows, Mac, GNU/Linuxともに
FirefoxやGoogle Chromeといった鉄板が存在するのに、
なぜあえてemacsでもブラウザを作る必要があるのか
について考える必があります。

Webブラウザは十分なスペックのマシンがあれば遅くはありません。

普段のネットサーフィンならば普通のブラウザを使えばいいです。

でもなぜEmacsで?

僕は2つの目的があると考えています。

  • 長い文章をじっくり読む
  • Webを参考・引用しながら編集する

この2つの目的ならばEmacs上でWebブラウザを開発する価値は十分にあります。

この観点でいけば、Emacs上のWebブラウザがどうあるべきか明確になります。

ewwはなるべくサイトに忠実にレンダリングしていますが、
Emacsで動作させるという観点からは、
デザインに忠実である必要はありません。

とくに色の使い方はサイトそれぞれであり、好みは人それぞれです。

大事なのはEmacs本体との親和性です。

僕にとって多くのサイトは眩しい色使いなので
Firefoxを長時間使うと目が疲れます。

そのためテキストブラウザw3mで普段はネットサーフィンしています。

そう考えるとewwで文字色・背景色を反映するのはちょっとどうかなと思います。

Emacsの素晴しさは、ほぼ一定の背景色と
文字色(ときに色変えあり)なことです。

おかげさまで眩しい色にチカチカさせられることなく、
文章やコードに集中できるのです。

僕の環境では背景が黒で文字色がgreen3です。

しかもモニタの設定でブルーライトを削減しています。

だから長時間作業でも目が疲れません。

それではewwから文字色・背景色の反映を抑制させましょう。

必要な場合は反映させられるようにもしておきます。

デフォルトでは反映させないようにしておいて、
M-x eww-enable-color で反映させられるようにします。

Emacs 24.4での新しいアドバイス定義方法 を使っています。

設定 50eww-color.el(以下のコードと同一)

(require 'eww)
;;; [2014-11-17 Mon]背景・文字色を無効化する
(defvar eww-disable-colorize t)
(defun shr-colorize-region--disable (orig start end fg &optional bg &rest _)
  (unless eww-disable-colorize
    (funcall orig start end fg)))
(advice-add 'shr-colorize-region :around 'shr-colorize-region--disable)
(advice-add 'eww-colorize-region :around 'shr-colorize-region--disable)
(defun eww-disable-color ()
  "ewwで文字色を反映させない"
  (interactive)
  (setq-local eww-disable-colorize t)
  (eww-reload))
(defun eww-enable-color ()
  "ewwで文字色を反映させる"
  (interactive)
  (setq-local eww-disable-colorize nil)
  (eww-reload))

実行方法

$ wget http://rubikitch.com/f/50eww-color.el
$ emacs -Q -f package-initialize -l 50eww-color.el

タグ

開発版Emacs25がGit化されたのでコンパイルしてみた!インストール手順とリポジトリ情報

ついにEmacsがGitで管理されるようになりました!

10ヶ月にもわたる作業だったらしく、その苦労は大変なものだったでしょう。

開発者の皆様、お疲れ様です。

そして、生涯のパートナーともいえるほどの
素晴らしいソフトウェアをありがとうございます。

早くも etc/NEWS にはEmacs 25の新機能が出ているので、
僕もこれから追跡してみます。

ewwがアツい

まだ起動しただけですが、 magit でログを見てみたところ、
Emacs組み込みブラウザ eww が活発に更新されているのが目立ちました。

Emacs 24.4では*eww*バッファに固定されているのですが、
Emacs 25では M-x rename-bufferM-x rename-uniquely
複数のewwバッファを持ってもバグが起きないとか…

eww-after-render-hook の登場により、レンダリング後の処理が
書けるようになったのも嬉しいです。

ewwは個人的にものすごい注目しているので、
あえてEmacs 25版のewwを使ってみたいと思っていたりします。

emacs-w3mの倍以上高速にレンダリングする軽快さはたまりません。

各ファイルをブラウザで参照する

各ファイルについては
http://git.savannah.gnu.org/cgit/emacs.git/plain/
以下で見られます。

例えば etc/NEWS は
http://git.savannah.gnu.org/cgit/emacs.git/plain/etc/NEWS
となります。

コンパイル・インストール手順

コンパイル・インストールの手順は以下のようにします。

autoconf, automake が必要です。

configure オプションは僕の好みです。

$ git clone git://git.sv.gnu.org/emacs.git
7分くらいかかるのでじっと待つ。
$ ./autogen.sh
Checking whether you have the necessary tools...
(Read INSTALL.REPO for more details on building Emacs)

Checking for autoconf (need at least version 2.65)...
ok
Checking for automake (need at least version 1.11)...
ok
Your system has the required tools.
Running 'autoreconf -fi -I m4' ...
configure.ac:713: installing 'build-aux/compile'
configure.ac:139: installing 'build-aux/config.guess'
configure.ac:139: installing 'build-aux/config.sub'
configure.ac:136: installing 'build-aux/install-sh'
configure.ac:136: installing 'build-aux/missing'
lib/Makefile.am: installing 'build-aux/depcomp'
You can now run './configure'.
$ ./configure --disable-largefile --with-x-toolkit=motif \
--without-toolkit-scroll-bars --without-xaw3d --without-xim \
--without-compress-info --without-sound --without-pop --without-sync-input \
--without-xpm --without-tiff --without-rsvg --without-gconf \
--without-gsettings --without-selinux --without-gpm \
--without-makeinfo --with-x && time make
省略
make  743.02s user 31.12s system 579% cpu 2:13.64 total
$ du -s
459072	.
$ sudo make install

リポジトリで500MB弱、さすがでかい…
パッケージ版と違い*.elcも作成するからmakeに2分以上もかかってもうた…

そして起動!

$ ./src/emacs --version
GNU Emacs 25.0.50.1
Copyright (C) 2014 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

ちゃんと 25.0 と出ましたね!!

Gitリポジトリの情報と開発手順については
EmacsWiki::GitQuickStartForEmacsDevs を参照してください。

タグ

Emacsでproxyを使う設定 – この1行でewwもpackageも広告避けもバッチリ!

Emacs 24.4になってEmacs標準添付のブラウザ eww が話題になっていますね。

ewwは生まれたばかりで機能は少なく、これからの発展が楽しみです。

とにかくレンダリングが速いので emacs-w3mから乗り換える予定です。

そういえば、ewwで プロキシ を使う方法についてはまだ載っていませんね。

M-x apropos RET eww-.+proxy で調べても見付かりません。

結論を言うとewwでもプロキシは使えます。

ewwは内部で url-retrieve-synchronously 関数を使っており、
これのおかげでEmacsそのものがHTTPクライアントになっています。

よって、url.elの層でプロキシを設定すればいいのです。

そうすることでewwはもちろんのこと、
package.elなど他のネットワークアクセスが
伴うelispにも適用されます。

方法は2つあります。

  • 環境変数 http_proxy を設定する
  • url-proxy-services 変数を設定する

環境変数 http_proxy の設定は、
Emacsから起動する外部プログラムにも
波及するので前者がおすすめです。

たとえば、プロキシサーバが 127.0.0.1:8338 のときは

$ http_proxy=http://localhost:8338 emacs

のようにEmacsを起動するか、init.elに

(setq url-proxy-services '(("http" . "127.0.0.1:8338")))

の設定を加えます。

ファイヤーウォール を抜けることはもちろんのこと、
便利な ローカルプロキシ が使えます。

例えば polipo (squid) + adzapper広告避け できたりします。

コアはシンプルに保ち、様々な機能はプロキシに
丸投げするというewwの潔さは好感が持てます。

願わくばフックを充実させてほしいなと…

タグ

emacs helm-package.el : パッケージをhelmインターフェースで即座に見付けてインストール | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット

パッケージ名 helm-package
概要(原文) Listing ELPA packages with helm interface
リポジトリ MELPA
取得先 https://github.com/syohex/emacs-helm-package
バージョン 20140108.2223
関連記事 package:helm-package package:helm package:package

あなたが
「こんな機能欲しいな」
と思ったとき、なにかパッケージをインストールします。

そのとき、2000を超える豊富なMELPAパッケージ群は大きな味方になります。

これだけあれば、たいていの場合、欲しい機能はすでに存在します。

どうやって探すかというと、標準の方法では M-x list-packages を使いますが、
isearchやoccurによる方法だと、絞り込み検索ができなかったりするので、
やや不便です。

そんなときに役立つのが helm インターフェースです。

M-x helm-package こそ、欲しいパッケージを見付ける決定打になります。

これは、パッケージ名、説明文をhelmで絞り込み検索するので、
キーワードにマッチするパッケージを一覧してくれます。

RETでそのパッケージをインストール、C-zでその説明文が見られます。

helm-package インストール

このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。

M-x package-refresh-contents
M-x package-install helm-package

設定 141116105554.helm-package.el(以下のコードと同一)

パッケージの基本設定をすれば十分です。

(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
(fset 'package-desc-vers 'package--ac-desc-version)
(package-initialize)

実行方法

$ wget http://rubikitch.com/f/141116105554.helm-package.el
$ emacs -Q -f package-initialize -l 141116105554.helm-package.el

20141116105701.png
Fig1: M-x helm-package の後に正規表現関連のパッケージを見つける

20141116105720.png
Fig2: C-zを押して説明文を表示

タグ

2014/11/16 | コメント/トラックバック(0) |

カテゴリー:Emacs

emacs helm-cmd-t.el : GitやMercurial等リポジトリ内のファイルを電光石火で開いたりgrepしたり!anything-project.elのhelm版 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 スクリーンショット

パッケージ名 helm-cmd-t
概要(原文) cmd-t style completion
リポジトリ MELPA
取得先 https://github.com/lewang/helm-cmd-t
バージョン 20141110.432
関連記事 package:helm-cmd-t package:anything package:helm package:anything-project package:projectile package:helm-projectile

helm-cmd-t.el は、様々な プロジェクト (リポジトリ) 内の
ファイルを helm インターフェースで開くEmacs Lispです。

Emacsでは、そもそもプロジェクトという概念がないため、
プロジェクト管理 のEmacs Lispが乱立している状況です。

以下のリポジトリに対応しています。

  • SCCS
  • RCS
  • CVS
  • MCVS
  • Subversion
  • Git
  • Mercurial
  • Bzr
  • Darcs
  • GNU Arch

anything.el におけるの anything-project.el と同様の機能です。

helm-cmd-t.elは、 スピード を重視して開発しています。

1000( helm-cmd-t-cache-threshhold )個以上のファイルが
含まれるリポジトリについてはキャッシュされるので
大きなリポジトリのファイルを開く場合でも遅くなりません。

また、 find コマンドが存在しないWindowsに対してはEmacs Lisp版が動作します。

本家findには及ばないですが、それなりに最適化されてて速いです。

helm-cmd-t インストール

このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。

M-x package-refresh-contents
M-x package-install helm-cmd-t

設定 141115060951.helm-cmd-t.el(以下のコードと同一)

(require 'helm-C-x-b)
(global-set-key (kbd "C-x b") 'helm-C-x-b)

実行方法

$ wget http://rubikitch.com/f/141115060951.helm-cmd-t.el
$ emacs -Q -f package-initialize -l 141115060951.helm-cmd-t.el

使い方

M-x helm-cmd-t は、プロジェクト内のファイルを開きます。

M-x helm-cmd-t-grep は、リポジトリにおいて grep します。

特にGitが使われているときは git grep が動作します。

C-uをつければ、検索対象のワイルドカードを指定できます。

複数の情報源を組み合わせてC-x bを置き換える

M-x helm-C-x-b は、helm-cmd-tを含んだ
様々な情報源が使えるC-x bの置き換えです。

情報源は

helm-source-buffers-list
バッファ
helm-source-session
セッション
helm-source-files-in-current-dir
カレントディレクトリのファイル
helm-source-cmd-t
リポジトリ内のファイル
helm-source-buffer-not-found
新規バッファ作成用

です。

最近のhelmは独立したhelmコマンドが乱立していて、
anything時代からの重要な概念である情報源の組み合わせが
軽視されている傾向にあります。

その中でこのように情報源を組み合わせたコマンドが提供されるのは嬉しいですね。

説明は具体的なキーワードで!

ただ、つくづく思うのが、パッケージ名と説明が悪いことです…

helm-cmd-t.el — cmd-t style completion

ってなんなんですか(笑)

これだけ見て、何物かわかる人ははたしてどれだけいるのでしょうか?

俺はまったく分からないです。

使ったことがないので推測ですが、MacのCmd+Tのことでしょうか?

俺はただ好奇心の赴くままに試用してみたら、
プロジェクト内のファイルを開いたりgrepしたりするものだとわかりました。

せっかくここに素晴らしいパッケージがあるのに、
説明のせいで検索に引っかからないのは、
ひどくもったいない話です。

パッケージ名、Descriptionは、具体的にわかりやすくするべきです。

その際、適切なキーワードを入れましょう。

20141115061218.png
Fig1: リポジトリ内のファイルをhelmで開く

タグ

2014/11/15 | コメント/トラックバック(0) |

カテゴリー:Emacs

このページの先頭へ