好的,noob問題也許,但我無法找到關於這個東西的信息。我想編寫一個函數,它將一個區域中選擇的任何內容傳遞給curl。 Curl會返回一些內容,我希望能夠替換選定的區域。換句話說,在區域中選擇www.foo.com並運行該功能後,它將被替換爲在命令行上運行的任何捲曲將返回curl www.foo.com
。如何通過「shell-command-on-region」將區域傳遞給shell命令?
這是我的嘗試,這是非常非常錯誤的。基本上,我無法弄清楚如何選定區域傳遞作爲一個變量來shell-command-on-region
:
(defun curl-something()
(interactive)
(setq region ((region-beginning)(region-end)))
(shell-command-on-region (region-beginning) (region-end) (shell-command (concat "curl" region)) nil t))
此外,如果任何人有哪裏可以學習基本的elisp的文字處理程序的指針,請分享(不引用請手冊)。謝謝!
編輯:
感謝蘭迪·莫里斯,我能找出答案:
(defun curl-something (begin end)
(interactive "r")
(shell-command-on-region begin end (concat "curl -s " (buffer-substring begin end)) nil t))
當然,我可以得到開始和結束點,但我如何運行它們之間的命令?我確定像'(shell-command(concat「curl」p1 p2))''是無效的,我錯了嗎? – mart1n
是的,看來我誤解了你的問題。我會看看,如果我可以的話,我可以解決這個問題。 –
我編輯了這個,我想這可能會回答你的問題。 –