summaryrefslogtreecommitdiff
path: root/README.md
blob: 8f85b8c4de786b8e03d3259ec42a63c69bd2facf (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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-<f5>") #'terminal-here-launch)
(global-set-key (kbd "C-<f6>") #'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.