tramp-term

https://github.com/randymorris/tramp-term.el.git

git clone 'git://github.com/randymorris/tramp-term.el.git'
8

tramp-term.el

Provides a quick way to launch an ssh session in an ansi-term with directory tracking pre-configured. This makes opening remote files via TRAMP directly from the ssh session as easy as C-x C-f.

Installation

It is strongly recommended to install tramp-term with package.el (included in emacs 24+). A package is currently available on available on MELPA.

Basic usage

Add the following to your init file to make tramp-term available:

(require 'tramp-term)

Only one command is provided. Run it to be prompted in the minibuffer for a user (optional) and host to connect to:

M-x tramp-term

A list of hosts will be provided for auto-completion. These hosts are taken from the configuration in ~/.ssh/config.

Once the ssh session has been established simply open files as you would in a normal ansi-term or shell buffer with find-file:

C-x C-f

As you change directories, emacs' default-directory will be kept in sync, including the TRAMP syntax to open the remote files.

Configuration

Limitations

Currently tramp-term only supports bash shells on the remote host. This would be pretty easy to extend but could be tricky to make configurable since both users and hosts would have to be taken into account. If you'd like this, take a crack at it and submit a pull request. The bash specific code lives in tramp-term--initialize. To make this work generically, tramp-term--initialize would have to dispatch to different initialization functions based on the configuration. Here is an example of that function that works with tcsh instead:

(defun tramp-term--initialize (hostname)
  "Send bash commands to set up tramp integration."
  (term-send-raw-string (format "
alias precmd 'echo \"\\033AnSiTu\" \"$USER\"; echo \"\\033AnSiTc\" \"$PWD\"; echo \"\\033AnSiTh\" \"%s\"'
clear
" hostname)))