helmでカレントディレクトリのファイルを見やすく開く
helmでカレントディレクトリのファイルを開くのに特化した
sourceを作成しました。これのhelm版です。anythingのときは
current-directory用のソースを使うと basenameで表示されたの
ですが、helmで類似のソースだと絶対パスになってしまい、
絞り込みが面倒だったので、そのあたりから作っています。
コード
diredで使った場合はファイルを開いたあと diredバッファを消すようにしています。
(require 'cl) (require 'helm-config) (require 'helm-files) (defvar my/helm-c-current-directory-source `((name . "Current Directory Files") (candidates . (lambda () (with-helm-current-buffer (let ((dirs (directory-files (helm-c-current-directory))) (filter (lambda (d) (string-match "^\.\.?$" d)))) (remove-if filter dirs))))) (type . file))) (defun my/helm-find-file-current-directory () (interactive) (let ((curbuf (current-buffer)) (orig-major major-mode)) (if (helm-other-buffer 'my/helm-c-current-directory-source "*helm-dired*") (and (eq orig-major 'dired-mode) (kill-buffer curbuf))))) (global-set-key (kbd "C-x C-p") 'my/helm-find-file-current-directory)
追記
elscreenを使っていると、新規タブで openというのがあっても
いいかなと思って対応して見ました。
(defvar my/helm-c-current-directory-source `((name . "Current Directory Files") (candidates . (lambda () (with-helm-current-buffer (let ((dirs (directory-files (helm-c-current-directory))) (filter (lambda (d) (string-match "^\.\.?$" d)))) (remove-if filter dirs))))) (action . (("Open File" . helm-c-find-file-or-marked) ("Open File at New Tab(elscreen)" . (lambda (candidate) (elscreen-find-file candidate)))))))