2016-08-23 29 views
0

我想爲plink(putty)使用新的comint模式,我把代碼放在init.el中。emacs中的Plink comint模式:文本只讀等

但是,如果M-X run-plink,我得到了「文本是隻讀的」和「comint-send-input:當前緩衝區沒有進程」。沒有提示符號,我無法輸入。我只想爲plink(putty)創建一個新的comint模式。

我是新的emacs。有人可以看到嗎?

(require 'comint) 
;; path 
(defvar plink-file-path "C:/Programme/Putty/plink.exe" 
    "Path to the program used by `run-plink'") 

;; arguments 
(defvar plink-arguments '() 
    "Commandline arguments to pass to `plink'") 

;; prompt 
(defvar plink-prompt-regexp "^>\s" 
"Prompt for `run-plink'.") 

;; Run-plink 
(defun run-plink() 
    "Run an inferior instance of `plink.js' inside Emacs." 
    (interactive) 
    (setq plink-buffer "*Plink*") 
    (let* ((plink-program plink-file-path) (buffer (comint-check-proc "Plink"))) 
    ;; pop to the "*plink*" buffer if the process is dead, the 
    ;; buffer is missing or it's got the wrong mode. 
    (pop-to-buffer-same-window 
    (if (or buffer (not (derived-mode-p 'plink-mode)) 
      (comint-check-proc (current-buffer))) 
     (get-buffer-create (or buffer "*Plink*")) 
     (current-buffer))) 
    ;; create the comint process if there is no buffer. 
    (unless buffer 
     (apply 'make-comint-in-buffer "Plink" buffer plink-program plink-arguments) 
     (plink-mode)))) 

;; plink-mode 
(define-derived-mode plink-mode comint-mode "plink" nil "plink" 
    (setq comint-process-echoes t) 
    (setq comint-use-prompt-regexp t) 
    (setq comint-prompt-regexp plink-prompt-regexp) 
    ; ">" read-only 
    (setq comint-prompt-read-only t) 
    (set (make-local-variable 'paragraph-separate) "..'") 
    (set (make-local-variable 'paragraph-start) plink-prompt-regexp)) 

回答

0

這工作得很好:

(apply 'make-comint-in-buffer "Plink" buffer plink-program nil plink-arguments)