據我所知,「C-u M-x shell」可以用來運行多個shell。 但是如何定義一個函數來完成與「C-u M-x shell」相同的功能呢?如何定義一個函數在Emacs上運行多個shell?
1
A
回答
2
(defun my-named-shell()
"Equivalent to C-u M-x shell RET"
(interactive)
(shell (get-buffer
(read-buffer
"Shell buffer: "
(generate-new-buffer-name "*shell*")))))
我用describe-function
和find-function
檢查的shell
行爲,其interactive
聲明特別,然後我只是複製了必要的代碼,以將其轉換成一個參數的非交互式調用shell
功能(但將其封裝在get-buffer
中以提供緩衝區參數)。
其實我已經留下了一些代碼,處理遠程文件,因爲在代碼中的註釋顯得有點混亂。如果你不習慣在通過Tramp訪問遠程文件的緩衝區中使用C-u M-x shell
,那麼這個省略不會影響你。
這一切都表示,一個更簡單的(和更完整)的辦法很簡單:
(defun my-named-shell()
"Equivalent to C-u M-x shell RET"
(interactive)
(let ((current-prefix-arg '(4)))
(call-interactively 'shell)))
欲瞭解更多信息,請參閱https://stackoverflow.com/a/9388058/324105
在這種情況下current-prefix-arg
可以是任何非零值,但我認爲使用C-u
實際產生的值是一個好習慣。
+0
太棒了,它的工作原理!謝謝。 – Xun 2012-03-01 11:00:31
相關問題
- 1. 如何在Emacs上運行多個shell
- 2. 如何運行一個jQuery插件上定義的函數?
- 3. 如何在一行上定義一個函數
- 4. 如何定義的Emacs Lisp函數產生一個緩衝外殼在shell中執行特定的命令?
- 5. 並行化一個函數以在多個文件上運行
- 6. 如何在同一時間在多個div上運行一個函數?
- 7. 在bash中定義一個沒有shell腳本的shell函數?
- 8. 如何在.emacs中定義函數?
- 9. 在多個複選框中的一個上運行javascript函數
- 10. 如何在codeigniter的每個頁面上運行一個函數
- 11. 如何在多個SQL Server數據庫上運行函數?
- 12. Python - 我如何從Python shell中定義一個函數?
- 13. Emacs的:在一個函數
- 14. 在SignalR上定義一個jquery函數
- 15. 根據參數在運行時自定義一個函數
- 16. Emacs:定義一個函數來加載定義函數本身的文件
- 17. 如何定期在emacs中運行一個任務?
- 18. 如何寫一個shell腳本來運行多個命令
- 19. 如何在Powershell運行空間中定義一個函數並執行它
- 20. R:在同一個數據幀上多次運行函數
- 21. 如何在onClick上運行多個函數
- 22. 如何從Emacs中運行Cygwin Bash Shell?
- 23. 如何從Emacs運行django shell?
- 24. 如何在MathJax中定義一個新函數('運算符')?
- 25. 如何從另一個多變量函數定義一個變量函數
- 26. 如何定義一個常數函數
- 27. 如何在shell腳本中一起運行多個ruby文件?
- 28. 如何綁定密鑰在dired中運行shell命令emacs
- 29. 從一個Shell腳本運行多個Shell腳本
- 30. 如何在單個類下運行多個定義?
您還可以看看[多長期(http://emacs-fu.blogspot.com/2010/06/console-apps-in-emacs-with-multi-term.html)。 – Daimrod 2012-03-01 14:03:41