Commit Graph

554 Commits

Author SHA1 Message Date
f317ed81c2 git: Add last-changed to mimic github file browser
List all files and directories but include the latest commits date and
subject, similar to the file browser in web-UIs of services like GitHub.
Also sort the entries by the commits date and time to see the most
recent changed files/folders at the bottom.
2023-01-17 01:38:17 +01:00
a7b975ae71 zsh:keys:cmd-on-enter: Check PREBUFFER as well
When typing a multi-line input (e.g. `echo foo\<CR>`) BUFFER can be
empty, even though the entire input is not.

Fix this by checking if PREBUFFER and BUFFER are empty.
2023-01-17 00:33:19 +01:00
6bfc7bbcbc zsh:funcs: Write a wrapper for pdfunite
Write a wrapper for pdfunite that tries to prevent an overwrite of an
existing file when forgetting to specify the destination-file.
2023-01-11 22:03:19 +01:00
5c1b67ddfc zsh:keys:cmd-on-enter: Don't place cmds in history 2022-12-29 18:09:20 +01:00
8da38e9224 zsh:options: Make globbing sensitive to case
I am not sure why I had this activated.

Case insensitive globbing can still be achieved by using the Globbing
Flag `i`.
2022-12-28 17:05:15 +01:00
6672387bee zsh:funcs:finddup: Use byte size for first filter
Use the byte size as first filter instead of the size in 1KB blocks.

This way the filter is way more accurate and filters out more files
for which the md5sum does not need to be calculated.
2022-12-28 02:02:04 +01:00
6bb26ac2fd zsh:funcs:finddup: Add TODO to use CRC instead md5 2022-12-28 01:56:55 +01:00
b38e01c72a zsh:funcs:finddup: Support filenames with spaces
Previously when filenames contained spaces, the function would break as
`awk {print $2,$1}` would only print a part of the filename.

The field swap was used as a workaround so that `uniq` only compares the
sizes, and `uniq` unfortunately only has a flag to **skip** fields.

Fix this issue by using a short awk script that mimics `uniq` but only
with the first field (i.e. the size).

My awk foo is unfortunately not very good, and that is why the one-liner
prints out the first duplicated line multiple time. The `sort -u` pipe
afterwards gets rid of those.
2022-12-28 01:52:56 +01:00
df39b04cb2 zsh:ls-show-hidden: Take quotes in double brackets 2022-12-27 16:53:25 +01:00
3ddfadf360 zsh:ls-show-hidden: Fix listing of broken symlinks
The `-e` and `-d` checks fail if the file is a broken symlink, which
would lead to a 'No such file...' message for each of them.
2022-12-27 16:47:17 +01:00
c4125ddc25 zsh:ls-show-hidden: Fix ./ listing on non-existing
Fix a bug that ls-show-hidden always listed `./` when all other non-flag
arguments were non-existing (in addition to their 'No such file...'
message).
2022-12-27 16:45:06 +01:00
9b0e49b319 zsh:ls-show-hidden: Use short param expansion form
Use the short parameter expansion form where it leads to a better
readability in my eyes (e.g. "${dir:A}" -> "$dir:A" does not, I think.)
2022-12-27 16:39:40 +01:00
b93c4ee377 zsh:glog: Only pipe to fzf if stdout is a tty
This makes it easy to use `glog` in a pipe as replacement for `git log
--oneline`, for example to count the commits.
2022-12-27 04:27:21 +01:00
aa28483381 zsh:p10k: Support mullvads VPN network interface 2022-12-26 23:53:10 +01:00
73c0864c8b git: Add https-and-ssh to setup origin
Sets up origin so that it fetches over https but pushes over ssh. This
way unlocking the ssh key is only needed when really necessary.
2022-12-01 01:27:28 +01:00
8c0cd77700 zsh:alisa: Do not show line numbers in less
I rarely need them and can still activate them manually.
2022-11-14 13:03:02 +01:00
7e0dcacc09 zsh:alias: Add gha for git add -p
Similar to the `<leader>gha` ("git hunk add") mapping in my vimrc.
2022-11-11 16:44:48 +01:00
b8d2fc28df zsh:alias: Sort git aliases 2022-11-11 16:44:34 +01:00
6aac7e7848 zsh:alias: Add gco for git checkout 2022-11-08 13:50:54 +01:00
b22085777e git:checkout-worktree: Remove tmp dir on error
When the git-worktree call exits with an error we can delete the
temporary directory as nothing is in it.
2022-10-27 23:52:17 +02:00
c41e395325 vim:keys: Use non-vi versions of backward delete
The `vi-` versions stop working after using `push-input` and trying to
edit the reappeared line.

This could be an upstream bug, as I can recreate it with `zsh -f`.
2022-10-21 17:33:57 +02:00
1930c8758f zsh:keys: Make shift-return act like return 2022-10-21 11:05:18 +02:00
350dd257f0 zsh:keys: Change ctrl-dot sequence to libtermkey 2022-10-21 01:25:36 +02:00
49e8e3a756 zsh:keys: Move through dirs like vims jumplist 2022-10-21 01:25:00 +02:00
286baf335f zsh:keys: Shift-{,Back}space should act like w/o 2022-10-21 01:23:43 +02:00
8651b073eb zsh:keys: Rely more on terminfo and use libtermkey
Introduce first mapping that follows the 'fixed keyboard input'[^1]
sequences. They allow the differentiation of all keys with each modifier
without gotchas like `tab` send the same sequence as `ctrl-i`.

[^1] - https://www.leonerd.org.uk/hacks/fixterms/
2022-10-21 01:22:52 +02:00
658797bda2 zsh:keys: Use vi- variants of navigation binds
They seem to be more consistent in doing the same/reversed thing when
triggering them backwards.
2022-10-21 01:22:51 +02:00
e15fc71054 zsh,git: Add git-make-fork 2022-10-17 17:28:31 +02:00
61e8ccc176 zsh:glog: Add bindings for faster navigation 2022-10-15 19:01:18 +02:00
af2c96cd5c zsh:glog: Cycle preview positions with ctrl-space 2022-10-15 18:57:11 +02:00
87e3232780 zsh:glog: Require 152 columns for preview on right
This seem to make more sense especially for smaller terminals where the
previous formula would have resulted in both sides being unreadable.
2022-10-15 18:56:26 +02:00
f7c43d5044 zsh:keys: Use ^s for vi-pound-insert
Change the binding from `^3` to `^s` and use vi-pound-insert as that one
does not accept the line.
2022-10-11 00:43:27 +02:00
faddf9dbb1 zsh:funcs: Add pyhelp to display python help pages 2022-10-10 20:30:40 +02:00
eb160de09b zsh: Remove nvim-man and use neovim as MANPAGER
`:Man` wraps to the window width if `$MANWIDTH` is not set, making
`nvim-man` as man wrapper obsolete.
2022-10-09 19:51:03 +02:00
dc25c88fe7 zsh:alias: Add --full --list-full to pgrep 2022-10-09 19:51:03 +02:00
c0a741889b zsh:funcs:psgrep: Pass regex directly
If a pattern is passed that starts with a special character, the
`[]`-"quoting" would possible lead to errors or change it's meaning.

To prevent that, pass the argument directly to grep if it looks like a
regex (i.e. contains a special character).
2022-10-09 19:51:03 +02:00
b398375020 zsh:funcs:psgrep: Print column info 2022-10-09 19:51:03 +02:00
6a1537eda8 zsh:funcs: Rename pgrep to psgrep
Instead of replacing pgrep, have this function under a slightly
different name.

Also add support for multiple arguments as the function does not aim to
be called under the same name now.
2022-10-09 19:51:03 +02:00
1d99d5dbf5 zsh:glog: Do not pass --graph by default
`--graph` can get very slow for large repos with many branches. Make
`glog` independent of it and rather add an alias that uses `glog
--graph`.
2022-10-05 17:13:52 +02:00
bf7d9dbeeb zsh:keys: Use consistent notation for ASCII escape 2022-09-28 01:19:32 +02:00
69edbd6f10 zsh:ls-show-hidden: Add -- support
All arguments following `--` should be taken as either files or
directories not flags, even if they start with a dash.
2022-09-27 01:28:10 +02:00
e5010d76b5 zsh:ls-show-hidden: Correct print format
When an argument is passed that does not exist, `ls` always prints the
directory name for the existing ones, even if there is only one
remaining directory that is listed.
2022-09-27 01:16:19 +02:00
82fc29f9c0 zsh:ls-show-hidden: Fix non_existing arg parsing
`ls` prints a warning if a non-flag argument is specified that does not
exist.

Previously ls-show-hidden assumed that all arguments that are neither a
directory nor an otherwise existing file are flags. As all flags are
passed to the ls call the warning still got printed, but this also lead
to the current working directory (i.e. `.`) being added to the
directories to process.

If `ls` expects an argument to a flag, it is always passed in the format
`--flag=arg` where the equal sign is mandatory. This makes it possible
to simply filter out all flags (and their arguments) from the other
arguments without needing to know which flags take an argument and which
don't.

Fix this behaviour by printing the same warning as `ls` does when an
argument is neither a flag, nor a directory nor an existing file. Also
only add `.` to the directories if *really* only flags were passed.
2022-09-27 01:05:42 +02:00
14f615f5e1 zsh:keys:ratio_dots: Fix preview of first word
Previously the path preview misbehaved when typing dots on the first
shell word (e.g. executing a script in a parent directory). This
happened as the `(z)` parameter expansion flag does not expand to an
array rather a scalar. Because of that, `[-1]` returns the last
character.

Work around this issue by prepending LBUFFER with a dummy word, so that
it always contains at least 2 words.
2022-09-22 15:15:07 +02:00
9a5536c5c5 zsh:keys:rationalize_dots: Add comments 2022-09-22 15:14:38 +02:00
8792518bcb zsh:keys:rationalize_dots: Add .. scenario
Handle an LBUFFER value of `..` before pressing `.` by adding `/../`.
This scenario can only occur by deleting previously added segments or
using the new `default_dot` (See previous commit 72a8cfbcb ("zsh:keys:
Add normal `.` behaviour on `Ctrl-.`")).
2022-09-22 15:09:39 +02:00
72a8cfbcb0 zsh:keys: Add normal . behaviour on Ctrl-.
Having bound `.` to `rationalize_dots` makes typing paths with multiple
`../` segments super easy. This gets cumbersome in some situations
though.

Typing a path like `../.local` is only possible by either typing
`../.<BS><BS>local` (as it is expanded to `../../` on the third dot) or
`..//.local` which is not as annoying but somehow breaks completion on
further path segments.

Bind `Ctrl-.` (i.e. `^N`) to insert a normal dot.
2022-09-22 14:39:20 +02:00
d7c9bda8a7 zsh:options: Enable CSH_NULL_GLOB
Error only if all patterns of a command have no matches.
2022-09-22 03:02:24 +02:00
ccea907173 zprofile: Source private variant 2022-09-19 13:39:18 +02:00
181971c1db zsh: Add $fzf_default_no_rg
Move the fallback for $FZF_DEFAULT_COMMAND into the variable
fzf_default_no_rg that is always set.

This way FZF_ALT_C_COMMAND can reuse it instead of spawning a new shell
and messing with PATH.
2022-09-19 13:01:30 +02:00