[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: shell-command in Windows 7
From: |
John Mastro |
Subject: |
Re: shell-command in Windows 7 |
Date: |
Sat, 15 Apr 2017 13:08:28 -0700 |
John Mastro <john.b.mastro@gmail.com> wrote:
> 42 147 <aeuster@gmail.com> wrote:
>> setup-cygwin.el is perfectly compatible with the code that John Mastro
>> suggested (which works better than what I had previously anyway). I need
>> setup-cygwin.el to run cygwin in Emacs. No way I'll stop loading it!
>
> I've been using native Windows builds of Emacs together with Cygwin for
> several years now. (Eli recommends against it for very sensible reasons,
> but I haven't found anything better and it works well enough for me).
>
> During that time, I've never used setup-cygwin.el. I don't even know
> what it does, so I could be missing out, but I wanted to mention that
> (at least in my use case) setup-cygwin.el isn't necessary to use Cygwin
> with Emacs.
I should mention that I do have some home-grown Cygwin-related settings
though.
I do not claim this is the best or right way to do it, but it's what I
ended up with over time, so I'll share it FWIW.
(defvar cygwin-path-directories
'("/bin" "/usr/bin" "/usr/local/bin"
"/Windows" "/ProgramData/Oracle/Java/javapath"))
(defun cygwinize-file-name (name)
(if (string-match "\\`\\([A-Za-z]\\):\\(/\\|\\\\\\)" name)
(let* ((drive (match-string 1 name))
(sep (match-string 2 name))
(more (substring name (match-end 2))))
(concat (if (member drive '("c" "C")) "" (concat "/" drive))
"/"
(if (equal sep "\\")
(replace-regexp-in-string "\\\\" "/" more)
more)))
name))
(defun init-for-cygwin ()
(let* ((home (cygwinize-file-name (or (getenv "HOME")
(error "HOME not defined"))))
(home/bin (concat home
(unless (string-suffix-p "/" home) "/")
"bin"))
(path (cons home/bin cygwin-path-directories)))
(setenv "PATH" (mapconcat #'identity path ":"))
(setq exec-path (mapcar (lambda (dir) (concat "c:" dir)) path))
(let ((shell (or (executable-find "zsh")
(executable-find "bash")
(error "Can't find zsh or bash"))))
(setq shell-file-name shell)
(setq explicit-shell-file-name shell)
(setq ediff-shell shell)
(setq null-device "/dev/null")
(setenv "SHELL" shell))))
(when (and (eq system-type 'windows-nt)
(file-executable-p "c:/bin/bash.exe"))
(init-for-cygwin))
- Re: shell-command in Windows 7, (continued)
- Re: shell-command in Windows 7, 42 147, 2017/04/15
- Re: shell-command in Windows 7, Eli Zaretskii, 2017/04/15
- Re: shell-command in Windows 7, 42 147, 2017/04/15
- RE: shell-command in Windows 7, Drew Adams, 2017/04/15
- Re: shell-command in Windows 7, 42 147, 2017/04/15
- Re: shell-command in Windows 7, John Mastro, 2017/04/15
- Re: shell-command in Windows 7,
John Mastro <=
- Re: shell-command in Windows 7, 42 147, 2017/04/15
- white line appears irregularly on left side of Emacs frame in GNU / Linux virtual machine, 42 147, 2017/04/20
- Re: shell-command in Windows 7, Eli Zaretskii, 2017/04/15