I spend a fair amount of time ssh-ed into remote, headless linux servers. I often need to use a text editor to edit configuration files. Most don’t run X windows, so I can’t run emacs, my editor of choice, in graphical mode. I could use emacs -nw, which starts emacs in text mode, but emacs is still fairly heavy by default. These editing sessions are usually quick and simple, and I wouldn’t want to wait for a full-blown emacs to start every time.
I used pico for a while, since I use pine as my email client. However, I missed emacs’ depth and versatility. I considered vi, but I wasn’t exposed to it in the womb, and I’m not sure there’s any other way to learn it. :P
More importantly, I didn’t like using two different editors. Mental context switches are evil incarnate, and switching between text editors is a big context switch.
So, I set out to make the minimal emacs -nw setup – lightwight, fast to start, and still usable for casual editing. It actually turned out to be fairly easy. I use this command to start emacs:
emacs -nw --no-init-file --no-site-file \
--load .emacs.minimal
and this elisp in my my minimal .emacs:
; cutoff for word wrap
(setq-default fill-column 79)
; F12 toggles auto-fill mode
(global-set-key [f12] 'auto-fill-mode)
; C-- keybinding for undo (removes the shift)
(global-set-key [(control -)] 'undo)
; turn on pending delete (when a region
; is selected, typing replaces it)
(delete-selection-mode t)
; when on a tab, make the cursor the tab length
(setq-default x-stretch-cursor t)
; avoid garbage collection (default is only 400k)
(setq-default gc-cons-threshold 4000000)
; turn on random customization options
(custom-set-variables
'(sentence-end-double-space nil)
'(truncate-partial-width-windows nil)
'(line-number-mode t)
'(column-number-mode t)
'(query-user-mail-address nil)
'(visible-bell t))
Your .emacs file is fairly personal, so you’ll probably want to customize it and add things from your standard .emacs. dotemacs.de is a good resource for writing and refining your .emacs file.
is there a specific reason for you not to use tramp? it suits all my editing-remote-configs-on-headless-machines-via-ssh needs.
good question. i tried
tramp
for a while, and i really liked it.
i didn’t stick with it, though, because it’s slow. it has to go through the ssh handshake every time i open a file, which can take a while.
i tried both inline (ssh) and external (scp) methods, and i tried tweaking it to make it faster, but it was never quite fast enough.
(i also mention this in why I don’t run shells inside Emacs.)