neale-ssh.el/README.md

91 lines
2.8 KiB
Markdown
Raw Normal View History

What This Is
=======
It's a lightweight SSH mode for Emacs.
I used this a whole lot at my last job,
which required me bouncing through lots of hops to get to a destination.
Other SSH modes were failing me here, unable to keep up with dirtrack and other things.
I just wanted a slim comint wrapper.
Put another way:
I like Plan 9's `acme`.
If you like Plan 9's `acme`, you might enjoy this.
Why You Should Use This
==================
* You have to use strange SSH implementations like like HP iLOs
* You could benefit from a client that bunches up input by line (for
instance, you have a high-latency connection and hate being 20
keystrokes ahead of what's echoed back)
* You need an SSH implementation for Emacs that's fully debugged with
putty on Windows
* You'd like to have a working `dabbrev-expand` (`M-/`) in your shell
sessions
* You think it would be nice to have instant search over your entire
session, even if it spans multiple hosts
* You're a weirdo
* You're a fan of `cmd` in `acme`
Why You Should Not Use This
=================
* You rely heavily on tab completion and can't switch to `dabbrev-expand` (`M-/`)
* You use lots of things that absolutely require a terminal emulator (like Nethack or irssi)
* You love using `more` and `less` more than you love using `cat` and Emacs built-in navigation
How To Use This
========
Drop it somewhere that you can load it up.
Then, in your emacs initialization file:
(load "neale-ssh.el")
(setq ssh/default-host "woozle.org")
(setq ssh/frequent-hosts '("woozle.org" "zork.net"))
Things I've Found Useful
===============
Using `plink`/`putty`
------------------
I have to work in Windows sometimes,
which means I'm using `plink.exe`.
I created an "emacs" profile in `putty` that has everything set up the way I want for `plink`.
Then I tell emacs to use it:
(setq ssh-explicit-args (if (eq system-type 'windows-nt) '("-load" "emacs") '()))
Editing Remote Files
-----------------
At some point after starting to use this,
you are going to find yourself wanting to edit a remote file,
and then you are going to scratch your head.
You could use `cat filename`,
edit the text straight up in the ssh buffer,
then `cat > filename` to write it back out.
I've been using `ed` a lot,
which combined with emacs editing isn't too bad
(but also not fantastic).
A New Hope For Remote File Editing
---------------
I've been trying to get some key bindings set up that will:
* Dump the remote file
* Capture the dump in a new buffer
* Bind something in the new buffer to send a `cat > $original_filename` command and dump the output
But I'm having quite a bit of trouble with Emacs dropping characters for some reason.
If you're interested in helping,
have a look at [neale-comint-edit.el](neale-comint-edit) and see what you can twiddle out of it.