Move all submodules that were under .config/ into .local/share/ (alias
XDG_DATA_HOME). I got convinced that they feel out of place in .config/.
Instead of updating the paths from which they are sourced (e.g.
`TMUX_PLUGIN_MANAGER_PATH` or `packpath`), keep a symlink in the old
location that points to the new one. This has the benefit that
everything related to one program remains mostly accessible from the
same place instead of spreading everything out.
I am still unsure if I really like the new location as I affiliate user
**data** more with something that has to be backed up as it is
non-recreatable. And moving them out of .config/ had the reasoning that
they are not my config files but rather data from the internet that
could be retrieved when deleting. But using XDG_CACHE_HOME seems
unreasonable as well.
We'll see.
Move the fzf-repo from ./local/bin/ to .local/share/.
Update all relative symlinks' (e.g. fzf) targets.
[vim-tmux-navigator][1]:
> Seamless navigation between tmux panes and vim splits
Add the hybrid vim/tmux plugin `vim-tmux-navigator` to switch between
tmux panes and vim splits with `C-[hjkl]`.
Add vim-tmux-navigator as a submodule in tmux/plugins and create a
symlink from vim/pack/plugins/start.
Get rid of similar switching keymappings in the vim and tmux configs.
[1]: https://github.com/christoomey/vim-tmux-navigator
> Sorting folds is not easily possible in vanilla vim. You could join
> all lines in a fold, sort and split them up again; however, it is time
> consuming and tedious.
>
> This little plugin solves that issue: It sorts a visually selected
> region while keeping closed folds intact. Since folds can be created
> in a variety of ways, it is therefore straight-forward to sort
> arbitrary groups of text based on their first line.
> This Vim plugin provides text objects for comments.
>
> `ac` selects a comment including the comment delimiters and `ic`
> selects just the comment content. (There's also a third text object,
> `aC`, which selects a comment including trailing or leading
> whitespace.) These mappings are available in Visual and
> Operator-pending mode.
>
> This plugin uses the `comments` and `commentstring` settings to
> determine what a comment looks like for a given filetype. It works
> with both `/* paired */` and `// simple` comment delimiters.
>
> This plugin depends on the textobj-user plugin.
And load vimtex automatically. I discarded the autocommand as vimtex
only loads a small ftdetect script for tex and the rest of the plugin is
made up of ftplugins, indent files, etc. by itself.
The overhead of the autocmd feels bigger than just loading the small
component and letting vim doing the rest.
(But this is in now way tested/benchmarked. That is just how I feel and
it makes it a tad cleaner)
And move the plugin specific keybindings into 40-keybindings.vim.
`packloadall` sources the plugins directly in contrast to `packadd`.
Because of that we can access the `g:loaded_*` variables and do not have
to specify our own keybindings for vim-surround as now the user bindings
are loaded later and overwrite possible clashes.
Update all submodules to the newest commit.
Change submodule names in `.gitmodules` from local path to repo names.
Sort and group `.gitmodules` by program that uses it.
Remove the clone of 'fzf-tab' as my pull request got merged.
LaTeX files can now be automatically compiled in vim and jumping into
the relevant lines from PDF to code or the other way around is possible
too.
Add the LaTeX coc-language server as well.
Thanks to @AurelWeinhold
These plugins add functionality to automatically close and surround text
with parantheses, brackets, quotes, etc.
Overwrite the vim-surround default bindings since they conflict with my
substitute bindings.
Since the vim plugins are stored in submodules and vim-plug is not a big
fan of that when installing (Needs PlugClean and PlugInstall again
although the repos of the plugins were already pulled) it makes more
sense to me to use vim8s native plugin management.