2009-10-28 83 views
0

我一直在researching how to get Cygwin to work under emacs。我有工作,但现在我想编写一个宏,将执行以下操作:通过键入Mx的cygwin 创建Cygwin emacs宏

  • 储存在一些明显的地方脚本(可能是我的.emacs文件)

    • 启动
    • 的Mx壳
    • 重命名缓冲器到cygwin的(或cygwin1,cygwin2,cygwin3,...如果cygwin的存在)可能使用的Mx重命名缓冲器
    • 的Mx ANSI-色换COMINT模式接通
    • Mx set-buffer-process-coding-system'undecided-unix'und ecided-UNIX
    • 开放和Cygwin运行

    它将基本上做到以上所有步骤。我认为这个小项目的大部分组织都完成了。我如何将它们结合在一起,以便我可以键入M-x cygwin并查看新的cygwin缓存?究竟需要添加到.emacs中?另外,Windows中的.emacs究竟在哪里?

    我仍然希望能够为windows shell运行M-x shell。我也可能为MSYS制作类似的宏,并在我的Linux机器上添加ssh。我如何开始?

  • 回答

    2

    许多问题,这里有一些答案:

    你的.emacs可以存在很多地方,这取决于阅读here。总之试试C-x C-f .emacs,或者检查变量的值'user-init-fileC-h 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) - 您需要根据需要进行自定义。

    您可以通过执行C-f C-f .emacs并将它粘贴到打开的缓冲区中,将最常用的.emacs转储到上述命令中。保存并重启(或做M-X EVAL-defun定义当你的光标在该命令的身体,然后M-X的cygwin将运行命令。