This PR introduces the option `inccommand`, which enables a live preview of `:s` commands as they are typed. It also makes some improvements to interactive substitution with the `c` flag.
The feature is configured by setting `vim.inccommand` to `'append'` or `'replace'` (or `''` to disable).
When set to `'append'`, substitution previews are inserted after each highlighted match, a behavior found in some popular vim emulators like spacemacs.
When set to `'replace'`, the substitution previews replace each match, which is consistent with the default behavior of neovim.
The config keys `vim.substitutionColor` and `vim.substitutionTextColor` are provided to control the appearance of preview text.
Fixes#6656, fixes#6655
- Highlight current match with a different configurable highlight color
- Support `<C-g>`/`<C-t>` to cycle through matches
- Highlight zero-length matches
- Fix a few other edge cases (such as when searching backward or with `^`/`$` with CLRF line endings)
Fixes#7212, fixes#4837
Set `vim.neovimUseConfigFile` to true to use this feature
`vim.neovimConfigFile` points to the vimrc path; will use default path on system if left blank
Fixes#5045
This is a pretty massive change; see pull request #4735 for full details
Most notably:
- Support for operator-pending mode, including remaps and a half-cursor decoration
- Correct handling of ambiguous remaps with timeout
- Correct handling of recursive special case when the RHS starts with the LHS
- Correct handling of multi-key remaps in insert mode
- Failed movements that occur partway through a remap stop & discard the rest of the remap
- Implement `unmap` and `mapclear` in .vimrc
Refs #463, refs #4908Fixes#1261, fixes#1398, fixes#1579, fixes#1821, fixes#1835Fixes#1870, fixes#1883, fixes#2041, fixes#2234, fixes#2466Fixes#2897, fixes#2955, fixes#2975, fixes#3082, fixes#3086Fixes#3171, fixes#3373, fixes#3413, fixes#3742, fixes#3768Fixes#3988, fixes#4057, fixes#4118, fixes#4236, fixes#4353Fixes#4464, fixes#4530, fixes#4532, fixes#4563, fixes#4674Fixes#4756, fixes#4883, fixes#4928, fixes#4991, fixes#5016Fixes#5057, fixes#5067, fixes#5084, fixes#5125
- Make easymotion default decorations have the same defaults as the Vim
plugin.
- Deprecate no longer needed configurations like
'easymotionMarkerMargin' and 'easymotionMarkerWidthPerChar'.
- Change 'easymotionMarkerFontWeight' default to 'bold'
- Add seperate color for each character of two-character markers,
default values are the same as the Vim plugin. (two different yellows)
- Add color for dimmed characters, default value is the same as the Vim
plugin. (grey)
- Add color for higlighting characters searched with search n-characters
command, default value is the same as the Vim
plugin. (green)
- Add changes to README file and update the default values.
- Change easymotion TextEditorDecorations to make them simpler to use
and understand. Remove all unnecessary parts.
- Fix the dimming zones that were including the markers as well.
- Fix the hack for two consecutive markers that wasn't checking if those
markers were on the same line.
Fixes#5092Fixes#5022Fixes#4252Fixes#1746
The current easymotion decorations are kinda wonky, they are misaligned and little bit intrusive, also it deviates from the official easymotion. With this pr it behaves more like the official
Fixes#4610Fixes#4524Fixes#3899Fixes#2938
The workaround for linux key changes & vsCode, which is displayed on line 713 ( "keyboard.dispatch": "keyCode" ) had 'keycode' but it should be 'keyCode'. Using 'keycode' does not resolve the issue. The link 'known issue in VS Code' has the solution in it, and they also use keyCode. I've tested that keyCode resolves the issue still.
This PR implements two text-objects from the vim-textobj-entire plugin
This Vim plugin adds two useful text-objects:
ae which represents the entire content of a buffer
ie which represents the entire content of a buffer without the leading and trailing spaces.
You can then use gUae to transform the whole text buffer content in uppercase, whereas normally you would have to use gggUG.
This text-object has the advantage that you can use it from anywhere your cursor is currently located, you don't have to be conscious of the cursor position.
Fixes#3379
* many people seem to copy the 'quick example' from the readme as
their initial config. The problem with that quick example is that it
enables 'sneak', which by defaults breaks the S and s commands (see
issue #3274).
* by removing that setting from the example, people should have a
working config out of the box. If someone is interested in sneak,
other sections of the readme still go into details.
Small documentation change.
Change the expression "extension menu" to "extension view" to match
vscode documentation.
Adding a couple of details about how to get to this extension's contribution
page for people new to vscode.