Init Syntax Init File Terminal Init
Here are some examples of doing certain commonly desired things with Lisp expressions:
TAB
in C mode just insert a tab if point is in the middle of a
line.
(setq c-tab-always-indent nil)
Here we have a variable whose value is normally t
for `true'
and the alternative is nil
for `false'.
(setq-default case-fold-search nil)
This sets the default value, which is effective in all buffers that do
not have local values for the variable. Setting case-fold-search
with setq
affects only the current buffer's local value, which
is not what you probably want to do in an init file.
(setq user-mail-address "coon@yoyodyne.com")
Various Emacs packages that need your own email address use the value of
user-mail-address
.
(setq default-major-mode 'text-mode)
Note that text-mode
is used because it is the command for
entering Text mode. The single-quote before it makes the symbol a
constant; otherwise, text-mode
would be treated as a variable
name.
(set-language-environment "Latin-1")
(add-hook 'text-mode-hook '(lambda () (auto-fill-mode 1)))
This shows how to add a hook function to a normal hook variable
(see Hooks). The function we supply is a list starting with
lambda
, with a single-quote in front of it to make it a list
constant rather than an expression.
It's beyond the scope of this manual to explain Lisp functions, but for
this example it is enough to know that the effect is to execute
(auto-fill-mode 1)
when Text mode is entered. You can replace
that with any other expression that you like, or with several
expressions in a row.
Emacs comes with a function named turn-on-auto-fill
whose
definition is (lambda () (auto-fill-mode 1))
. Thus, a simpler
way to write the above example is as follows:
(add-hook 'text-mode-hook 'turn-on-auto-fill)
foo
' (actually a file
`foo.elc
' or `foo.el
' in a standard Emacs directory).
(load "foo")
When the argument to load
is a relative file name, not starting
with `/
' or `~
', load
searches the directories in
load-path
(see Lisp Libraries).
foo.elc
' from your home directory.
(load "~/foo.elc")
Here an absolute file name is used, so no searching is done.
make-symbolic-link
.
(global-set-key "\C-xl" 'make-symbolic-link)
or
(define-key global-map "\C-xl" 'make-symbolic-link)
Note once again the single-quote used to refer to the symbol
make-symbolic-link
instead of its value as a variable.
(define-key lisp-mode-map "\C-xl" 'make-symbolic-link)
next-line
in Fundamental mode
so that they run forward-line
instead.
(substitute-key-definition 'next-line 'forward-line global-map)
(global-unset-key "\C-x\C-v")
One reason to undefine a key is so that you can make it a prefix. Simply defining C-x C-v anything will make C-x C-v a prefix, but C-x C-v must first be freed of its usual non-prefix definition.
$
' have the syntax of punctuation in Text mode.
Note the use of a character constant for `$
'.
(modify-syntax-entry ?\$ "." text-mode-syntax-table)
narrow-to-region
without confirmation.
(put 'narrow-to-region 'disabled nil)