emacs中的Plink comint模式:文本只读等。

时间:2016-08-23 16:30:36

标签: emacs putty plink

我想为plink(putty)使用新的comint模式,我将代码放在init.el中。

但是,如果是M-x run-plink,我得到了#34; Text是只读的#34;和" 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))

1 个答案:

答案 0 :(得分:0)

这很好用:

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