I do front-end development on Windows system all the year round. Although I have been using “VIM” for many years, I have been using VSCodeVim all the time. I have tried to configure native VIM for several times, including various GUI versions, and finally gave up.

One of the main reasons is that VSCode is so powerful, the app store has a variety of plugins covering all aspects of Web development that are very, very easy to install with almost no configuration. There were several vim-related plug-ins in the early VSCode versions, each with its own bugs. But after the integration of VSCodeVim unified, with Microsoft’s input also became good enough to use. Most importantly, I was able to mix VIM shortcuts with VSCode’s native features, such as Ctrl + p opening invincible Windows.

The VIM side of the configuration is too primitive, in vIMRC to write a bunch of unreadable configuration to meet the most basic use. The code prompt is not smart enough, and the result is not as good as VSCode’s default configuration. And the support on Windows is not great, with no advantage at all locally other than developing on the server.

With WSL 2 and Windows Terminal, the Windows command line now has Unicode, UTF-8 character support, and a GPU-accelerated text rendering engine.

After the official release of Neovim 0.5.x, Language Server Protocol (LSP) is built in, and the code prompt experience is similar to VSCode. Lua has become a first-class language for editors, configuration is easier to understand, and many VIM plug-ins are available in Lua native versions. Configuration is also less hardcore, making VIM more modern and easier to use.

On the contrary, VSCode keeps adding functions that I can’t use, which makes it slower and slower. The most annoying thing is that VSCode can’t completely disconnect from the mouse, and there are always buttons that have to be clicked with the mouse.

So I tried to get away from VSCode again, and I felt good using it, all the usual functions were fine, and I was completely off the mouse.

First look at the running effect:

This article describes how I configured Neovim using full Lua in a Windows command line environment, as well as how to configure and use various common plug-ins.

Other system users can skip Chapter 1 and start with Chapter 2.

📃 directory

  • 🏆 Install Neovim in Windows Terminal and WSL 2
  • 🛠 Neovim basic configuration
  • 🖐 Neovim shortcut keys
  • 📦 Neovim plug-in management and configuration
  • 🎭 Theme Configuration
  • 🛒 Common plug-in configuration
    • 📌 nvim – tree
    • 📌 bufferline
    • 📌 treesitter
    • 📌 telescope
    • 📌 nvim – CMP
    • 📌 surround
    • 📌 Comment
    • 📌 nvim – coloizer
  • ✨ Internal LSP configuration
  • ⚔ Front-end development configuration
  • 🦀 Rust development configuration
  • 🎉 Use my configuration directly

Thank you ❤

This article + configuration source, as my habits change, will be at github.com/nshen/learn… Always updated, welcome to subscribe.

Any questions welcome to leave a message, common progress, thank you.