# Terminal Here [![travis][travis-badge]][travis-link] [![melpa][melpa-badge]][melpa-link] [![melpa stable badge][melpa-stable-badge]][melpa-stable-link] [travis-link]: https://travis-ci.org/davidshepherd7/terminal-here [travis-badge]: https://travis-ci.org/davidshepherd7/terminal-here.svg?branch=master [melpa-link]: http://melpa.org/#/terminal-here [melpa-badge]: http://melpa.org/packages/terminal-here-badge.svg [melpa-stable-link]: https://stable.melpa.org/#/terminal-here [melpa-stable-badge]: https://stable.melpa.org/packages/terminal-here-badge.svg An Emacs package to open an *external* terminal emulator in directories associated with the current buffer. ## Usage 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-") #'terminal-here-launch) (global-set-key (kbd "C-") #'terminal-here-project-launch) ``` ## Platforms 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 Should be supported out-of-the-box, but currently untested: * Older versions of Windows * OSX (support is based on what [atom-open-terminal-here](https://github.com/blueimp/atom-open-terminal-here/blob/master/index.coffee#L46) does) 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. ## Alternatives 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](http://emacs.stackexchange.com/questions/7650/how-to-open-a-external-terminal-from-emacs) [the internet](http://ergoemacs.org/emacs/emacs_dired_open_file_in_ext_apps.html) have instructions for running specific terminals from Emacs, but they are not as portable as they could be.