好的,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
是的,看来我误解了你的问题。我会看看,如果我可以的话,我可以解决这个问题。 –
我编辑了这个,我想这可能会回答你的问题。 –