* Re: emacs-"distribution" for windows?
[not found] <mailman.4128.1532430814.1292.help-gnu-emacs@gnu.org>
@ 2018-07-25 6:28 ` Anssi Saari
2018-07-27 17:14 ` Robert Girault
1 sibling, 0 replies; 6+ messages in thread
From: Anssi Saari @ 2018-07-25 6:28 UTC (permalink / raw)
To: help-gnu-emacs
emacs-list-18@pgxml.net writes:
> What "distribution" do you use? Is the windows emacs from gnu suitable
> for day to day work, or are there more windows-optimized emacs-dists
> out there?
I use what Gnu project has available. I've also used Xemacs in Windows
but that was around 2004 or so.
> Just tell me a bit about your setup, and what the main tasks you with
> emacs are.
I have a shared setup in Dropbox that works for Linux and Windows. My
"tasks" are mostly notes and todo lists in org-mode and some hardware
designs using VHDL. I write some small bits of software sometimes too,
shell scripts and Python. Sometimes also C or C++.
As I recall, spell checking with wcheck-mode was a bit of a challenge in
Windows, I had luckily an old copy of Enchant around from somewhere
which helped a lot. I wasn't able to find a binary online later.
For ediff to work, I have diff and diff3 in the path from somewhere,
probably unxutils. Also I have Exuberant Ctags in the path and have to
remember to rename the bundled ctags.exe when I update Emacs... This is
for ggtags I think or maybe some other package needed it. I realize now
I should have better documentation about my setup. There are so many
parts, CEDET, auto-complete, ac-python-async, projectile...
I also have svn and git binaries in the path, the former is bundled with
Tortoise SVN, the latter I don't know where from. Although I don't
really use Emacs for version control it's good it's aware and I can see
what version I'm working on.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: emacs-"distribution" for windows?
[not found] <mailman.4128.1532430814.1292.help-gnu-emacs@gnu.org>
2018-07-25 6:28 ` Anssi Saari
@ 2018-07-27 17:14 ` Robert Girault
1 sibling, 0 replies; 6+ messages in thread
From: Robert Girault @ 2018-07-27 17:14 UTC (permalink / raw)
To: help-gnu-emacs
On 24/07/2018 08:13, emacs-list-18@pgxml.net wrote:
> Hi,
>
> i need a bit input from emacs users on the windows platform.
>
> What "distribution" do you use? Is the windows emacs from gnu suitable
> for day to day work, or are there more windows-optimized emacs-dists
> out there?
>
> Just tell me a bit about your setup, and what the main tasks you with
> emacs are.
I have to tell you my story. (Like the others, I also use no
distribution. I haven't heard of one yet. I would have loved to have
begun with a distribution, but I never knew of one.)
I was working on a really bad job and my girlfriend was working on her
dissertation. She used a terrible editor called TeXworks and was
suffering dearly. She works in a highly technical area, so I was sure
she would like the GNU EMACS. So I put together the editor plus many
other software that she used. I also wrote code to set it up in a more
personal way. When it was ready, I thought the result was so good that
I began to use it myself every day and realized that Windows happens to
be more adequate than GNU systems for her type (and my type) of work.
I took the binary GNU EMACS from gnu.org.
It had to be portable. She would put it on a USB drive and take it to
other systems and continue to work. So when she'd run the GNU EMACS, it
should know how to find the start-up code without environment variables.
I eventually convinced myself that
site-lisp/site-start.el
is the solution. I'm not a site of various users. It's fine to
consider that my dot-emacs.
But EMACS does need the HOME variable sometimes. So I wrote some code
to discover each time where is the EMACS binary running from. I
eventually convinced myself the variable
command-line-default-directory
is ideal for that.
(if (string= system-type "windows-nt")
(progn
(let ((my-path
(split-string
(expand-file-name command-line-default-directory) "/")))
(setq *my-home-dir*
(mapconcat 'identity
(subseq my-path 0 (- (length my-path) 2))
"/")))
(setq command-line-default-directory *my-home-dir*)
(setenv "HOME" *my-home-dir*)))
(cd *my-home-dir*)
(if (string= system-type "windows-nt")
(setenv "TMPDIR" (concat (file-name-as-directory *my-home-dir*)
(file-name-as-directory "tmp"))))
Having installed MinGW inside the EMACS directory, I also stay away from
Windows command prompt as I think it's mostly useless.
(if (string= system-type "windows-nt")
(setq shell-file-name "~/mingw/msys/1.0/bin/sh.exe"
explicit-shell-file-name "~/mingw/msys/1.0/bin/bash.exe"))
I add various of my programs to the PATH, so I can access them from the
EMACS shell --- ESHELL ---, which is my favorite.
(setq my-list-of-paths
(mapcar (lambda (e)
(concat (file-name-as-directory *my-home-dir*)
(file-name-as-directory e)))
(if (string= system-type "windows-nt")
;; Windows
'(
"miktex/texmfs/install/miktex/bin"
"git" "git/bin" "git/usr/bin"
"bin" ; the emacs bin directory
"ezwinports/bin"
"Racket"
"R/App/R-Portable/bin/i386"
"mingw/bin"
"lua/bin")
;; Other systems
'())))
(if (string= system-type "windows-nt")
(dolist (e my-list-of-paths)
(setenv "PATH" (concat e ";" (getenv "PATH")))))
As it turns out, it's not just PATH that we need. If we use
call-process, for example, we need exec-path too.
(setq exec-path
(append (mapcar 'file-name-as-directory my-list-of-paths)
exec-path))
On Windows, you're on your own, so you must bring your own team.
;; Use this GNU debugger
(when (string= system-type "windows-nt")
(setq gdb-command-name "~/mingw/bin/gdb.exe"))
;; Use this spell checker
(when (string= system-type "windows-nt")
(setq ispell-program-name "~/aspell/bin/aspell.exe"))
;; Use this locate program
(when (string= system-type "windows-nt")
(setq locate-command "~/locate/locate.exe"))
;; Use this diff program
(when (string= system-type "windows-nt")
(setq ediff-diff-program "~/git/usr/bin/diff.exe"))
;; Use this hexl program
(when (string= system-type "windows-nt")
(setq hexl-program "~/bin/hexl.exe"))
;; Use this latex program
(when (string= system-type "windows-nt")
(setq tex-command "~/miktex/miktex/bin/latex.exe"))
Obviously this isn't all the code I run on start up, but it's the one
that's Windows related, so I stop there. I think most of the work is in
finding all the programs that you need. I already mentioned MinGW, but
I also took many programs from ezwinports --- special thanks to Eli
Zaretskii --- and others from other places.
^ permalink raw reply [flat|nested] 6+ messages in thread