An Emacs package to open an external terminal emulator in directories associated with the current buffer.
Run terminal-here-launch
to start a terminal in the current directory.
If the default command doesn't launch your preferred terminal you can set
terminal-here-terminal-command
to either a list containing the command and
arguments (e.g. (list "my-terminal" "--foo")
)
or a function which takes a directory and returns such a list.
Recommended keybindings:
(require 'terminal-here)
(global-set-key (kbd "C-<f5>") #'terminal-here-launch)
(global-set-key (kbd "C-<f6>") #'terminal-here-project-launch)
Terminal-here has out-of-the-box support for some platforms, but will work anywhere with some customisation.
Out-of-the-box support tested on:
- Ubuntu 16.04 (but should work identically on any Debian-based system)
- Windows 10
- OSX
Should be supported out-of-the-box, but currently untested:
- Older versions of Windows
Requires setting terminal-here-terminal-command
before use:
- Non-Debian-based UNIXes, because I haven't seen a standard way to open the user's preferred terminal
If you have problems just set terminal-here-terminal-command
as described above.
terminal-here
can run ssh to open terminals in remote directories for files
opened with tramp. This may
require additional setup because of inconsistencies between different terminals.
If your terminal has a flag to treat the rest of the command line as the command
to run inside the terminal, you just need to set terminal-here-command-flag
to
this flag. If not it may be impossible to get ssh support. Some examples are:
xterm
,urxvt
:-e
(this is the default)gnome-terminal
:-x
There are lots of built in ways to run terminals inside emacs (shell
,
eshell
, ansi-term
, ...) but these can have problems like slow output speed
or incompatibility with existing configs. I currently prefer to run external
terminal emulators, YMMV.
A couple of places on the internet have instructions for running specific terminals from Emacs, but they are not as portable as they could be.