當我在emacs中使用dired模式時,我可以通過鍵入!xxx運行shell命令,但是如何綁定密鑰才能運行此命令? 例如,我想在文件上按O,然後dired將運行'cygstart'來打開此文件。 謝謝。如何綁定密鑰在dired中運行shell命令emacs
7
A
回答
10
您可以使用shell-command
函數。例如:
(defun ls()
"Lists the contents of the current directory."
(interactive)
(shell-command "ls"))
(global-set-key (kbd "C-x :") 'ls); Or whatever key you want...
要定義在單個緩存器的命令,則可以使用local-set-key
。在dired中,您可以使用dired-file-name-at-point
獲得該文件的名稱。所以,你問什麼:
(defun cygstart-in-dired()
"Uses the cygstart command to open the file at point."
(interactive)
(shell-command (concat "cygstart " (dired-file-name-at-point))))
(add-hook 'dired-mode-hook '(lambda()
(local-set-key (kbd "O") 'cygstart-in-dired)))
3
;; this will output ls
(global-set-key (kbd "C-x :") (lambda() (interactive) (shell-command "ls")))
;; this is bonus and not directly related to the question
;; will insert the current date into active buffer
(global-set-key (kbd "C-x :") (lambda() (interactive) (insert (shell-command-to-string "date"))))
的lambda
定義了一個匿名函數來代替。這樣你就不必定義一個輔助函數,它將在另一個步驟中綁定到一個鍵。
lambda
是關鍵字,如果需要某些參數,則下一個括號對保存您的參數。休息與任何常規功能定義類似。
相關問題
- 1. emacs密鑰綁定
- 2. Emacs-Dired中的多個異步shell命令?
- 3. Xmonad,如何綁定運行shell腳本的密鑰?
- 4. Emacs密鑰綁定優先
- 5. Emacs ESS密鑰綁定
- 6. 從劣質shell運行emacs lisp命令
- 7. 如何在Emacs中運行sudo命令?
- 8. 如何在shell外部使用sudo運行Emacs命令?
- 9. emacs中的臨時密鑰綁定
- 10. emacs中的超級密鑰綁定
- 11. 運行shell命令
- 12. 運行shell命令
- 13. emacs緩衝區綁定到密鑰
- 14. Emacs - 加載模塊後綁定密鑰
- 15. emacs smartscan更改密鑰綁定
- 16. 如何實現命令模式和密鑰綁定?
- 17. 如何用shell命令從鑰匙串中刪除密碼?
- 18. 如何綁定Emacs中的<M-s>密鑰
- 19. 如何運行adb shell命令並保留在shell中?
- 20. 如何通過vimscript運行shell命令?
- 21. 如何從GCE shell運行postgresql命令?
- 22. 在Spacemacs(或Emacs)中,是否可以將密鑰綁定到其他密鑰?
- 23. 找不到Emacs shell命令
- 24. 在emacs中,在每個p4命令前運行一個命令
- 25. 如果在運行shell命令條件
- 26. 如何從Emacs中運行Cygwin Bash Shell?
- 27. 如何在Emacs上運行多個shell
- 28. 如何在密鑰綁定中使用密鑰名稱?
- 29. 在Perl中運行Shell命令
- 30. 在spark-shell中運行啓動命令
注意:在回答問題之前,我不知道任何這些功能。我在'M-!'上使用'C-h k'獲得'shell-command'的名字;我首先猜測它是一個'dired-'函數,然後使用'C-h f'和tab自動完成名稱,從而得到'dired-file-name-at-point'。你也可以很容易地找出這樣的Emacs函數名稱和效果 - 畢竟它是一個**自我編輯的**編輯器!這只是它令人敬畏的許多方式之一。 –