tmux: Fix C-e & C-y bindings
Apparently I broke them in commit 4e8ab80c66 ("tmux: Fix edge cases
in paragraph text-object") by adding the comments. Through them the
bindings were not set in place since the binding stopped with the
comment (I guess?). Weirdly I do not get an error message and the
default bindings stay, so I am not sure what exactly happens. This could
also be due to a version change from 3.3a to 3.4.
Fix the bindings by starting a code block instead of just escaping the
newline.
Do this also everywhere else to prevent errors in the future.
This commit is contained in:
@@ -63,7 +63,7 @@ bind -n TripleClick1Pane {
|
||||
# when the current pane is in alternate mode and discard the `-e` flag passed to
|
||||
# copy-mode from the default binding (See below)
|
||||
# TODO: Do not modify selection when scolling with the wheel
|
||||
bind -n WheelUpPane \
|
||||
bind -n WheelUpPane {
|
||||
if -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" {
|
||||
send -M
|
||||
} {
|
||||
@@ -73,16 +73,18 @@ bind -n WheelUpPane \
|
||||
copy-mode; send -XN5 scroll-up
|
||||
}
|
||||
}
|
||||
}
|
||||
# Scroll without selecting the pane
|
||||
bind -T copy-mode-vi WheelUpPane send -XN5 scroll-up
|
||||
# Exit copy-mode when at the bottom. This practically mimics `copy-mode -e` but
|
||||
# only scrolling with the wheel (`-e` annoys me when scrolling down with `C-d`).
|
||||
bind -T copy-mode-vi WheelDownPane \
|
||||
bind -T copy-mode-vi WheelDownPane {
|
||||
if -F "#{==:0,#{scroll_position}}" {
|
||||
send -X cancel
|
||||
} {
|
||||
send -XN5 scroll-down
|
||||
}
|
||||
}
|
||||
|
||||
# Split panes with > and <
|
||||
unbind %
|
||||
@@ -132,12 +134,13 @@ bind -r P swap-window -d -t :-1
|
||||
bind -n MouseDrag1Status swap-window -d -t=
|
||||
|
||||
# TODO: do nothing on drags that don't start on a window name
|
||||
bind -n MouseDragEnd1StatusDefault \
|
||||
bind -n MouseDragEnd1StatusDefault {
|
||||
if -F "#{e|>|f|0:#{mouse_x},#{e|/|f:#{window_width},2}}" {
|
||||
run-shell "tmux move-window -at #{last_window_index}"
|
||||
} {
|
||||
move-window -t0
|
||||
}
|
||||
}
|
||||
|
||||
# Repeatable window-movement bindings
|
||||
bind -r \{ swap-pane -U
|
||||
@@ -173,20 +176,22 @@ bind -T copy-mode-vi C-v {
|
||||
|
||||
# Yank into system clipboard with vim-like bindings
|
||||
bind -T copy-mode-vi y run-shell '${XDG_CONFIG_HOME:-$HOME/.config}/tmux/yank.sh'
|
||||
bind -T copy-mode-vi Y \
|
||||
bind -T copy-mode-vi Y {
|
||||
if -F "#{selection_present}" {
|
||||
send -X copy-pipe-line
|
||||
} {
|
||||
send -X copy-pipe-end-of-line
|
||||
}
|
||||
}
|
||||
|
||||
# Clear selection or cancel copy-mode when nothing is selected
|
||||
bind -T copy-mode-vi Escape \
|
||||
bind -T copy-mode-vi Escape {
|
||||
if -F "#{selection_present}" {
|
||||
send -X clear-selection
|
||||
} {
|
||||
send -X cancel
|
||||
}
|
||||
}
|
||||
|
||||
# Use insert-mode-like bindings to cancel copy-mode
|
||||
bind -T copy-mode-vi A send -X cancel
|
||||
@@ -200,7 +205,7 @@ bind -T copy-mode-vi i run-shell '${XDG_CONFIG_HOME:-$HOME/.config}/tmux/textobj
|
||||
# cannot scroll past the first and last history line, both bindings stop
|
||||
# scrolling when the respective line is visible. This mimics the behaviour of
|
||||
# vim's C-y at the top of the file.
|
||||
bind -T copy-mode-vi C-e \
|
||||
bind -T copy-mode-vi C-e {
|
||||
# check that there is still history beneath to scroll to.
|
||||
if -F "#{e|>:#{scroll_position},0}" {
|
||||
send-keys -X scroll-down
|
||||
@@ -209,8 +214,9 @@ bind -T copy-mode-vi C-e \
|
||||
send-keys -X cursor-up
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bind -T copy-mode-vi C-y \
|
||||
bind -T copy-mode-vi C-y {
|
||||
# check that there is still history above to scroll to.
|
||||
if -F "#{e|<:#{scroll_position},#{history_size}}" {
|
||||
send-keys -X scroll-up
|
||||
@@ -219,6 +225,7 @@ bind -T copy-mode-vi C-y \
|
||||
send-keys -X cursor-down
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Navigate panes with <prefix>-[hjkl]
|
||||
# NOTE: C-[hjkl] (w/o prefix) moves through vim splits and tmux panes
|
||||
|
||||
Reference in New Issue
Block a user