2/2にhelmにアクションを追加する方法を書きました が、
7/7の更新により、型に応じたアクションがカスタマイズ可能になりました!!
それにより旧式の方法は使えなくなりましたが、
単に変数の設定で簡単にアクションを追加できます。
アクションを追加する
前バージョンと同じく、file typeにstatアクションを追加します。
appendで末尾にアクションを追加すればいいです。
;;; 追加するアクション関数 (defun file-do-stat (filename) (interactive "FStat File: ") (shell-command (format "stat %s" (shell-quote-argument filename)) "*Stat*")) ;;; アクションを追加するためにはhelm/helm-typesをrequireする (require 'helm) (require 'helm-types) (setq helm-type-file-actions ;; 末尾に追加! (append helm-type-file-actions '(("Stat" . file-do-stat))))
ここではファイル型のアクションを追加しましたが、
他の型にも対応する変数が存在します。
- helm-type-buffer-actions
- helm-type-timers-actions
- helm-type-bookmark-actions
- helm-type-command-actions
- helm-type-function-actions
キーバインドを追加する
キーバインドの追加は前バージョンと同じ方法でいけます。
ここではfileな情報源にてC-c C-sでstatを実行するようにします。
;;; -*- lexical-binding: t -*- (require 'helm) ;;; closureを使っているのでlexical-binding必須! (defun helm-define-action-key (keymap key def) "アクションをキーバインドに設定" (define-key keymap key (lambda () (interactive) (with-helm-alive-p (helm-quit-and-execute-action def))))) ;;; 追加するアクション関数 (defun file-do-stat (filename) (interactive "FStat File: ") (shell-command (format "stat %s" (shell-quote-argument filename)) "*Stat*")) ;;; 定義するキーバインド (require 'helm-files) (helm-define-action-key helm-generic-files-map (kbd "C-c C-s") 'file-do-stat)
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。