簡體   English   中英

創建一個Cygwin emacs宏

[英]Creating a Cygwin emacs macro

我一直在研究如何使Cygwin在emacs下工作 我有它的工作,但現在我想編寫一個宏,它將執行以下操作:

  • 通過鍵入Mx cygwin啟動
  • 將腳本存儲在某個明顯的位置(可能是我的.emacs文件)
  • MX殼
  • 可能使用Mx重命名緩沖區將緩沖區重命名為cygwin(或cygwin1,cygwin2,cygwin3,...,如果存在cygwin)
  • Mx ansi顏色用於復合模式打開
  • MX set-buffer-process-coding-system'不確定的unix'不確定的unix
  • 打開並運行cygwin

基本上將完成上述所有步驟。 我認為這個小項目的大多數組織已經完成。 如何將它們綁在一起,這樣我就可以鍵入Mx cygwin並看到一個快樂的新cygwin緩沖區? 到底需要將什么添加到.emacs? 另外,.emacs在Windows中到底在哪里?

我仍然希望現在能夠為Windows Shell運行Mx Shell。 我也可以為Linux的MSYS和ssh'ing創建類似的宏。 我該如何開始?

很多問題,下面是一些答案:

您的.emacs可以存在很多地方,具體取決於這里 簡而言之,請嘗試Cx Cf .emacs ,或檢查變量'user-init-fileCh v user-init-file )的值。

我認為您想要的命令與此類似:

(require 'comint) ; this does require comint
(defun cygwin ()
  "do what i want for cygwin"
  (interactive)
  (let ((buffer (get-buffer-create (generate-new-buffer-name "cygwin"))))
    (pop-to-buffer buffer)
    (unless (comint-check-proc buffer)
      (apply 'make-comint-in-buffer (buffer-name buffer) buffer "c:/cygwin/Cygwin.bat"
             nil
             nil)
      (ansi-color-for-comint-mode-on)
      (set-buffer-process-coding-system 'undecided-unix 'undecided-unix))))

注意:我直接運行進程Cygwin.bat而不是運行shell,然后啟動該批處理程序。 相信效果是一樣的,而且更加直接。 我確實選擇了命名緩沖區的簡單方法(使用'generate-new-buffer-name )-您需要自定義所需的內容。

通過執行Cx Cf .emacs並將其粘貼到打開的緩沖區中,可以最輕松地將上述命令轉儲到.emacs中。 保存並重新啟動(或在光標位於該命令的正文中時執行Mx eval-defun 。然后Mx cygwin將運行該命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM