Change README to org format
Move from markdown to org mode. Seems more appropriate. I hope github supports all the syntax.hello-test
parent
f75eb08f0c
commit
c6d716a53c
|
@ -1,3 +0,0 @@
|
|||
# ob-tmux.el
|
||||
|
||||
An ob-screen.el inspired export block for org mode and tmux.
|
|
@ -0,0 +1,93 @@
|
|||
* ob-tmux
|
||||
Ob-tmux is an Emacs library that allows org mode to evaluate code
|
||||
blocks in a tmux session.
|
||||
* Installation
|
||||
Unfortunately, ob-tmux has not yet been added to melpa. You will need
|
||||
to copy the ~ob-tmux.el~ file to a directory in your ~load-path~.
|
||||
** Configuration
|
||||
In your ~.emacs~ or ~.emacs.d/init.el~ file, add the following:
|
||||
#+BEGIN_SRC elisp
|
||||
(require 'ob-tmux)
|
||||
(setq org-babel-default-header-args:tmux
|
||||
'((:results . "silent") ;
|
||||
(:session . "default") ; The default tmux session to send code to
|
||||
;; You can use xterm or gnome terminal
|
||||
(:terminal . "gnome-terminal")))
|
||||
|
||||
;; The tmux sessions are prefixed with the following string.
|
||||
;; You can customize this if you like.
|
||||
(setq org-babel-tmux-session-prefix "org-babel-session-")
|
||||
|
||||
;; Finally, if you tmux is not in your $PATH for whatever reason, you
|
||||
;; may set the path to the tmux binary as follows:
|
||||
(setq org-babel-tmux-location "/usr/bin/tmux")
|
||||
#+END_SRC
|
||||
* Usage
|
||||
You can start a new terminal window with a tmux session as follows:
|
||||
: #+BEGIN_SRC tmux :session hello
|
||||
: echo hello
|
||||
: #+END_SRC
|
||||
If you press =C-c C-c= with your point in the code block, a new
|
||||
terminal window will pop up with a new tmux session named
|
||||
=org-babel-session-hello=.
|
||||
|
||||
You can continue work in this session with another code block.
|
||||
: #+BEGIN_SRC tmux :session hello
|
||||
: echo world
|
||||
: #+END_SRC
|
||||
If you press =C-c C-c= now, no new terminal window will open, but the
|
||||
code will be sent to the existing tmux session.
|
||||
|
||||
You can open new windows within the existing session using the
|
||||
familiar tmux syntax.
|
||||
: #+BEGIN_SRC tmux :session hello:new-window
|
||||
: echo hello world in new-window
|
||||
: #+END_SRC
|
||||
Executing this code block will add a window, ~new-window~, to your
|
||||
session.
|
||||
|
||||
You can exit your tmux session by detaching. The terminal window will
|
||||
close automatically. Ob-tmux will not detect that you have
|
||||
detached. Any commands you send will be sent in the background. You
|
||||
can reattach to your tmux session at any time and check that the
|
||||
commands have indeed been executed.
|
||||
|
||||
Ob-tmux is useful for keeping notes on how to install software
|
||||
or perform tasks in the terminal, especially when some interactivity
|
||||
is required. It is also very useful for starting up your tmux
|
||||
sessions after a reboot. Take a Look at the following snippet.
|
||||
|
||||
: ** Startup tmux
|
||||
: Use ~C-c C-v s~ to execute subtree.
|
||||
: *** Jupyter
|
||||
: #+BEGIN_SRC tmux :session daemons:jupyter
|
||||
: cd ~/projects/notebooks/
|
||||
: jupyter notebook
|
||||
: #+END_SRC
|
||||
: *** htop
|
||||
: #+BEGIN_SRC tmux session daemons:htop
|
||||
: htop
|
||||
: #+END_SRC
|
||||
: *** dmesg
|
||||
: #+BEGIN_SRC tmux :session daemons:dmesg
|
||||
: dmesg
|
||||
: #+END_SRC
|
||||
|
||||
If your point is on the =Startup tmux= header, you can execute all
|
||||
code blocks in the subtree with ~C-c C-v s~ to jump start your tmux
|
||||
sessions.
|
||||
|
||||
* Known bugs and or possible issues
|
||||
My tmux indexes start at 1. By default, tmux window indexes start at
|
||||
zero. This might lead to problems. I have not yet checked.
|
||||
|
||||
Terminals other than xterm and gnome-terminal have not been
|
||||
checked. If you have positive or negative experiences with any other
|
||||
terminal, let me know.
|
||||
|
||||
I will try to respond within a week to any issues raised. I cannot
|
||||
promise I will fix them.
|
||||
* Contributions
|
||||
Contributions are always welcome. Please be in touch before you make
|
||||
sweeping changes or add large features. This may prevent
|
||||
disappointment and will help me help you.
|
Loading…
Reference in New Issue