Module: PanedRepl::Tmux

Included in:
Repls::BaseRepl
Defined in:
lib/paned_repl/tmux.rb

Instance Method Summary collapse

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_horizontalObject



64
65
66
# File 'lib/paned_repl/tmux.rb', line 64

def even_horizontal
  system "tmux select-layout even-horizontal"
end

#even_verticalObject



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_tmuxObject



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

#tiledObject



68
69
70
# File 'lib/paned_repl/tmux.rb', line 68

def tiled
  system "tmux select-layout tiled"
end