unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* configuring emacs as a programmer's editor
@ 2006-06-30  0:38 Ted
  2006-06-30  7:03 ` David Kastrup
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Ted @ 2006-06-30  0:38 UTC (permalink / raw)


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.

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 SUSE
Linux 10.  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?  I have guessed that 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.

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)
		  ))
(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)))

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2006-07-04  8:34 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-30  0:38 configuring emacs as a programmer's editor Ted
2006-06-30  7:03 ` David Kastrup
2006-06-30  7:04 ` Andreas Roehler
2006-06-30  8:02   ` Le Wang
2006-06-30 12:13     ` Eli Zaretskii
     [not found]     ` <mailman.3562.1151669638.9609.help-gnu-emacs@gnu.org>
2006-07-01  4:20       ` Le Wang
2006-06-30  7:37 ` Le Wang
2006-06-30 16:14   ` Ted
2006-07-01 23:19     ` Le Wang
2006-07-02  3:46     ` B. T. Raven
2006-07-02  8:32       ` Tim X
2006-07-03 20:15     ` Ted
2006-07-04  8:34       ` Tim X
2006-07-03 22:09 ` Jason Rumney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).