Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

emacs-"distribution" for windows?

93 views
Skip to first unread message

emacs-...@pgxml.net

unread,
Jul 24, 2018, 7:13:37 AM7/24/18
to help-gn...@gnu.org
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.

Chris

--

Tim Visher

unread,
Jul 24, 2018, 7:47:18 AM7/24/18
to emacs-...@pgxml.net, emacs
It's been a few years since I had to use Windows but at the time I found
the GNU package to be more than adequate. Installing the GNU coreutils for
windows helps a bit but it's not strictly necessary.
http://gnuwin32.sourceforge.net/packages/coreutils.htm

You might do better by asking specific questions after trying it. Just take
a day and switch over and see what happens. :)

Robert Thorpe

unread,
Jul 24, 2018, 9:39:30 PM7/24/18
to emacs-...@pgxml.net, help-gn...@gnu.org
emacs-...@pgxml.net writes:

> 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 don't use any distribution. I use the standard files from gnu.org.

I do install other libraries and ports of GNU utility programs like
aspell, man, grep, find, gzip and tar. I also install Info-zip, bzip2,
xz and lzip.

I get the extra libraries (for images, etc) from the ezwinports page. I
get many of the utility programs from MinGW. I use ezwinports for the
utility programs if MinGW is out-of-date, which it often is. I usually
install compilers like Gcc while I'm at it.

I'm thinking about changing this procedure, because it can be time
consuming. There's now MinGW-w64 which is being maintained (unlike the
original MinGW). I might try using that.

I keep a list of my procedure for installing Emacs on a Windows PC.

BR,
Robert Thorpe


Anssi Saari

unread,
Jul 25, 2018, 2:28:03 AM7/25/18
to
emacs-...@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.

Eli Zaretskii

unread,
Jul 25, 2018, 10:37:48 AM7/25/18
to help-gn...@gnu.org
> From: Robert Thorpe <r...@robertthorpeconsulting.com>
> Date: Wed, 25 Jul 2018 01:43:18 +0100
> Cc: help-gn...@gnu.org
>
> There's now MinGW-w64 which is being maintained (unlike the original
> MinGW).

For the record: the original MinGW is still maintained, albeit much
less actively than MinGW64.

Robert Girault

unread,
Jul 27, 2018, 1:14:22 PM7/27/18
to
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.
0 new messages