![](/img/trans.png)
[英]How to start a C program and send input from a file using the “gnome-terminal” command?
[英]Using elisp, how to start, send-keys-to, and stop a command in emacs terminal emulator?
使用elisp
(非交互式鍵和弦),如何在emacs
終端模擬器中運行命令; 以及如何將按鍵發送到該緩沖區?
起始term
似乎需要(term "/bin/bash")
,它沒有運行命令的余地。 我想這可能是因為術語旨在作為一種互動工具......
另外,我想將特定鍵發送到正在運行的應用程序。 可以做到這一點。 我認為(插入'x)可能有用,但它沒有緩沖參數,也不允許M-C-S- s-
您可以使用term-send-raw-string
將輸入直接發送到終端。 例:
(progn
(set-buffer "*terminal*")
(term-send-raw-string "ls -l\n"))
這將模擬將ls -l
RET鍵入終端緩沖區的效果。
雖然關於參數解析的term
不是很靈活,但通常只需啟動一個shell並用term-send-raw-string
命令它來加載目標程序就足夠了。 這里有一小段elisp可以將一些命令編寫到交互式程序中:
(progn
(let ((term-buffer (term "/bin/bash")))
(set-buffer term-buffer)
;; start up vi
(term-send-raw-string "vi hello.txt\n")
;; some line noise :P
(term-send-raw-string "ihello world\033:wq\n")
;; quit our shell
(term-send-raw-string "exit")))
在第一個示例中,您還可以嘗試:
(with-current-buffer "*terminal*"
(term-send-raw-string "ls -l\n"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.