CSharpRepl emacs集成?

时间:2011-06-01 20:12:10

标签: c# emacs mono read-eval-print-loop

我碰巧知道mono的CSharpRepl,是否有emacs csharp模式使用它在一个窗口中运行REPL,并在另一个窗口中编译/运行C#代码就像python模式一样?

2 个答案:

答案 0 :(得分:3)

您可以创建一个lisp函数来调用CSharpRepl并在您处理C#代码时分配一个键来调用它。例如,您可以将以下内容放在Emacs init文件中(假设CSharpRepl可执行文件“csharp”在您的PATH中):

(defun csharp-repl ()
  "Open a new side-by-side window and start CSharpRepl in it."
  (interactive)
  (split-window-side-by-side)
  (other-window 1)
  (comint-run "csharp"))

(global-set-key [f11] 'csharp-repl)

因此,如果您正在编辑C#程序(使用您喜欢的任何模式),现在可以按F11,CSharpRepl将在新窗口中打开,以便您可以交互式评估C#代码。

答案 1 :(得分:2)

对接受的答案略有补充。如果存在,则显示现有缓冲区。

(defun csharp-repl ()
  "Switch to the CSharpRepl buffer, creating it if necessary."
  (interactive)
  (let ((buf (get-buffer "*csharp*")))
    (if buf
        (pop-to-buffer buf)
        (progn
          (split-window)
          (other-window 1)
          (comint-run "csharp")))))

(define-key csharp-mode-map (kbd "C-c C-z") 'csharp-repl)