emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Installing on windows


From: Tim O'Callaghan
Subject: Re: [Orgmode] Installing on windows
Date: Sat, 7 Feb 2009 00:19:45 +0100

>  Obviously, I do not fully understand the initialization sequence for
>  EmacsW32.  Could someone using EmacsW32 throw some more light on a
>  better procedure/technique to install Org-mode on it?
>

Hi,

I run the same installation of org in Xemacs & Emacs on Windows+Cygwin
& Linux/Unix.

Currently i have these native versions installed:
* GNU Emacs 23.0.60.1 (i386-mingw-nt5.1.2600) of 2008-06-30 on
LENNART-69DE564 (patched)
* XEmacs 21.4 (patch 21) "Educational Television" [Lucid]
(i586-pc-win32) of Sun Oct 07 2007 on VSHELTON-PC2

The basic technique is:
1) do not compile any source to EL files.
2) make sure the HOME environmental variable is set correctly.
3) use the (expand-filename) function, and relative filenames. It
makes everything work cross platform.

Here is an quick walk through my (X)Emacs setup.

My .emacs:
--8<---------------cut here---------------start------------->8---
(defconst toc:zemacsen-dir "~/.zemacsen_d/"
  "Path to xemacsen root directory and the init.el file")
(defconst toc:zemacsen-site-lisp-dir (concat toc:zemacsen-dir "site-lisp/")
  "Path to (x)emacs lisp includes")

(load (expand-file-name (concat toc:zemacsen-dir "init")))
--8<---------------cut here---------------end--------------->8---

Notice the ~/ unix style relative paths? expand-filename converts that
into the value of your HOME environmental variable. This must be set
for Cygwin, but is also useful for other unixlike tools.

so if  "HOME=C:\home\", this code loads the file
"C:\home\.zemacsen\init.el" which is my "real" (x)emacs configuration
file.

I then have a function that does something like:
--8<---------------cut here---------------start------------->8---
 (add-to-list 'load-path (expand-file-name (concat
toc:zemacsen-site-lisp-dir "org-mode/lisp")))
 --8<---------------cut here---------------end--------------->8---

Which places "c:/home/.zemacsen_d/site-lisp/org-mode"  at the
beginning of the load-path list, trumping any other installation. You
can check with "alt-x describe-variable load-path " to make sure it's
at the start of the load-path list.

Here is the function and its org usage:
--8<---------------cut here---------------start------------->8---
(defun toc:add-to-load-path (dirlist)
  (dolist (dir dirlist load-path)
    (setq dir (expand-file-name (concat toc:zemacsen-site-lisp-dir dir)))
    (if (file-directory-p dir)
        (add-to-list 'load-path dir))))

(toc:add-to-load-path '("org-mode/lisp/"
                        "org-mode/contrib/lisp/"
                        "org-mode/xemacs/"
                        "remember/"))

;; Initialize org
(cond ((featurep 'xemacs)
       (require 'noutline)
       (require 'ps-print-invisible)))

(require 'org)
 --8<---------------cut here---------------end--------------->8---

I have a similar setup for exec-path, to make sure my preferred
windows binaries are found before the windows system ones.

--8<---------------cut here---------------start------------->8---
(defun toc:add-to-exec-path (dirlist &optional front)
  (dolist (dir dirlist exec-path)
    (setq edir (expand-file-name dir))
    (setq qdir (shell-quote-argument (expand-file-name dir)))
    (message "Testing PATH:= %s" dir)
    (cond ((file-directory-p dir)
           (add-to-list 'exec-path dir front)
           (message "Searching PATH:= %s <--> %s" (regexp-quote dir)
(getenv "PATH"))
           (unless (string-match (regexp-quote dir) (getenv "PATH"))
             (message "Adding PATH:= %s\n" dir)
             (if front
                 (setenv "PATH" (concat dir path-separator (getenv "PATH")))
               (setenv "PATH" (concat (getenv "PATH") path-separator dir))))))))
 --8<---------------cut here---------------end--------------->8---

I'm sure its not pretty (or optimised) but, what can i say but that so
far it works for me (almost) everywhere.

hope that helps.

Tim.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]