Default to have both videos and audio (music) in the correct dirs under
`~/media/{audio,video}` directly. This makes logical sense but also fits
much better to my current organization scheme.
Improves the 'subword' and punctuation jumps of the w/e/b keys, by
adhering to snake_case and CamelCase words and jumping to subparts of
them, as well as ignoring 'useless' punctuation when jumping.
Use <S> to jump to any word that is the same as the current word under
the cursor using flash.
Moved the previous flash treesitter binding and updated it to
`treesitter_search` so any word in the current buffer view can be used
as starting point for a tresitter-based selection. Mapping moved to <R>
as is (somewhat) mimics the <yr...> remote-based mappings for flash.
Since flash, while integral to my day-to-day editing is not about
providing a _base_ to other plugins, but editing, it moved to the
editing module.
Spellsync is only really useful in a prose context in my workflows, so
this is where it went.
Gives a very nice viewing and editing experience for csv files. Not sure
what the performance impact is for bigger files, but certainly is worth
it for the smaller ones.
Automatically switches on the view for `.csv` and `.tsv` files.
Additionally, adds some keymaps whenever a csv-like file is loaded (i.e.
when the `CsvViewEnable` mode is on):
<s-j> and <s-k> to traverse up and down rows, <s-l> and <s-k> to
traverse columns left and right. Adds a 'field' textobject (`if` and
`af`), though only a single field can currently be changed at once.
As an experimental change (and following my adding a transient prompt
for nushell which I like), this change adds a transient prompt plugin
for zsh. It then defines the 'tansient prompt' prompt to use starship so
functionally nothing should change about the prompt (or the rprompt),
except for being transient, showing only a character for previous prompts.
From: https://github.com/starship/starship/issues/888#issuecomment-3597694479
Since this function also requires a WIKIROOT to be available in the
environment, we should only define it if that variable is not empty --
just like all the other zk aliases and functions.
Installs vectorcode (the cli program) using uv (if `uv` is available on
the system), to provide a RAG tool for your repositories. Can then be
used in codecompanion to provide better coding feedback.
New combined strategy will first gather suggestions from the history,
and if none are found fall back on normal completion options (e.g. `ls `
may suggest files in current dir, etc).
Also changed the max size that completions will use as buffer to 20, so
we don't have auto suggestions for _huge_ scripts anymore.
Previously, <space> would expand any alias and all environment
variables while <c-space> would simply put a normal space on the zle
without performing any expansion.
This change reverses this, so that nothing gets expanded by default
_but_ if the user wants to specifically expand something the option
exists to simply use <c-space> to see the expanded version.
Added html LSP 'superhtml' (only works for HTML5) and also use it for
formatting html (and 'shtml') files, replacing prettier.
Superhtml seems faster at formatting html and allows switching between
single-line and multi-line tags by adding/removing a space in front of
or behind an html tag, very nifty.
The logging directory in `~/.local/state/nvim/` is absurdly large in my
setup currently.
The prime culprits are `wrapping.nvim` which logs each heuristic
currently, and I've simply disabled logging for.
The bigger one is `lsp.log` which is over 1GB (!) currently, and over
100.000 of those lines were generated by the `htmx-lsp`. That's fair
since it is in early development, so I've removed it for the time being.
Finally changed the 'show line diagnostics' (opening a popup with all
diagnostics on current line) mapping to fit to the other remappings
moving 'diagnostics' to the `e` key, with `<localleader>le`.
And fixed the ability to toggle diagnostics as virtual lines with
`<localleader>lO`.
Held back a little by the issue that you can't really set aliases
conditionally (yet?) in nushell, which is kind of fundamental to my
zsh/sh alias setup. If a program exists, we add some nice aliases -- if
not, we simply degrade gracefully and don't add anything.
PR to track issue:
https://github.com/nushell/nushell/issues/5068
Update to solely use snacks zen mode, removing both twilight and
zen-mode plugins.
For now, we switch to a personal fork of `snacks.nvim` which enables
explicit enabling and disabling of the zen mode.
If it gets upstreamed we can switch back to the regular snacks plugin.
Streamlined some snacks loading and optional lazy-loading.
Since the molten-nvim plugin supports setting `snacks.nvim` as
`molten_image_provider`, we add it as optional dependency.
It is _not_ enabled yet however, have to figure out how to accomplish
this from the embedded optional spec, and also fix molten-nvim before
adding more stuff to it.
`<leader><c-s-Q>` activates the pane selector and lets you decide which
pane to detach from the current _window_ and move to a new one.
This mirrors the `<leader><c-q>` mapping moving a pane to a new tab,
only 'bigger', thus using shift in addition.
The binding is a little awkward, but with how rarely I have needed to
use it this was fine for me so far.
The suggested history completion on the reedline (i.e. fish-like
autosuggestion) can be fully completed with the `l` key in vi cmd mode.
This change adds the ability to complete the suggestion partially by
completing the current word using `e`. If no history suggestion exists
it moves to the end of the current word as usual.
This mimics the partial completion I have set up in zsh with the help of
the `zsh-autosuggestions` plugin.
Using <c-z> when a process is running backgrounds it (default behavior)
using the new nushell job control system (since v0.103).
This change also lets you re-foreground the backgrounded program with
the same <c-z> key mapping.
Additionally we add the `fg` alias which does the same and thus mimics
the fg command of other shells like zsh.
Enabled transient prompt for nushell so we only display the line
character and attempt to display command durations for past prompts.
Not sure if command duration is working correctly. If not, might have to
revert this change.
Removed the buffer editor hardcoding to 'nvim', should use the EDITOR
env var instead.
Added the (currently undocumented?) config option to enable fuzzy
completion matching - essentially enables exactly the behavior the
'fzf-tab-complete' plugin does for zsh, only natively in the nushell
program.
See: https://github.com/nushell/nushell/issues/1275#issuecomment-2964573062
`td` will display things that are either due today or in the past, or
scheduled today or in the past.
`TD` will _only_ display things that are explicitly due today or in the
past.
Explicitly enable terraform and typst version displays (if in directory
with terraform state files or .typ files for typst), and change the
symbol for the typst module to a feather (which is much nicer than the
plain 't' it would display otherwise).
Added little single-character displays at the front of the prompt if we
are in a shell different from zsh to remind myself (since they all look
exactly the same with starship).
Toggle sudo prefix for command line with <alt-s>. Not sure if I will
keep this binding in the long run but it is a good example of command
execution using nushell through a key binding.
From: https://github.com/nushell/nushell/discussions/16043
It is no longer necessary to manually install the nushell tresitter as a
lazy plugin spec, according to:
https://github.com/nushell/tree-sitter-nu/blob/main/installation/neovim.md
Instead we just enable the treesitter 'nu' language in the
`languages.lua` file as usual and it works out of the box.
With the power of dotter for dotfile management we can move the files we
want to link anywhere in our repository.
So finally we're making use of it to keep the bash config files in the
`terminal/.config/bash` directory, as well as removing the leading dot
from both the zsh configuration files.
The following is added to all three shells bash, zsh, nushell:
Pressing c-t at any time lets you insert a file/dir at the current
cursor location using fzf. Same for 'T' in vicmd mode.
Pressing alt-c at any time lets you jump to that directory using zoxide,
with the zle editor content intact. Same for 'C' in vicmd mode.
Zsh implementation from: https://github.com/ajeetdsouza/zoxide/issues/357
Bash implementation: https://github.com/ajeetdsouza/zoxide/issues/516
Nushell implementation taken from: https://github.com/junegunn/fzf/issues/4122
TODO: Nushell fzf mapping has one problem in that it does not quote the
selected file in any way. So any file with e.g. a space in it will have
to be manually fixed afterwards.