如何实现“shell-command-on-region-to-string”emacs / elisp函
发布时间:2020-12-15 21:27:57 所属栏目:安全 来源:网络整理
导读:我需要得到一个范围(或整个范围)的当前缓冲区,运行程序来处理作为输入的范围,得到结果并将字符串放在当前缓冲区的末尾. 我了解到shell-command-on-region可以处理一个地区. 我了解到shell-command-to-string可以将程序的结果存储到字符串中. 那么,我该如何实
我需要得到一个范围(或整个范围)的当前缓冲区,运行程序来处理作为输入的范围,得到结果并将字符串放在当前缓冲区的末尾.
我了解到shell-command-on-region可以处理一个地区. 我了解到shell-command-to-string可以将程序的结果存储到字符串中. 那么,我该如何实现’shell-command-on-region-to-string’? (defun shell-command-on-region-to-string (process &optional b e) (interactive) (let ((b (if mark-active (min (point) (mark)) (point-min))) (e (if mark-active (max (point) (mark)) (point-max)))) ?? (shell-command-on-region b e process (current-buffer) t) ?? how to store the return of a process to a string ?? how to insert the result at the end of current buffer )) 解决方法(defun shell-command-on-region-to-string (start end command) (with-output-to-string (shell-command-on-region start end command standard-output))) (defun shell-command-on-region-with-output-to-end-of-buffer (start end command) (interactive (let ((command (read-shell-command "Shell command on region: "))) (if (use-region-p) (list (region-beginning) (region-end) command) (list (point-min) (point-max) command)))) (save-excursion (goto-char (point-max)) (insert (shell-command-on-region-to-string start end command)))) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |