はじめに
helmを使っていて、helm bufferに表示される候補一覧をコピー(kill-ringに追加)できないことで、偶にイラッとすることがありました。
M-xして表示されたコマンドをコピーして"describe-function"で調べたり、
helm-gtagsで表示されるファイル名と行数をコピーしてメモに残したり、
したいのにやり方が分からなかったので調べました。
環境
環境は以下です。
- Windows10
- Emacs26.1
Emacs for Windowsで公開されている「簡易IME対応(2)版(ファイルサイズ削減・tif画像表示対応・TLS対応)」を使用 - helm 20190527.1253
- helm-core 20190806.1437
helm-yank-selectionとhelm-kill-selection-and-quit
"helm.el"に以下の2つのコマンドを見つけました。
(define-key map (kbd "C-c C-y") 'helm-yank-selection)
(define-key map (kbd "C-c C-k") 'helm-kill-selection-and-quit)
"helm-yank-selection"はhelmで選択中の名前を入力欄に貼り付けてくれる。
"helm-kill-selection-and-quit"はhelmで選択中の名前をkill-ringに追加してhelmを終了する。
helmの正しい用語を知らないので、大雑把な説明で申し訳ない…
init.elの修正
とりあえず、上の2つのコマンドがわかったのでそのまま使用するでもOKなのですが
キーバインドが2アクションなのでinit.elには以下の2行を追加しました。
(define-key helm-map (kbd "C-<tab>") 'helm-yank-selection)
(define-key helm-map (kbd "M-w") 'helm-kill-selection-and-quit)
おわりに
追加したキーバインドにちょっと違和感もありますが
とりあえずはこれで試して見ようと思います。
そもそも根本的なことを勘違いしている様な気もしているのでご指摘があればお願いします。
参考リンク
https://abicky.net/2014/01/04/170448/
http://garin.jp/2017/09/08/2017-09-08-220346.html