| @@ -2212,6 +2212,59 @@ ARG is ignored." | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; x open | ;; x open | ||||
| (defvar term-shell-command-history nil | |||||
| "History for term-shell-command.") | |||||
| (defun my-term-shell-command (command &optional buffer-or-name) | |||||
| "Run COMMAND in terminal emulator. | |||||
| If BUFFER-OR-NAME is given, use this buffer. In this case, old process in the | |||||
| buffer is destroyed. Otherwise, new buffer is generated automatically from | |||||
| COMMAND." | |||||
| (interactive (list (read-shell-command "Run program: " | |||||
| nil | |||||
| 'term-shell-command-history))) | |||||
| (let* ((name (car (split-string command | |||||
| " "))) | |||||
| (buf (if buffer-or-name | |||||
| (get-buffer-create buffer-or-name) | |||||
| (generate-new-buffer (concat "*" | |||||
| name | |||||
| "*")))) | |||||
| (proc (get-buffer-process buf)) | |||||
| (dir default-directory)) | |||||
| (and proc | |||||
| (delete-process proc)) | |||||
| (display-buffer buf) | |||||
| (with-current-buffer buf | |||||
| (cd dir) | |||||
| (set (make-local-variable 'term-scroll-to-bottom-on-output) | |||||
| t) | |||||
| (let ((inhibit-read-only t)) | |||||
| (goto-char (point-max)) | |||||
| (insert "\n") | |||||
| (insert "Start executing " | |||||
| command) | |||||
| (add-text-properties (point-at-bol) | |||||
| (point-at-eol) | |||||
| '(face bold)) | |||||
| (insert "\n\n")) | |||||
| (require 'term) | |||||
| (term-mode) | |||||
| (term-exec buf | |||||
| (concat "term-" name) | |||||
| shell-file-name | |||||
| nil | |||||
| (list shell-command-switch | |||||
| command)) | |||||
| (term-char-mode) | |||||
| (if (ignore-errors (get-buffer-process buf)) | |||||
| (set-process-sentinel (get-buffer-process buf) | |||||
| (lambda (proc change) | |||||
| (with-current-buffer (process-buffer proc) | |||||
| (term-sentinel proc change) | |||||
| (goto-char (point-max))))) | |||||
| ;; (goto-char (point-max)) | |||||
| )))) | |||||
| (defvar my-filer nil) | (defvar my-filer nil) | ||||
| (setq my-filer (or (executable-find "pcmanfm") | (setq my-filer (or (executable-find "pcmanfm") | ||||
| (executable-find "nautilus"))) | (executable-find "nautilus"))) | ||||