anything.elã使ã£ã¦zshã®å±¥æ´æ¤ç´¢ããã
zshã¯å¿«é©ãªã·ã§ã«ã§ã¯ããããanythingè³ã®ä¿ºã«ã¨ã£ã¦ã¯å±¥æ´æ¤ç´¢ã§çµãè¾¼ããªãã¨ä¸ä¾¿ã§ãããããªãã
zshã§anythingã®ãããªãã®ãä½ãæ¹æ³ããããã®ã®ããã¯ãæ¬ç©ã®anything.elã使ãããã
ã¨ãããã¨ã§zshã®ã³ãã³ãã©ã¤ã³ããanythingã§å±¥æ´æ¤ç´¢ããã³ã¼ããæ¸ãã¦ã¿ãã
æ´æ°æ å ±
- [2009/12/10]id:IMAKADOããã®CarbonEmacsç¨ã®ããããåãè¾¼ã¿ã
ã¤ã³ã¹ãã¼ã«
ã¨ãããããanythingä¸å¼ãå¿ è¦ãªã®ã§ã¤ã³ã¹ãã¼ã«ã
M-x install-elisp-from-emacswiki anything.el
M-x install-elisp-from-emacswiki anything-config.el
M-x install-elisp-from-emacswiki anything-match-plugin.el
M-x install-elisp-from-emacswiki anything-complete.el
ããã¦ãEmacs Lispã³ã¼ããï¼å°æ¥çã«ã¯ååãã¤ããã¤ããï¼
;; (save-window-excursion (shell-command (format "emacs -Q -L ~/emacs/lisp -l test-minimum -l %s %s &" buffer-file-name buffer-file-name))) (require 'anything-complete) (defun anything-zsh-history-from-zle () (interactive) (azh/set-frame) (let ((anything-samewindow t) (anything-display-function 'anything-default-display-buffer)) (azh/set-command (anything-other-buffer `(((name . "History") (action ("Paste" . identity) ("Edit" . azh/edit-command)) ,@anything-c-source-complete-shell-history)) "*anything zsh history*")))) (defvar azh/tmp-file "/tmp/.azh-tmp-file") (defvar azh/frame nil) (defun azh/set-frame () (unless (and azh/frame (frame-live-p azh/frame)) (setq azh/frame (make-frame '((name . "zsh history") (title . "zsh history"))))) (select-frame azh/frame) (sit-for 0)) ;; (progn (azh/set-frame) (anything)) (defun azh/set-command (line) (write-region (or line "") nil azh/tmp-file) (azh/close-frame)) (defun azh/close-frame () (ignore-errors (make-frame-invisible azh/frame)) (when (fboundp 'do-applescript) (funcall 'do-applescript "tell application \"iTerm\" activate end"))) (defun azh/edit-command (line) (switch-to-buffer "*zsh command edit*") (erase-buffer) (setq buffer-undo-list nil) (azh/edit-mode) (insert line) (recursive-edit) (buffer-string)) (define-derived-mode azh/edit-mode fundamental-mode "Press C-c C-c to exit!" "Edit zsh command line" (define-key azh/edit-mode-map "\C-c\C-c" 'azh/edit-exit)) (defun azh/edit-exit () (interactive) (exit-recursive-edit))
ãã㦠.zshrc ã«ä»¥ä¸ã®è¨å®ãå ãããå±¥æ´æ¤ç´¢ã®ç½®ãæããªã®ã§Ctrl+Rã«å²ãå½ã¦ã¦ãããã
anything-history () { tmpfile=/tmp/.azh-tmp-file emacsclient --eval '(anything-zsh-history-from-zle)' > /dev/null zle -U "`cat $tmpfile`" rm $tmpfile } zle -N anything-history bindkey "^R" anything-history
使ãæ¹
端æ«ä¸ã®zshã§Ctrl+Rãæ¼ãã¨anythingã®ç»é¢ããããã¢ãããããçµãè¾¼ã¿å¯è½ã«ãªãã
anythingä¸ã§ãµã¤ãã«Enterãæ¼ãã¨ãanythingã®ç»é¢ãæ¶ããé¸æããã³ãã³ããzshã«ãã¼ã¹ãããããCtrl+eãæ¼ãã¨Emacsä¸ã§ã³ãã³ãã©ã¤ã³ãç·¨éãããã¨ãã§ããï¼Ctrl+C Ctrl+Cã§ç·¨éçµäºï¼ã
ææ°çã®anything.elã§ã¯åè£é¸æã大æåã®ã¢ã«ãã¡ãããã§è¡ããã®ã§.emacsã«ä»¥ä¸ã®è¨å®ãå ¥ãã¦ãããã¨ãããããããã
(setq anything-enable-shortcuts 'alphabet)
注æ
ååèµ·åã¯Emacsãã¬ã¼ã ãä½æããã®ã§å°ãå¾
ãããããã©ã2åç®ä»¥éã¯ãµã¯ãµã¯åã!!
Emacs Lispã³ã¼ãèªä½ã¯zshã«ä¾åãã¦ãªããããçå±ä¸ã»ãã®ã·ã§ã«ã§ãåä½ããã ããããã ãä»ã®ã·ã§ã«ã®ã³ãã³ãã©ã¤ã³ã¨ãã£ã¿ãæä½ããæ¹æ³ãç¥ããªãã®ã§æ
å ±æ±ãã
åèï¼zshでanything.el風履歴検索(その4) - deruiの日記