[Top][All Lists]

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

Re: configuring emacs as a programmer's editor

From: Andreas Roehler
Subject: Re: configuring emacs as a programmer's editor
Date: Fri, 30 Jun 2006 09:04:44 +0200
User-agent: KNode/0.9.2

Ted wrote:

> OK, I have used emacs as just a clone of Notepad for quite a
> while.  I know that is under-using it, but I found configuring
> it to be more
> useful to me a bit onerous.  I find the emacs documentation a
> bit dense on one side, and short of the details and examples I
> need on the other.

Agree and don't agree. Beside the Emacs manual there is
Elisp manual with a rather detailed explanation of the
underlying concepts, vars and functions.

> I have a basic .emacs file, appended below, that seems like it
> should
> support most of the programming languages I use.  I constructed
> it by copying and pasting portions of .emacs files I found
> published on the web.
> I need something that will work for me on both Windows XP and
> Linux 10.  

Probably you will or should use two different init
files: If you are in windows the .emacs from Linux will
not be known there. Also the windows Emacs is a
different machine as such AFAIU.

(Basically its possible the have a combined init file at
the windows part and read it in from Linux, but that
will complicate the task.)

> But on Windows, I have MS Visual Studio, and so need 
> emacs to support primarily SQL, Perl, PHP, while on Linux, I
> need it to
> support these plus the C++ and fortran gcc compilers.  While I
> do a lot of Java, I use Netbeans almost exclusively for my java
> programming. Finally, I need to be able to specify whether to
> submit my SQL to PostgreSQL or to MySQL, if that is possible.
> I suppose I have two questions.  1) How do I modify the .emacs
> file
> I've managed to cobble together to fully support my needs?  and
> 2) Although I can get into perl mode (using cperl-mode, I
> think), by loading or creating a perl script file, I find
> invariably that the run, kill, next error, and check syntax
> items on the Perl submenu are
> disabled.  Why?  And how do I fix that?  

Programs may partly rely at system facilities as the
Linux-Shell - and respective windows facilities.

To solve a problem, it's necessary to know where you
are, which modes are on, which commands have been
called last etc.

Suggest to use the bug-report facilities (without
sending it)

M-x report-emacs-bug

just after the command failed. This way a lot of
useful information is collected, which may help.

> emacs is largely written in, and configured using lisp, and
> that to really understand this, I should learn lisp, but the
> time I have for that in a significant way is not yet available,
> so lisp code, for this fortran/C++,Java/SQL coder, is about as
> intelligible as Greek (which I
> don't understand, being a unilingual anglophone).  There is
> only so
> much time in a day and I can't get to everything I want to do. 
> :-( I'd make better progress if I could find a resource that
> relates lisp syntax and style to their counterparts in the
> languages I know, but that is another issue.

It's understood. At the other side: Without elisp knowledge it's
possible, with it starts the fun. (And much more fun 
as I expected.)

> For the present, I'll be content if someone could help me get
> emacs configured on Windows and Linux to meet my proximate
> needs.

> Thanks.
> Ted
> ====my .emacs file==================
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Emacs appearance
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (set-background-color "white")
> (set-foreground-color "black") ;; slategray
> (set-cursor-color "red")
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Display the time on the status line
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (setq display-time-24hr-format t)
> (display-time)
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Associate different modes with different file types.
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> (defalias 'perl-mode 'cperl-mode)
> (autoload 'c++-mode  "cc-mode"  "C++ Editing Mode"         t)
> (autoload 'c-mode    "cc-mode"  "C Editing Mode"           t)
> (autoload 'plsql-mode       "plsql"      "PL/SQL mode"
> t)
> (setq interpreter-mode-alist
>       (append '(("perl"  . cperl-mode)
> ("perl5" . cperl-mode)) interpreter-mode-alist))
> (setq auto-mode-alist
>       '(
>         ("\\.bashrc\\'" . sh-mode)
>         ("\\.bib\\'" . bibtex-mode)
>         ("\\.c\\'" . c-mode)
>         ("\\.cgi\\'" . python-mode)
>         ("\\.cpp\\'" . c++-mode)
>         ("\\.css\\'" . css-mode)
>         ("\\.dtd\\'" . sgml-mode)
>         ("\\.el\\'"  . emacs-lisp-mode)
>         ("\\.emacs\\'" . emacs-lisp-mode)
>         ("\\.es$" . c++-mode)
>         ("\\.htm\\'" . html-mode)
>         ("\\.html\\'" . xml-mode)
>         ("\\.shtml\\'" . html-mode)
>         ("\\.idl\\'" . c++-mode)
>         ("\\.java\\'" . jde-mode)
> ("\\.js$" . c++-mode)
>         ("\\.odl\\'" . c++-mode)
>         ("\\.py\\'" . python-mode)
>         ("\\.php\\'" . php-mode)
>         ("\\.phtml\\'" . php-mode)
>         ("\\.pl\\'" . perl-mode)
>         ("\\.properties\\'" . perl-mode)
>         ("\\.py$" . python-mode)
>         ("\\.sh\\'" . sh-mode)
>         ("\\.sql\\'" . sql-mode)
>         ("\\.text\\'" . text-mode)
>         ("\\.txt\\'" . text-mode)
>         ("\\.tex\\'" . latex-mode)
>         ("\\.vm\\'" . emacs-lisp-mode)
>         ("\\.wfcfg\\'" . perl-mode)
>         ("\\.wsdd\\'" . xml-mode)
>         ("\\.xml\\'" . xml-mode)
> ))

What's with the auto-mode-alist.

Usually it's defined by files.el and
should be OK. Are there reasons to redefine it? 

Andreas Roehler

Myself I'm still exploring Emacs and
interested in questions of convenience and usability.

Please feel free to send your precise questions with
email too. I'm using 

GNU Emacs (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars) 
at Suse 10.0. Windows rather not.

> (defun query-kill-emacs ()
>   "Asks if you want to quit emacs before quiting."
>   (interactive)
>   (if (nth 1 (frame-list))
>       (delete-frame)
>     (if (y-or-n-p "Are you sure you want to quit? ")
> (save-buffers-kill-emacs)
>       (message "Quit aborted."))))
> (defun paren-match ()
>   "Jumps to the paren matching the one under point,
> and does nothing if there isn't one."
>   (interactive)
>   (cond
>    ((looking-at "[({[]") (forward-sexp 1) (backward-char))
>    ((looking-at "[]})]") (forward-char) (backward-sexp 1))
>    (t           (message "Could not find matching paren."))) )
> ;; pretty-print hashes:
> (if (fboundp 'maphash)
>     (defun pp-hash (H)
>       (let (s)
> (maphash
> (lambda (K V)
> (setq s (concat s (format "%S => \n%s" K (pp V))))) H) s)))

reply via email to

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