是否有一些模块或命令,让我将当前区域发送到Shell?我想有一个像Python模式的“python-send-region”,它发送选定的区域到当前运行的Python shell。
好吧,写了一个简单的一点。可能会花一些时间写一个完整的次模式。
暂时以下功能将发送当前行(或区域,如果标记处于活动状态)。对我来说是一个很好的工作:
(defun sh-send-line-or-region (&optional step) (interactive ()) (let ((proc (get-process "shell")) pbuf min max command) (unless proc (let ((currbuff (current-buffer))) (shell) (switch-to-buffer currbuff) (setq proc (get-process "shell")) )) (setq pbuff (process-buffer proc)) (if (use-region-p) (setq min (region-beginning) max (region-end)) (setq min (point-at-bol) max (point-at-eol))) (setq command (concat (buffer-substring min max) "\n")) (with-current-buffer pbuff (goto-char (process-mark proc)) (insert command) (move-marker (process-mark proc) (point)) ) ;;pop-to-buffer does not work with save-current-buffer -- bug? (process-send-string proc command) (display-buffer (process-buffer proc) t) (when step (goto-char max) (next-line)) )) (defun sh-send-line-or-region-and-step () (interactive) (sh-send-line-or-region t)) (defun sh-switch-to-process-buffer () (interactive) (pop-to-buffer (process-buffer (get-process "shell")) t)) (define-key sh-mode-map [(control ?j)] 'sh-send-line-or-region-and-step) (define-key sh-mode-map [(control ?c) (control ?z)] 'sh-switch-to-process-buffer)
请享用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。