Compare commits

..

6 Commits

Author SHA1 Message Date
a3e83e4844 zsh:alias:lsblk: Display all mountpoints 2025-08-07 13:10:02 +02:00
0af6c9fb24 zsh:keys: Fix override of fzf-cd-widget
This commit addresses a couple of issues:

1. fzf's `key-bindings.zsh` was sourced twice: Once in keys.zsh and once
   via the symlink in `external-plugins/`. Fix this by removing the
   source in `keys.zsh`.

2. The section about the fzf bindings in keys.zsh was a mess. Reorder
   and rewrite some comments to make it nicer.

3. My just added custom `fzf-cd-inplace-widget` does not work like this.
   Since `key-bindings.zsh` is sourced (was sourced again) after
   `keys.zsh`, my override is overridden itself by the default. I
   noticed and fixed this when I originally wrote and tested the
   function, but unfortunately I forgot the old `bindkey` commands in
   `keys.zsh`, which is why I now forgot about it and committed this
   erroneously. To fix this, bind the keys after sourcing
   `key-binding.zsh` in the newly added `fzf.key-bindings.config.zsh`.
   Additionally, move the widget definition as well to have everything
   at one place.

Fixes: 3cf445e739 (zsh:keys: Modify fzf's cd widget to be "in-prompt",
       2025-08-06)
2025-08-06 13:30:56 +02:00
3cf445e739 zsh:keys: Modify fzf's cd widget to be "in-prompt"
Currently, fzf's cd widget executes the cd command via accept-line, so
the command is also visible in the scrollback buffer. In contrast to
this, the cd-{forward,backward,up} suite changes the directory in-place,
without touching BUFFER, with an additional prompt redraw (one could say
"in-prompt"). Since I find this more appealing, overwrite the default
fzf widget with a custom one that has the same behaviour.
2025-08-06 12:30:35 +02:00
688f8e18aa vim:ftplug:shell*: Add - to &iskeyword
Add the dash to the keyword character list since command names can (and
do) contain them.
2025-08-06 12:30:35 +02:00
5baad5d7a2 vim:ftplug: Remove broken cuda.vim symlink
c.vim does not exist anymore since commit 4802abee17 (vim:setts:
Revert "Include `-` in `&iskeyword`", 2025-07-20).
2025-08-06 12:30:35 +02:00
59863b28b3 tmux: Fix scrolling down in alternate mode
Scrolling down with the mouse wheel in alternate mode (e.g. less)
stopped working for me. I'm pretty sure that this used to work, but tmux
never had a default binding for WheelDownPane, so I'm unsure from where
this change should have come from ¯\_(ツ)_/¯
2025-08-06 11:38:24 +02:00
8 changed files with 57 additions and 8 deletions

View File

@@ -117,6 +117,21 @@ bind -T copy-mode-vi WheelDownPane {
} }
} }
# Make mouse wheel scroll down properly in alternate mode
bind -n WheelDownPane {
send -M
if -F "#{||:#{pane_in_mode},#{mouse_any_flag}}" {
send -M
} {
if -F "#{alternate_on}" {
send -N5 down
} {
# we're already at the bottom of the history, so nothing
# needs to be done here
}
}
}
# Split panes with > and < # Split panes with > and <
unbind % unbind %
bind < splitw -v -c "#{pane_current_path}" bind < splitw -v -c "#{pane_current_path}"

View File

@@ -0,0 +1,2 @@
" source ./shell.vim (adds `-` to &iskeyword)
execute "source " .. expand("<sfile>:h") .. "/shell.vim"

View File

@@ -1 +0,0 @@
c.vim

View File

@@ -0,0 +1,2 @@
" Include `-` in keyword characters since command names can contain them
setlocal iskeyword+=-

View File

@@ -0,0 +1,2 @@
" source ./shell.vim (adds `-` to &iskeyword)
execute "source " .. expand("<sfile>:h") .. "/shell.vim"

View File

@@ -192,7 +192,7 @@ fi
(( ${${aliases[rm]}[(ei)rm]} > ${#${aliases[rm]}} )) || (( ${${aliases[rm]}[(ei)rm]} > ${#${aliases[rm]}} )) ||
add_flags rm -I add_flags rm -I
add_flags mkdir -p add_flags mkdir -p
add_flags lsblk -o NAME,LABEL,TYPE,FSTYPE,SIZE,FSAVAIL,MOUNTPOINT add_flags lsblk -o NAME,LABEL,TYPE,FSTYPE,SIZE,FSAVAIL,MOUNTPOINTS
add_flags feh --start-at add_flags feh --start-at
# Use multiple jobs when making # Use multiple jobs when making
add_flags make -j add_flags make -j

View File

@@ -248,11 +248,15 @@ bindkey '^[[1;5A' fzf-history-widget
bindkey -M vicmd '^K' fzf-history-widget bindkey -M vicmd '^K' fzf-history-widget
# Fuzzy finder bindings: # Fuzzy finder bindings:
# ^T fzf-file-widget #
# \ec (Alt-C) fzf-cd-widget # - ^T fzf-file-widget
# ^R fzf-history-widget # - \ec (Alt-C) fzf-cd-widget
# TODO: ^R should insert the history line in BUFFER to differ from ctrl-up # - ^R fzf-history-widget
#
# are sourced via 90-external-plugins/50-fzf.key-bindings.zsh, but see also
# 55-fzf.key-bindings.config.zsh
# Discard stderr (i.e. permission denied)
FZF_CTRL_T_COMMAND="${FZF_DEFAULT_COMMAND} 2>/dev/null" FZF_CTRL_T_COMMAND="${FZF_DEFAULT_COMMAND} 2>/dev/null"
# See .zprofile for FZF_ALT_C_COMMAND # TODO: ^R should insert the history line in BUFFER to differ from ctrl-up
comp-source "$ZDOTDIR/plugins/fzf/shell/key-bindings.zsh"

View File

@@ -0,0 +1,25 @@
# Overwrite fzf's Alt-C binding to be "in-prompt"
# Modified version of
# https://github.com/junegunn/fzf/blame/f864f8b5f7ab/shell/key-bindings.zsh#L81-L99
# that changes the directory "in-prompt", meaning that the `cd` command is
# executed in the background with a prompt redraw instead of via `$BUFFER` and
# `accept-line`. This behavior is inspired by cd-{forward,backward} written by
# romkatv (see keys.zsh).
fzf-cd-inprompt-widget() {
setopt localoptions pipefail no_aliases 2>/dev/null
local dir="$(
FZF_DEFAULT_COMMAND=${FZF_ALT_C_COMMAND:-} \
FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse --walker=dir,follow,hidden --scheme=path" "${FZF_ALT_C_OPTS-} +m") \
FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd) < /dev/tty)"
if [[ -z "$dir" ]]; then
zle redisplay
return 0
fi
# --- modifications start here ---
pushd -q "$dir"
redraw-prompt
}
zle -N fzf-cd-inprompt-widget
bindkey -M vicmd '\ec' fzf-cd-inprompt-widget
bindkey -M viins '\ec' fzf-cd-inprompt-widget