diff --git a/src/fingers/action_runner.cr b/src/fingers/action_runner.cr index cb59adb..31cd509 100644 --- a/src/fingers/action_runner.cr +++ b/src/fingers/action_runner.cr @@ -66,7 +66,6 @@ module Fingers return nil if offset.nil? `tmux copy-mode -t #{original_pane.pane_id}` - `tmux send-keys -t #{original_pane.pane_id} -X start-of-line` `tmux send-keys -t #{original_pane.pane_id} -X top-line` `tmux send-keys -t #{original_pane.pane_id} -N #{offset.not_nil![0]} -X cursor-down` `tmux send-keys -t #{original_pane.pane_id} -N #{offset.not_nil![1]} -X cursor-right` diff --git a/src/fingers/commands/start.cr b/src/fingers/commands/start.cr index d6e0066..57361eb 100644 --- a/src/fingers/commands/start.cr +++ b/src/fingers/commands/start.cr @@ -133,7 +133,7 @@ module Fingers::Commands end private getter pane_contents : Array(String) do - tmux.capture_pane(target_pane).split("\n") + tmux.capture_pane(target_pane, join: mode != "jump").split("\n") end private getter view : View do diff --git a/src/tmux.cr b/src/tmux.cr index 910b1d5..7c03141 100644 --- a/src/tmux.cr +++ b/src/tmux.cr @@ -148,15 +148,15 @@ class Tmux Pane.from_json(output) end - def capture_pane(pane : Pane) + def capture_pane(pane : Pane, join = true) if pane.pane_in_mode && !pane.scroll_position.nil? scroll_position = pane.scroll_position.not_nil! start_line = -scroll_position.to_i end_line = pane.pane_height.to_i - scroll_position.to_i - 1 - exec("capture-pane -J -p -t '#{pane.pane_id}' -S #{start_line} -E #{end_line}").chomp + exec("capture-pane #{join ? "-J" : ""} -p -t '#{pane.pane_id}' -S #{start_line} -E #{end_line}").chomp else - exec("capture-pane -J -p -t '#{pane.pane_id}'").chomp + exec("capture-pane #{join ? "-J" : ""} -p -t '#{pane.pane_id}'").chomp end end