Commit Graph

774 Commits

Author SHA1 Message Date
64353b4ffa vim:funcs: Call timer_start instead of executing
Fix a small but stupid bug that the result of `timer_start` (i.e. the
timer ID) was evaluated as Ex command. This would lead to a jump to the
top of the file, every time the vimrc was reloaded (i.e. when a .vim is
saved).

Use `call` instead of `execute`, to fix this.
2022-08-25 04:20:13 +02:00
80b533d089 vim: Highlight non-ASCII characters 2022-08-25 03:35:27 +02:00
4415ff4653 vim: Fix broken highlight of trailing whitespaces
Apply the following:

1. Switch to `matchadd` as `match` can only be used for **one**
   highlight
2. Use an autocommand group for better behaviour when reloading the
   vimrc.
3. Use just one pattern as it seems to work always. (Apparently `\%#` is
   not matched in normal mode)
2022-08-25 03:33:11 +02:00
73aa0e9752 vim:keys: Use RFC 3339 when converting unix times
Use a format conforming to RFC 3339 instead of following the systems
locale.
2022-08-25 01:14:39 +02:00
a38ac0e738 zsh:funcs:mkcd: Prevent recursion with command
Call the external command `mkdir` to prevent recursion through the alias
added in 7834a6bee2 ("zsh:alias: Alias `mkdir` to `mkcd`").
2022-07-14 17:19:30 +02:00
bc7a539186 vim:keys: Add <leader>utc to convert unix time
Add `<leader>utc` to convert unix timestamps into a human readable
format.
2022-07-14 14:25:00 +02:00
83d991cb53 vim:keys: Map <leader>gg to `:G 2022-07-14 14:24:59 +02:00
17fd0409a4 tmux: Make { and } repeatable 2022-07-14 14:24:59 +02:00
7834a6bee2 zsh:alias: Alias mkdir to mkcd 2022-07-14 14:24:58 +02:00
e931f20a7e zsh:funcs:mkcd: Support - and -- arguments 2022-07-13 17:49:45 +02:00
ee1ec50322 zsh:funcs:mkcd: Improve argument parsing
Do not switch into a directory, if multiple were created. Support flags
given at the end of the commandline (e.g. `mkdir foo/bar -p`)
2022-07-13 17:28:40 +02:00
d4ee271740 zsh:alias:qmv: Use destination-only edit format
Use the `destination-only` edit format when renaming files with `qmv`.

`dual-column` mode got on my nerves as I tend to forget with side is
source and which is destination. On top, the `swap` option breaks as
soon as I change the length of a filename.

`single-column` mode is useless for me, as I tend to make changes in
visual block mode.
2022-07-13 12:14:39 +02:00
43bf8801f9 git:interactive.diffFilter: Disable diff-so-fancy
Disable diff-so-fancy as `interactive.diffFilter` for now, as it is
incompatible with git version `v2.37`.[1]

[1] - https://github.com/so-fancy/diff-so-fancy/issues/437
2022-07-12 21:00:12 +02:00
43d87467d2 git:checkout-worktree: Pass all arguments
Pass all given arguments to `git worktree add`. This makes it possible
to directly create a new branch with `-b` for example. As the arguments
are not used anywhere else, this should not introduce any parsing
issues.
2022-07-12 21:00:12 +02:00
e949ffefef git: Set interactive.singleKey
In interactive commands, allow the user to provide one-letter input with
a single key (i.e., without hitting enter). Currently this is used by
the --patch mode of git-add(1), git-checkout(1), git-restore(1),
git-commit(1), git-reset(1), and git-stash(1). Note that this setting is
silently ignored if portable keystroke input is not available; requires
the Perl module Term::ReadKey.[1]

[1] - git-config(1)
2022-07-12 21:00:12 +02:00
0ccca77457 zsh:settings: Set HIST_REDUCE_BLANKS
Remove superfluous blanks from each command line being added to the
history list.
2022-07-12 21:00:11 +02:00
46565c2d6b vim:keys: Nvim does not replace has('clipboard')
Neovim does not make `has('clipboard')` obsolete. It only simplifies
clipboard support but `has('clipboard')` will still return `0` if no
supported clipboard program is installed.

See `:help clipboard`

    Nvim has no direct connection to the system clipboard. Instead it
    depends on a |provider| which transparently uses shell commands to
    communicate with the system clipboard or any other clipboard
    "backend".

and `:help clipboard-tool`

    The presence of a working clipboard tool implicitly enables the '+'
    and '*' registers. Nvim looks for these clipboard tools, in order of
    priority:

      - |g:clipboard|
      - pbcopy, pbpaste (macOS)
      - wl-copy, wl-paste (if $WAYLAND_DISPLAY is set)
      - xclip (if $DISPLAY is set)
      - xsel (if $DISPLAY is set)
      - lemonade (for SSH) https://github.com/pocke/lemonade
      - doitclient (for SSH)
        http://www.chiark.greenend.org.uk/~sgtatham/doit/
      - win32yank (Windows)
      - termux (via termux-clipboard-set, termux-clipboard-set)
      - tmux (if $TMUX is set)
2022-07-12 21:00:11 +02:00
2ac0e01766 python: Handle non-existing history file
Create a dummy entry in the history file if it does not exist yet or is
empty. Otherwise `~/.python_history` would be used by site.py.
2022-07-12 21:00:11 +02:00
ffaef0fd54 *: More XDG environment variables and configs
More configurations of programs that do not follow the XDG Base
directory Standard correctly.
2022-07-12 21:00:11 +02:00
7b40b3ea98 zsh:alias: Exclude .git & tags when grepping
Those are more or less never a place that I want to include when
grepping recursively or through a glob.
2022-07-12 21:00:10 +02:00
a8f6973968 tmux: Use pane-border as indicator for {copy,sync}
In tmux version 3.2 all style options were changed to string
options, making them support formats.[^1]

From that version on, use the pane-borders as indicator for the
{copy,sync}-mode instead of the prefix_highlight plugin.

Keep the pure style fallback, as Ubuntu 20.4 for example still only
ships with version 3.0a.

[^1]: https://github.com/tmux/tmux/commit/f03b61131b34079
2022-07-12 21:00:10 +02:00
747ffd01e3 tmux:prefix_highlight: Invert fg,bg + red for sync
- Invert the prefix_highlight colors so that it is less obtrusive.
 - Use `brightred` for the background of the sync-mode indicator.

This way the prefix, copy-mode and sync-mode indicators are visually
differentiable.
2022-07-12 21:00:10 +02:00
65fc5efdec git:submodule-rm: Update to current .git structure
Update the function to use the current `.git/modules/` structure, by
only using the basename of the path.

I am not sure when this was changed and too lazy right now to find it
out.
2022-07-12 21:00:10 +02:00
0faf19ad3d git:alias: Add git-submodule-rm for function
Just add a git alias to the already existing zsh function to make it
easier to call it.
2022-07-12 21:00:09 +02:00
18625091ed tmux: Add a 'resize mode' similar to my i3 config
Add a 'resize mode' that behaves similar to the one in my i3 config.
When pressing the binding `<prefix>r`, a new key-table is selected that
allows resizing with `hjkl` as well as choosing the different layouts
directly over the number row.
2022-07-12 21:00:09 +02:00
e0fdd45e6c tmux: Add binding to synchronize panes
Synchronize the panes in the current window with `<prefix>S`.
2022-07-12 21:00:09 +02:00
d9ea048411 tmux: Also display indicator for copy-mode 2022-07-12 21:00:09 +02:00
e609efc385 tmux: Also display indicator for synchronize-panes
Also display an indicator when synchronize-panes is turned on in the
status bar, not only for the prefix.
2022-07-12 21:00:08 +02:00
f2978fa030 tmux: Remove unneeded prefix_highlight_*fix
Remove unneeded `prefix_highlight_output_{pre,suf}fix` option, as a
space is the default value from the `tmux-prefix-highlight` plugin.
2022-07-12 21:00:08 +02:00
d1211dbc0d vim:settings: Add block to virtualedit
Let the cursor move beyond the EOL when in visual-block mode.
2022-07-12 21:00:08 +02:00
75611be2f8 tmux: Use short command variants
Use short variants of commands and get rid of redundant `-T prefix` flag
to `bind`.
2022-07-12 21:00:08 +02:00
f429da3fd9 tmux: Use short command variants
Use short variants of commands and get rid of redundant `-T prefix` flag
to `bind`.
2022-07-12 21:00:08 +02:00
8755ade944 tmux: Format lines to fit into a width of 80 2022-07-12 21:00:07 +02:00
79e34c3e4f tmux: Use <Esc> to clear selection and cancel
Use <Esc> to clear the selection and cancel copy-mode depending on if
something is selected.
2022-07-12 21:00:07 +02:00
b4e0d4111b tmux: Allow C-h to still be passed
Some programs (e.g. the UEFI shell) expect it for backspace.
2022-07-12 21:00:07 +02:00
d5fdfd37e9 tmux: Do not auto exit copy-mode when at bottom
Do not exit automatically the copy-mode when reaching the bottom.  This
was especially annoying/dangerous when holding `C-d` down to scroll to
the bottom.
2022-07-12 21:00:07 +02:00
c906c5ffb6 vim:keys: Add <leader>h mapped to :Helptags 2022-07-12 21:00:07 +02:00
01ebc211bb vim:autocmd: Disable relative numbers in insert
As relative line numbers are only really needed in normal mode and in
the current buffer, disable them in insert mode or when the
buffer/window is not focused.
2022-07-12 21:00:05 +02:00
b2536d7c2f vim:settings: Set inccommand=split
Show partial off-screen effects of a command in a preview window.
2022-07-12 21:00:05 +02:00
b63bbc391f vim:ftplugin:python: Set foldmethod locally 2022-07-12 21:00:05 +02:00
40ff2ac6c4 polybar: Add transparency 2022-07-12 21:00:05 +02:00
392bc1c49b tmux:plugs: Remove tmux-yank
It messes with mappings I set (e.g. `MouseDragEnd1Pane`) and brings no
real addition in functionality.
2022-07-12 21:00:04 +02:00
ab7b10eb20 picom: Update kawase to dual_kawase
Blur method 'kawase' has been renamed to 'dual_kawase'. Interpreted
    as 'dual_kawase', but this will stop working soon.
2022-07-12 21:00:04 +02:00
39df041443 vim:ftplugin:vim: Use local <buffer> autocmd
Fix the issue that the vim config would always be reloaded on save
(jumping to the BOF; another TODO) even in non `*.vim` buffers, after a
vim file was opened once in the session.

Fix this by defining the autocmd only local to the current buffer.

See also :help autocmd-buflocal
2022-07-12 21:00:04 +02:00
be6e5df3ea zsh:funcs:suffix: Do not quote extra
Since 5258b5ed4217 ("zsh:funcs:suffix: Support quotes), all special are
escaped anyway (including whitespace), making it unnecessary to quote
the names extra.
2022-07-12 21:00:04 +02:00
818ebdc144 zsh:funcs:suffix: Support quotes
Quotes need to be escaped, otherwise `(Q)` will not work on potential
uneven number of quotes.
2022-07-12 21:00:04 +02:00
bf1eadbb79 zsh:funcs:suffix: Fix multiple suffixes
While trying to handle whitespace in the suffixes the support for
passing multiple suffixes broke.

This should now support multiple suffixes as well as included
whitespaces.
2022-07-12 21:00:03 +02:00
efa7054b82 zsh:funcs: Add suffix
Find files that end with one of multiple given suffixes.

Usage:
suffix sfx... [-- path...]

`sfx` is given to `find` in the form `-name "*$sfx"`.
`path` is given as starting point to `find`, defaulting to `.`.
2022-07-12 21:00:03 +02:00
fd575d3784 zsh:funcs:spellcheck: Fix indentation
I forgot to reindent part of the function after moving the

    if (( $+commands[shellcheck] ))

check into the function. Before it was wrapping the function definition.
2022-07-12 21:00:03 +02:00
b61429a176 zsh:funcs:pgrep: Format + rephrase comment 2022-07-12 21:00:03 +02:00