Module: PanedRepl::Tmux
- Included in:
- Repls::BaseRepl
- Defined in:
- lib/paned_repl/tmux.rb
Instance Method Summary collapse
- #attach(session_name = nil) ⇒ Object
- #create_session(session_name = nil) ⇒ Object
- #even_horizontal ⇒ Object
- #even_vertical ⇒ Object
- #kill_pane(n) ⇒ Object
- #select_pane(n) ⇒ Object
- #send_keys(keys, frame_id) ⇒ Object
- #setup_tmux ⇒ Object
- #split_horizontal(pane_num = nil) ⇒ Object
- #split_vertical(pane_num = nil) ⇒ Object
- #swap_pane(n1, n2) ⇒ Object
- #tiled ⇒ Object
Instance Method Details
#attach(session_name = nil) ⇒ Object
55 56 57 58 |
# File 'lib/paned_repl/tmux.rb', line 55 def attach(session_name=nil) session_name ||= name system "tmux attach -t #{session_name}" end |
#create_session(session_name = nil) ⇒ Object
50 51 52 53 |
# File 'lib/paned_repl/tmux.rb', line 50 def create_session(session_name=nil) session_name ||= name system "tmux new -s #{session_name} -d" end |
#even_horizontal ⇒ Object
64 65 66 |
# File 'lib/paned_repl/tmux.rb', line 64 def even_horizontal system "tmux select-layout even-horizontal" end |
#even_vertical ⇒ Object
60 61 62 |
# File 'lib/paned_repl/tmux.rb', line 60 def even_vertical system "tmux select-layout even-vertical" end |
#kill_pane(n) ⇒ Object
37 38 39 40 |
# File 'lib/paned_repl/tmux.rb', line 37 def kill_pane(n) `tmux kill-pane -t #{n}` @main_pane = @main_pane - 1 end |
#select_pane(n) ⇒ Object
7 8 9 |
# File 'lib/paned_repl/tmux.rb', line 7 def select_pane(n) `tmux select-pane -t #{n}` end |
#send_keys(keys, frame_id) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/paned_repl/tmux.rb', line 42 def send_keys(keys, frame_id) frame_selector = %{ -t #{frame_id} } if frame_id system " tmux send-keys \#{frame_selector} \"\#{keys}\" C-m\n SH\n select_pane @main_pane\nend\n" |
#setup_tmux ⇒ Object
3 4 5 |
# File 'lib/paned_repl/tmux.rb', line 3 def setup_tmux @main_pane = 0 end |
#split_horizontal(pane_num = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/paned_repl/tmux.rb', line 22 def split_horizontal(pane_num=nil) pane_num ||= @main_pane select_pane(pane_num) system "tmux split-window -h" if pane_num == @main_pane swap_pane @main_pane, @main_pane + 1 end @main_pane = @main_pane + 1 select_pane(@main_pane) end |
#split_vertical(pane_num = nil) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/paned_repl/tmux.rb', line 11 def split_vertical(pane_num=nil) pane_num ||= @main_pane select_pane(pane_num) system "tmux split-window -v" if pane_num == @main_pane swap_pane @main_pane, @main_pane + 1 end @main_pane = @main_pane + 1 select_pane(@main_pane) end |
#swap_pane(n1, n2) ⇒ Object
33 34 35 |
# File 'lib/paned_repl/tmux.rb', line 33 def swap_pane(n1,n2) system "tmux swap-pane -s #{n1} -t #{n2}" end |
#tiled ⇒ Object
68 69 70 |
# File 'lib/paned_repl/tmux.rb', line 68 def tiled system "tmux select-layout tiled" end |