Skip to main content

Migrating from VSCode

Welcome to FtVim! This guide helps Visual Studio Code users transition to Neovim by mapping familiar features and shortcuts.

Key Differences

The biggest difference is modal editing. In VSCode, you're always in "insert mode". In Vim:

ModePurposeEnter With
NormalNavigation, commandsEsc or Ctrl+[
InsertTyping texti, a, o, etc.
VisualSelecting textv, V, Ctrl+v
CommandRunning commands:

Tip: Press Esc whenever you're unsure. It returns you to Normal mode.

No Mouse Required

While FtVim supports mouse, you'll be much faster using the keyboard. Give it a few days!

Configuration is Code

Instead of a settings GUI, you configure FtVim with Lua code. This is more powerful and version-controllable.

Keyboard Shortcuts Comparison

File Navigation

VSCodeFtVimDescription
Ctrl+P<leader>ffFind files
Ctrl+Shift+F<leader>fgSearch in files (grep)
Ctrl+Shift+E<leader>eToggle file explorer
Ctrl+Tab<leader>fbSwitch between open files
Ctrl+Shift+P<leader>fCCommand palette
Ctrl+G:<number>Go to line
Ctrl+R<leader>frRecent files

Editing

VSCodeFtVimDescription
Ctrl+Cy (yank)Copy (in visual mode)
Ctrl+Vp (paste)Paste
Ctrl+Xd (delete)Cut (in visual mode)
Ctrl+ZuUndo
Ctrl+Shift+ZCtrl+rRedo
Ctrl+D* then cgnSelect next occurrence
Ctrl+/gccToggle line comment
Shift+Alt+AgbcToggle block comment
Alt+Up/Down:m -2 / :m +1Move line up/down
Ctrl+Shift+KddDelete line
Ctrl+EnteroInsert line below
Ctrl+Shift+EnterOInsert line above

Code Intelligence

VSCodeFtVimDescription
F12gdGo to definition
Shift+F12grFind references
Ctrl+SpaceCtrl+SpaceTrigger autocomplete
Ctrl+.<leader>caQuick fix / code actions
F2<leader>crRename symbol
Ctrl+Shift+O<leader>ssGo to symbol in file
Ctrl+T<leader>sSGo to symbol in workspace
Ctrl+HoverKShow hover documentation
Shift+Alt+F<leader>cfFormat document

Search & Replace

VSCodeFtVimDescription
Ctrl+F/Search in file
Ctrl+H:%s/old/new/gReplace in file
F3nNext match
Shift+F3NPrevious match
Ctrl+Shift+F<leader>fgSearch in project
Ctrl+Shift+H<leader>srReplace in project

Window Management

VSCodeFtVimDescription
Ctrl+\<leader>|Split editor vertically
Ctrl+1/2/3<C-h/l>Focus editor group
Ctrl+W<leader>bdClose editor
Ctrl+Shift+T-Reopen closed editor
Ctrl+B<leader>eToggle sidebar
Ctrl+`<C-\>Toggle terminal

Git

VSCodeFtVimDescription
Source Control view<leader>ggOpen Lazygit
-<leader>gbGit blame
Git: Stage Changes(in Lazygit) sStage file
Git: Commit(in Lazygit) cCommit

VSCode Extensions → FtVim Equivalents

VSCode ExtensionFtVim PluginNotes
IntelliSensenvim-lspconfig + blink.cmpBuilt-in
GitLensgitsigns.nvim + lazygitBuilt-in
Prettierconform.nvimConfigure formatters
ESLintLSP + none-lsVia LSP
Auto Rename Tagnvim-ts-autotagAdd as extra
Bracket Pair ColorizerBuilt-in Neovimmatchparen
Path Intellisenseblink.cmpPath source
Project Manager-Use sessions or Telescope
TODO Highlighttodo-comments.nvimBuilt-in
Error LensLSP virtual textBuilt-in

Concepts Translation

Files vs Buffers

VSCodeNeovim
Open file = TabOpen file = Buffer
Tab = One fileTab = Window layout

In Neovim, buffers are open files (even if not visible). Windows are viewports showing buffers. Tabs are collections of windows.

Think of it as: You can have many buffers, arrange them in windows, and save window arrangements as tabs.

The Explorer

VSCode's sidebar explorer → FtVim's Neo-tree

  • <leader>e - Toggle explorer
  • a - Create file/folder
  • d - Delete
  • r - Rename
  • c - Copy
  • p - Paste
  • Enter - Open file

Integrated Terminal

VSCode: Ctrl+`
FtVim: <C-\> (Ctrl + backslash)

The terminal floats over your editor. Press the same key to hide it.

Settings

VSCode: Ctrl+, opens settings GUI
FtVim: Edit ~/.config/nvim/lua/plugins/*.lua

Quick Tips for Transitioning

1. Don't Fight Modal Editing

It feels strange at first, but modal editing is more efficient. Stick with it for a week.

2. Learn Motions Gradually

Start with basics:

  • h j k l - Movement
  • w b - Word movement
  • gg G - Start/end of file
  • 0 $ - Start/end of line

3. Use Which-Key

Press <leader> (Space) and wait. FtVim shows all available commands!

4. Master the Dot Command

. repeats your last change. It's incredibly powerful.

Example:

  1. ciw - Change inner word
  2. Type new word
  3. Esc
  4. Move to next word
  5. . - Repeat the change!

5. Embrace Text Objects

Instead of selecting with mouse:

  • diw - Delete inner word
  • ci" - Change inside quotes
  • da{ - Delete around braces
  • vip - Select inner paragraph

6. Use Registers for Multiple Clipboards

"ay - Yank to register a
"ap - Paste from register a

You have 26 registers (a-z)!

Your First Week

Day 1-2: Survival Mode

  • Focus on i, Esc, :w, :q
  • Use <leader>ff to find files
  • Use the mouse if needed

Day 3-4: Basic Motions

  • Practice h j k l movement
  • Learn w b e word motions
  • Try 0 $ gg G jumps

Day 5-7: Editing Commands

  • d (delete), c (change), y (yank)
  • Combine with motions: dw, c$, yy
  • Use . to repeat

Week 2+: Advanced Features

  • Text objects (ciw, da{)
  • Macros (q to record)
  • Marks (m to set, ' to jump)

Getting Help

If you're stuck:

  1. Press <leader> to see available commands
  2. :help <topic> for built-in docs
  3. Check Troubleshooting for common issues
  4. Tips and Tricks for more techniques

Remember: Every Vim expert was once a beginner. The learning curve is worth it!