Commit Graph

287 Commits

Author SHA1 Message Date
551fde8f2b vim:au: Fix empty line selection in linewise-visual
`highlight_selection()` is supposed to abort if the visual mode was
started on an empty line. This was done correctly for charwise-visual
but failed to do so in linewise-visual.
2024-11-04 16:54:51 +01:00
4f25801402 vim:au: Rename functions from CamelCase to snake_case
Make them also script-local as I don't need them outside.
2024-11-01 00:57:58 +01:00
92cc304bbb vim:au: Improve performance of cword/selection highlight
- Combine one `exists` call with an implicit `get` into a `get` with an
  empty default
- Do not stop any timer in the `Highlight*` functions as this done
  already by `ClearHighlights`
- Get rid of the check for existence of `w:*_timer_id` since I believe
  that there is no way of it being unset in the current state. The
  `_Highlight*` functions are only called via the timer so there should
  always be the variable. I could also not reproduce the description in
  the comment - this might have been true in a previous revision.
- Make sure that the visual selection itself is not matched. This
  actually increased the performance a lot while also looking like
  normally (there were some subtle differences between the highlight by
  visual mode and `CursorColumn`)
2024-11-01 00:47:19 +01:00
859337e9c0 vim:au: Defer selection highlighting by 100ms too
This makes moving the cursor in visual mode more responsive.
2024-10-31 23:20:44 +01:00
3cdb9d6902 vim:au: Stop timer too when clearing cword highlight
When deleting the cword match, any running timer should stop too so that
the highlighting does not restart. This had led to some weird flickering
bug.
2024-10-31 23:18:32 +01:00
d87d2cfee5 vim:NrrwRgn: Don't let splits take full width
The default setting of `g:loaded_nrrw_rgn` is `topleft` which opens the
split at the very top/far left and makes the window have full
width/height. This is very annoying when narrowing multiple splits.
2024-10-30 15:53:28 +01:00
c608700199 vim:aucmd: Highlight selection on linewise v-mode
I assumed that the selection will always be one character long when the
ModeChanged event is triggered. This is not the case when entering
linewise visual mode.

Fixes: b0688da69e ("vim:aucmd: Do not highlight selection on
       ModeChanged")
TODO: There are more ways of triggering ModeChanged to visual mode with
      a selection of more than one character (e.g. `[count]v`).
2024-10-28 21:16:29 +01:00
c011f2ed6a vim:setts: Don't auto-open folds when searching
This makes it a lot easier to restrict the search (besides searching in
visual selection, which is quite limited). The cursor will still land on
the closed fold but only once, independent of the number of hits inside
of the fold.
2024-10-28 16:59:03 +01:00
4d93db3947 vim: Keep only one timer for checktime
Every time the file was sourced, a new timer was created.
2024-10-27 19:11:12 +01:00
12e14673bd vim:aucmd:TODO: CursorMoved != SelectionChanged
There are operations that change the visual selection without moving the
cursor (e.g. `viw` when on the last character). These do not trigger
CursorMoved so the highlighting also does not change.

TODO: <COMMIT>
2024-10-27 19:11:12 +01:00
714a6cd120 vim:aucmd: Specify what highlight to clear
There shouldn't be highlights of the other kind (cword <-> visual)
around.
2024-10-27 19:11:12 +01:00
b0688da69e vim:aucmd: Do not highlight selection on ModeChanged
Do not call HighlightVisualSel when the mode changes to visual mode, as
then the selection is still only one character long, which I rarely want
to highlight. If I do I can still move the cursor forth and back once.

TODO: Are there situation where ModeChanged is triggered and the
      selection is immediately longer than one char without triggering
      CursorMoved?
2024-10-27 19:11:12 +01:00
2a1346e74e vim:aucmd: Abort cword highlighting earlier
When we're still on the same word, the highlighting can be just kept as
is without starting a new timer.
2024-10-27 19:11:07 +01:00
626855ec69 vim:keys:TODO: Add <leader>[hl] v-mappings
TODO: <SUBJECT>
2024-10-21 17:19:52 +02:00
f9764de6d5 vim:keys:TODO: Handle errors when referencing commits 2024-10-18 16:13:36 +02:00
72770f6703 vim:setts: Don't wrap termdebug settings in aucmd 2024-10-16 14:53:39 +02:00
908cc494a2 vim:keys: Fix typo in comment 2024-10-16 14:53:39 +02:00
c7c130f050 vim:aucmd: Don't highlight trailing spaces in terminal 2024-10-16 14:53:39 +02:00
dd5663b564 vim:aucmd: Fix missing w:cword_timer_id error msg 2024-10-16 10:44:19 +02:00
c27128fc5a vim:aucmd: Delay cword highlighting by 100ms
This should lead to better performance while scrolling through a file.
2024-09-30 11:46:03 +02:00
4cc3b6536c vim:keys: Keep cursor position on visual yank
The cursor is always moved to the beginning of the selection when
yanking in visual mode. This mapping resets the position back to where
it was.

Link: https://stackoverflow.com/a/3806664/20927629
2024-09-25 14:33:00 +02:00
bdbeada7aa vim:aucmd: Fix display of selection size indicator
Fixes: 29928505ff45 ("vim:aucmd:TODO: Fix display of selection size")
2024-09-25 14:33:00 +02:00
efea98f29c vim:aucmd:HighVisualSel: Abort on empty selection
When starting visual mode on an empty line (i.e. empty selection)
everything would get highlighted.
2024-09-25 14:33:00 +02:00
551db1f1d5 vim:aucmd:TODO: Fix display of selection size 2024-09-25 14:32:59 +02:00
b8f5d63b4c vim:keys: Fix triggering of hlsearch on n/N 2024-09-25 14:32:59 +02:00
459e0b7113 vim:keys:TODO: Modularize changes to ]]/][ maps 2024-09-25 14:32:59 +02:00
6f8fc406d6 vim:keys: Fix [[ mappings
I broke the default behaviour of jumping to open braces that are alone
on their line.
2024-09-25 10:54:57 +02:00
5b84d4ae55 vim:setts: Only one global status line
for more screen real-estate.
2024-09-21 00:37:43 +02:00
9d756c2748 zsh:alias: Add duration that formats seconds 2024-09-20 16:29:51 +02:00
fceea7bc32 vim:fzf: Increase window size
Default/previous setting was:

    let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } }
2024-09-18 15:16:42 +02:00
61f1a7ee9b vim:keys: Cycle spelllangs only between en & de
If :h 'spelllang' is something else, do nothing.

A possible future improvement could be to keep a list of the languages
to cycle between and first adding any other languages to this list so
that one could return to the original setting. I see this especially
useful when the current setting is `en,de`.
2024-09-18 15:16:42 +02:00
e54b1fc71a vim:keys: WIP fix swapping of ]] and ][
Make ][ and ]] work like they used to with the new functionality through
a workaround.

The problem is that recursive mappings are evaluated at runtime not
"compiletime" - which is what I would need in this situation.

I still want both mappings blocks so that they are not entangled and I
can turn each one off without affecting the other.
2024-08-30 18:14:20 +02:00
034db637c7 vim:keys: Relax [[ maps for different style guides
I use the [[ & etc. mappings to jump between function definitions in C.
This works as long as the braces are put on a newline (like in the
kernel coding style guide).

Relax the mappings for opening braces to jump to unindented lines with
an opening brace to cover also different style guides.
2024-08-30 18:14:20 +02:00
c1d91fa934 vim:setts: Re-enable 'wrap'
I don't remember why I turned it off. But currently I enable it a lot.
2024-07-11 19:09:36 +02:00
1075264593 vim:setts: Add / to 'formatoptions'
Do not insert the comment leader on 'o' on trailing inline comments.
2024-07-11 19:09:32 +02:00
9db4b32f02 vim:aucmd: Make highlighting toggleable 2024-04-03 13:34:33 +02:00
06b987afa8 vim:aucmd: Put often used <cword> into variable 2024-04-03 13:34:19 +02:00
e84eaba7a2 vim:aucmd: Don't overwrite constants when sourcing
When resourcing the vimscript (i.e. writing it) currently three errors
are printed that constant values cannot be overwritten.
2024-04-03 13:32:23 +02:00
f1f9f36d43 vim:aucmd: Reorder *Highlight* functions
Also improve their comments.
2024-03-24 16:56:12 +01:00
0006a778f9 vim:aucmd: Improve highlighting on mode changes
When entering visual mode it does not really make sense to keep the
cword highlighting but it should restart automatically (i.e. without
CursorMoved) when leaving back out of visual mode.

About directly starting selection highlighting I am still unsure since I
rarely ever want to highlight only one character and it could decrease
performance.
2024-03-24 16:56:12 +01:00
6260c84f3a vim:aucmd: Clear highlights on exiting visual mode
When exiting visual mode I want to clear the highlights of the visual
selection. As this is done automatically now, <Esc> does not need to do
it (and i had problems with keys.vim executing ClearHighlights because
of the script variables).

This reverts commit b3f1a469db ("vim:keys: Clear highlights on
normal-mode Esc").
2024-03-24 16:56:11 +01:00
bfccb0f089 vim:aucmd: Support multi-line selection highlight 2024-03-24 16:47:49 +01:00
a4405ee614 vim:keys: Change family of <C-w>gf mappings
The mapping to split and open the file under cursor exists by default
(not as I thought), but is not <C-w>gf but rather <C-w>f.

Swap the mappings for tab and split 'destination'.

Fixes: 8096917ad ("vim:keys: Open file in split with `<C-w>g[fF]`")
2024-03-18 14:39:03 +01:00
8096917ad4 vim:keys: Open file in split with <C-w>g[fF]
Open the file under the cursor in a split window similar to the rest of
the `<C-w>` mappings. I'm surprised this mapping does not exist by
default.
2024-03-07 13:09:41 +01:00
b3f1a469db vim:keys: Clear highlights on normal-mode Esc
Clear highlights from visual selection or word highlighting together
with the highlight of the search results.
2024-02-20 01:21:46 +01:00
58243e0510 *: Update and add TODOs 2024-01-05 16:20:42 +01:00
424be02df4 vim:aucmd: Highlight selection in all windows
Highlight the visual selection in all windows containing the current
buffer.
2023-08-22 19:29:00 +02:00
35536bfa7b vim:keys: VMap <leader>\_ to escape underscores 2023-07-16 13:13:44 +02:00
4e79b369c3 vim:keys: Rewrite mapping functions to use dicts
Instead of having a long list of `map` commands, define a dictionary for
the mappings and take shortcuts were possible.
2023-07-16 13:11:14 +02:00
d27fe12d01 vim:wiki: Don't highlight vert. box drawing char 2023-07-08 02:05:28 +02:00