簡體   English   中英

使用elisp,如何在emacs終端模擬器中啟動,發送密鑰和停止命令?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM