Windows 创建Cygwin emacs宏
我一直是。我已经让它工作了,但现在我想编写一个宏,它将执行以下操作:Windows 创建Cygwin emacs宏,windows,emacs,cygwin,Windows,Emacs,Cygwin,我一直是。我已经让它工作了,但现在我想编写一个宏,它将执行以下操作: 通过键入M-x cygwin启动 将脚本存储在某个明显的位置(可能是我的.emacs文件) M-x外壳 可能使用M-x重命名缓冲区将缓冲区重命名为cygwin(或者cygwin1、cygwin2、cygwin3,…,如果cygwin存在) M-x ansi颜色,用于comint模式开启 M-x设置缓冲区进程编码系统“未决定的unix”未决定的unix 打开并运行cygwin 它将基本上完成上述所有步骤。我认为这个小项目的大
- 通过键入M-x cygwin启动
- 将脚本存储在某个明显的位置(可能是我的.emacs文件)
- M-x外壳
- 可能使用M-x重命名缓冲区将缓冲区重命名为cygwin(或者cygwin1、cygwin2、cygwin3,…,如果cygwin存在)
- M-x ansi颜色,用于comint模式开启
- M-x设置缓冲区进程编码系统“未决定的unix”未决定的unix
- 打开并运行cygwin
我现在仍然希望能够为windows shell运行M-x shell。我也可以为MSYS和ssh制作类似的宏到我的Linux机器上。如何开始?许多问题,以下是一些答案: 你的.emacs可以存在于许多地方,这取决于阅读。简而言之,试试C-xc-f.emacs,或者检查变量
'user-init-file
(C-hv 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-xc-f.emacs并将其粘贴到打开的缓冲区中,可以最容易地将上述命令转储到.emacs中。保存并重新启动(或者在光标位于该命令体中时执行M-x eval defun),然后M-x cygwin将运行该命令