helm-cmd-t 20170125.659(in MELPA)
cmd-t style completion

概要

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

<2014-12-28 Sun>追記
git専門ならば helm-ls-git(レビュー) もあります。
これはその他のバージョン管理システムにも対応しています。

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には及ばないですが、それなりに最適化されてて速いです。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてhelm-cmd-tを使う方は
以下のコマンドを実行します。

M-x package-install helm-cmd-t

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name 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で開く

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。