Issue #37

Neovim Core updates {#core}

Updates of Neovim itself, which are available on Neovim nightly.

Important: some updates might be missing from this week content. If you want to be sure to always keep up to date with what’s going on in Neovim Core, you are strongly advised to have a look to these places:

Neovim Plugin Community updates {#plugins}

Neovim is full of active plugins. This section is about the community and what is going on.

Guides, tours, articles, etc. {#guides}

Neovim Config Switcher

Elijah Manor published a new YouTube video Neovim Config Switcher where he shows a new feature of Neovim nightly that allows for quickly switching between configurations. This can be useful if you want to experiment with new configs or swap between special setups.

New plugins {#new-plugins}


http.nvim should be your weapon of choice when making plugins that have to call out to remote HTTP services. It's implemented as a native Lua module, no curl or wget required! It currently allows you to send and receive data as Lua strings (which can contain anything, including non-text data). There is also support for downloading files to a local path. WebSocket support is planned.


Use the w, e, b motions like a spider.

The plugin offers alternatives to vim's w, e, and b motion which differ in two ways:

  1. Subword Movement: The movements happen by subwords, meaning it stops at the sub-parts of a CamelCase (or SCREAMING_SNAKE_CASE or kebab-case) variable.
-- positions vim's `w` will move to
local myVariableName = FOO_BAR_BAZ
--    ^              ^ ^

-- positions spider's `w` will move to
local myVariableName = FOO_BAR_BAZ
--    ^ ^       ^    ^ ^   ^   ^
  1. Skipping Insignificant Punctuation: A sequence of one or more punctuation characters is considered significant if it is surrounded by whitespace and does not includes any non-punctuation characters. This speeds up the movement across the line by reducing the number of mostly unnecessary stops.
-- positions vim's `w` will move to
if foo:find("%d") and foo == bar then print("[foo] has" .. bar) end
-- ^  ^^   ^  ^^  ^   ^   ^  ^   ^    ^    ^  ^  ^ ^  ^ ^  ^  ^ ^  -> 21

-- positions spider's `w` will move to
if foo:find("%d") and foo == bar then print("[foo] has" .. bar) end
-- ^   ^      ^   ^   ^   ^  ^   ^    ^       ^    ^    ^  ^    ^  -> 14
  1. Furthermore
  • lightweight (~120 LoCs) & solely lua
  • works in normal, visual, and operater-pending mode
  • supports counts
  • zero-config (aside from adding the keymaps you want)
  • ge is also supported (not mentioned in the descriptions for the bad pun)


Updates {#updates}


The power of trees at your fingertips.

mind.nvim was a project started a while ago by @phaazon to be able to put thoughts in tree-like structures. The project gained some traction, but lately, @phaazon started to rework the project as a standalone and experimental tool. Having those features available only to Neovim started to sound off and not the direction @phaazon wants his software to go to.

For this reason, mind.nvim is now archived. Yo u are advised to switch to another plugin if you are doing any kind of note taking or task management. The plugin was written with a BSD-3-Clause license, so feel free to fork it according to the license.


Unofficial Codeium Nvim Plugin

There have been several contributions from users of the plugin:

Thanks everyone! On top of all these great contributions, optional support for http.nvim has been added (see the readme).


🗺️ A legend for your keymaps, commands, and autocmds, with which-key.nvim integration


legendary.nvim now has an extensions API, so users can automatically load keymaps/commands/etc. managed by other plugins into legendary.nvim's registry, so that they can be triggered from legendary.nvim's UI. For example, to load all of nvim-tree.lua's keymaps into legendary.nvim, all you have to do now is add the following configuration:

  extensions = {
    nvim_tree = true,

There are a few built-in extensions currently, and 3rd party extensions can also be added by creating a Lua module under the legendary.extensions.* namespace. See the documentation for more information.

Did you know? {#tips}

Nothing for this week!

Special thanks {#special-thanks}

These people help contributing various updates about Neovim and its ecosystem! Thanks for your contributions! ❤️

Want to contribute? {#contribute}

You have noticed something missing that you saw lately? Do not keep the candies for yourself and please feel free to share with us! You can open a PR at This Week In Neovim Contents.

Feel free to read how to contribute to get started.