NeoVintageous 1.33.0
Introducing NeoVintageous 1.33.0! While this release may seem somewhat understated, it brings many subtle enhancements, fixes, and an overall refinement of existing features. Here are some noteworthy highlights:
Effortless Reverse Sorting: Now you can effortlessly sort in reverse with the
:sort
command.Explore ASCII Values: Dive into the world of ASCII values.
Custom Sneak Key Bindings: Tailor your sneak key bindings to your liking.
Enhanced Navigation: Enjoy improved navigation for overlays, tabs, buffers, and groups.
:ls and :registers Enhancements: Experience enhanced output for
:ls
and:registers
.
Effortless Reverse Sorting
Sorting your text in reverse order has never been easier, thanks to !
.
:[range]sort[!] [i][u]
Here's how you can use it:
- When no
[range]
is given, all lines are sorted. - When
!
is used, the order is reversed. - When
i
is used, case is ignored. - When
u
is used, a unique sort is applied, only the first of a sequence of identical lines is retained.
Let's break it down with some examples.
Example 1: Sort
To perform a case-sensitive sort, simply use the :sort
command:
:sort
Example 2: Reverse Sort
For a reverse sort, all you need to do is add the !
symbol:
:sort!
Example 3: Case-Insensitive, Unique, Reverse Sort
To achieve a case-insensitive, unique, and reverse sort, you can combine options like i
(for case insensitivity) and u
(for uniqueness) with the !
symbol:
:sort! iu
Example 4: Reverse Sort a Visual Selection
Representing a visual selection range is as simple as using '<,'>
. You can create a visual selection, for example, by typing vip
, and then press :
. This action will automatically populate the ex command with '<,'>
:
:'<,'>
Next, append sort!
to this command to sort the visually selected text in reverse order:
:'<,'>sort!
With these straightforward examples, you'll be able to sort your text effortlessly in any way you need, making your Vim experience more efficient and productive.
Explore ASCII Values
Have you ever been curious about the ASCII value of the character under your cursor? This release introduces :ascii
, which is the same as ga
, which displays the ASCII value of the character under the cursor in decimal, hexadecimal, and octal formats, in the status bar.
For instance, when the cursor is positioned over an 'R,' the status bar will display the following information:
<R> 82, Hex 0x52, Octal 0o122
Custom Sneak Key Bindings
By default, Sneak is disabled to avoid conflicts with certain Vim commands such as s
, S
, z
, and Z
. To enable Sneak, follow these steps:
Open the Command Palette by selecting
Preferences: NeoVintageous Settings
.Add the following configuration to enable Sneak:
json{ "vintageous_enable_sneak": true }
You can now customize the default Sneak key bindings by setting environment variables.
The need to configure Sneak key bindings via environment variables, rather than conventional settings, arises from an implementation detail: plugins are loaded during startup, and access to settings is not available at this stage. Resolving this issue would require significant design adjustments. In the meantime, you can use environment variables to customize the mappings.
Here are the environment variables to set:
NEOVINTAGEOUS_SNEAK_MAP_S=s
NEOVINTAGEOUS_SNEAK_MAP_BIG_S=S
NEOVINTAGEOUS_SNEAK_MAP_Z=z
NEOVINTAGEOUS_SNEAK_MAP_BIG_Z=Z
Example for Linux users: Consider adding the following lines to your ~/.profile
or ~/.bashrc
file:
export NEOVINTAGEOUS_SNEAK_MAP_S=s
export NEOVINTAGEOUS_SNEAK_MAP_BIG_S=S
export NEOVINTAGEOUS_SNEAK_MAP_Z=z
export NEOVINTAGEOUS_SNEAK_MAP_BIG_Z=Z
Please note that to activate these changes, you will need to restart Sublime Text and, in some cases, reboot your system.
Example for Windows users:
You can set environment variables for each user separately through the System Properties dialog box. Follow these steps:
- Press the Windows Key + R to open the "Run" dialog box.
- Enter "sysdm.cpl" and press the "OK" button. The "System Properties" dialog box will open.
- Select the "Advanced" tab and click the "Environment Variables..." button. The "Environment Variables" dialog box will open.
- Select an existing variable in the "User variables" list and click the "Edit..." button to edit it. Alternatively, click the "New..." button to add a new variable.
- After editing variables, click the "OK" button to save the changes.
Again, please keep in mind that to activate these changes, you will need to restart Sublime Text and, in some cases, reboot your system.
Improved UI Navigation
Efficiently navigate through UI elements such as the Command Palette, Goto File overlay, Goto Symbol, and Goto Symbol in Project.
Command | Description |
---|---|
CTRL-j or CTRL-n | Move to the next item. |
CTRL-k or CTRL-p | Move to the previous item. |
Improved Tab Commands
The tab commands tabnext
and tabprevious
now accept a count. Both commands wrap around from the first one to the last one.
:tabnext [count]
Move forward to the [count]
th tab.
:tabprevious [count]
Move back [count]
tabs.
Improved Buffer Commands
Buffer commands like :bnext
and :bprevious
now cycle through all views instead of just cycling through views within a group. They also accept a count. Both commands wrap around the end of the buffer list.
:bnext [count]
Go to the [count]
th next buffer in the buffer list. [count]
defaults to one.
:bprevious [count]
Go to the [N]
th previous buffer in the buffer list. [N]
defaults to one.
Enhanced Group Navigation
Navigating between cursor groups is now easier than ever with the introduction of CTRL-w w
(for moving forward) and CTRL-w W
(for moving in reverse).
These shortcuts enable seamless transitions between neighbouring cursor groups, significantly enhancing your workflow efficiency.
:ls now displays line numbers
The :ls
command has been enhanced to include the line number of the cursor position. In cases of multiple cursors, they are presented as a comma-delimited list.
Example: Display All Buffers
:ls
12 %a "/test/text.txt" line 3
31 h "file.txt" line 1
32 h "test.txt" lines 5, 7, 11
Here is a description of the indicators:
Indicator | Description |
---|---|
% | The buffer in the current window. |
+ | A modified buffer. |
= | A readonly buffer. |
a | An active buffer: it is loaded and visible. |
h | A hidden buffer: It is loaded but currently not visible. |
:registers now includes a type column
The "show registers" command, :registers
, has been enhanced to include a new "Type" column, indicating whether the content is in characterwise or linewise format. The types are represented as follows:
Type | Description |
---|---|
"c" | Characterwise text. |
"l" | Linewise text. |
Multiple Cursor Enhancements
Several multiple cursor aliases have been introduced to enhance your editing experience:
\\A
(equivalent to<M-A>
) Select AllN
(equivalent toQ
,k
, andCTRL-p
) Remove CursorTAB
(equivalent toEsc
orJ
) Quit Multiple Cursors.
Other Notable Additions
- Add support for
<Left>
and<Right>
in insert mode, allowing you to move the cursor one character to the left and right. - Add
[count]
support forCTRL-i
andCTRL-o
: navigate to newer and older cursor positions in the jump list. #981 #980 - Add
O
in visual mode: Go to Other end of highlighted text. This is like "o", but in Visual block mode the cursor moves to the other corner in the same line. #976 - Add
CTRL-n
in insert mode to open auto-complete. #965
Notable Fixes
- Bracket text object, e.g.,
vi{
,vi}
,viB
, should not include trailing whitespace on last line - Special keys like
<Esc>
don't work in complex mappings in some cases e.g.,<Esc>li
- Session history is not saved in some cases
v_o
should update the cursor x position. #974- Don't populate small delete when a register is specified. #963
zt
,zb
, andzz
should maintain cursor column. #962z<CR>
,z-
, andz.
should position the cursor on the first non-blank. #962zt
,zb
,zz
,z<CR>
,z-
, andz.
scroll command inconsistencies. #962- Commands like
:tabfirst
,:tabonly
,:tabnext
, should not be forceable. #966 - Disable line highlighting in Cmdline output. #960
Resources
- The changelog details updates between releases.
- Access Vim's full documentation with
:help {subject}
or online. - Refer to our roadmap for supported Vim features.
- Report features/bugs on GitHub.
- NeoVintageous 1.33.0 release notes