Welcome to Neomacs, the structural Lisp system!
Run command by name: execute-command (M-x)
. Quit Neomacs: kill-neomacs (C-x C-c)
. Show index of manual: M-x manual
. Describe key: M-x describe-key
.
Buffer commands: switch-to-buffer (C-x b)
, delete-buffer (C-x k)
Window commands: other-window (C-x o)
, split-window-below (C-x 2)
, split-window-right (C-x 3)
, close-window (C-x 0)
, delete-other-windows (C-x 1)
See window management commands and buffer management commands for more details.
Switch to *scratch*
buffer to play with some Lisp!
C-x C-f
): find-file
(path)
To get started, see motion, editing commands, undo commands and clipboard commands.
Motion: forward-node (C-f)
, backward-node (C-b)
, forward-word (M-f)
, backward-word (M-b)
, forward-element-end (C-M-f)
, backward-element (C-M-b)
, next-line (C-n)
, previous-line (C-p)
, scroll-down-command (C-v)
, scroll-up-command (M-v)
.
Search: search-forward (C-s)
, search-backward (C-r)
.
Undo: undo-history (C-x u)
. Once undo history view is active, use undo-command (p)
, redo-command (n)
, previous-branch (b)
, next-branch (f)
to time travel.
Clipboard: cut-element (C-w)
, copy-element (M-w)
, paste (C-y)
, paste-pop (M-y)
, set-selection (C-space)
.
Inside lisp-mode
buffers (e.g. the *scratch*
buffer): eval-last-expression (C-x C-e)
, eval-print-last-expression (C-c C-p)
. Unprintable objects are printed as presentations, which looks like this: #<OBJECT ...>. Pressing enter
on presentations opens the inspector.
Compile top-level form or file: compile-defun (C-c C-c)
, lisp-compile-file (C-c C-k)
.
Lookup definition of focused symbol: goto-definition (M-.)
.
Enable Neomacs debugger: M-x toggle-debug-on-error
. Inside the debugger, press a
to abort, press c
to continue, press v
on a stack frame to view its function definition.
M-x term
to open the terminal emulator. The terminal opens in insert mode by default, which sends most key strokes to the terminal and synchronize the cursor with the terminal. A few key strokes (e.g. C-x
and C-c
) are not sent to the terminal, to send them, use term-quote-send-key (C-q)
. To scroll back and copy contents, press C-c C-j
to turn off terminal-insert-mode
. Once you are done, press C-c C-k
to enable terminal-insert-mode
again.
C-x C-l
): find-url
(url-or-query)
Open links: add-hint (M-g g)
, add-hint-ctrl (M-g M-g)
. Refresh: revert-buffer (s-u)
. Copy URL: web-copy-url (C-c w)
. Full screen mode to reduce distraction: toggle-fullscreen (C-c C-f)
.
History navigation: web-go-backward (C-c b)
, web-go-forward (C-c f)
. There is also a global history accessible via list-web-history
and is used for find-url
completion.
Adblocker is enabled on Neomacs startup by default. To temporarily disable/re-enable it, M-x install-adblocker
/M-x uninstall-adblocker
. To disable it on startup, add the following to your init.lisp
: (setq *startup-hooks* (remove 'install-adblocker *startup-hook*))
Neomacs loads the config file (uiop:xdg-config-home "neomacs" "init.lisp")
(usually located at ~/.config/neomacs/init.lisp
on Unix-like systems) on startup if it exists. You can put Lisp code in the config file to customize Neomacs. You can also evaluate Lisp expressions in the *scratch*
buffer to try out customization, which takes effect immediately and throughout the current Neomacs session.
Example of customizing style: (set-style 'default '(:color "#f00"))
. To revert this change, evaluate (apply-theme :default)
. See Styles for more details.
Turning off funny sound effects: (setq *error-hook* 'do-nothing *quit-hook* 'do-nothing)
Example of adding key binds: (define-keys :global "s-o" 'find-file)
. See Defining keys for more details.
Some keyboard layout might need to set input method to function fully (e.g. dead keys). Enabling dead keys for Spanish: (setq *input-method-function* 'simple-input-method)