Skip to main content

First Steps

Congratulations on installing FtVim! This guide will help you verify everything is working and get you started with the basics.

1. Verify Your Installation

Run Health Checks

Open Neovim and run:

:checkhealth

This runs diagnostics on your setup. Look for any red errors - warnings (yellow) are usually fine.

Key sections to check:

  • nvim - Core Neovim functionality
  • nvim-treesitter - Syntax highlighting
  • mason - LSP/tool installer

Check Plugin Status

:Lazy

This opens the lazy.nvim plugin manager. All plugins should show as installed (green checkmarks).

Press S to sync and update all plugins if needed.

Check Mason Status

:Mason

This shows installed language servers and tools. You should see at least:

  • lua_ls (Lua language server)
  • clangd (C/C++ language server)
  • pyright (Python language server)
  • stylua (Lua formatter)
  • shfmt (Shell formatter)

2. Install Language Servers for Your Languages

FtVim includes LSP servers for C/C++, Python, and Lua by default. For other languages:

  1. Open Mason: <leader>cm or :Mason
  2. Search for your language (press /)
  3. Press i to install

Common Servers by Language

LanguageServerInstall Command
JavaScript/TypeScripttsserver:MasonInstall typescript-language-server
Rustrust_analyzer:MasonInstall rust-analyzer
Gogopls:MasonInstall gopls
Javajdtls:MasonInstall jdtls
HTML/CSShtml, cssls:MasonInstall html-lsp css-lsp

After installing, add the server to your config to ensure it's set up:

-- ~/.config/nvim/lua/plugins/lsp.lua
return {
{
"neovim/nvim-lspconfig",
opts = {
servers = {
tsserver = {}, -- Enable TypeScript
rust_analyzer = {}, -- Enable Rust
},
},
},
}

3. Learn Essential Keymaps

FtVim uses <Space> as the leader key. Press <Space> and wait to see all available options via which-key.

KeymapDescription
<leader>ffFind files
<leader>fgLive grep (search text)
<leader>fbFind buffers
<leader>frRecent files
<leader>eFile explorer (Neo-tree)

LSP (Code Intelligence)

KeymapDescription
gdGo to definition
grFind references
KHover documentation
<leader>caCode actions
<leader>crRename symbol
<leader>cfFormat code

Windows & Buffers

KeymapDescription
<leader>bdDelete buffer
<C-h/j/k/l>Navigate between windows
<leader>-Horizontal split
<leader>|Vertical split

Git

KeymapDescription
<leader>ggOpen Lazygit
<leader>gfGit file history
<leader>gbGit blame

4. Try the Basic Workflow

Open a Project

cd ~/your-project
nvim

Or open a specific file:

nvim ~/your-project/main.py
  1. Press <leader>ff to find files
  2. Type part of the filename
  3. Press Enter to open

Edit Code

  1. Navigate to a function
  2. Press K to see documentation
  3. Press gd to go to definition
  4. Press <C-o> to go back

Format and Save

  1. Make some changes
  2. Press <leader>cf to format
  3. Press :w to save (or <leader>w if configured)

5. Make Your First Customization

Create a custom configuration file:

mkdir -p ~/.config/nvim/lua/plugins
nvim ~/.config/nvim/lua/plugins/custom.lua

Add a simple customization:

-- ~/.config/nvim/lua/plugins/custom.lua
return {
-- Example: Change colorscheme
{
"folke/tokyonight.nvim",
opts = {
style = "night", -- night, storm, day, moon
},
},
}

Save and restart Neovim to see changes.

6. Explore Which-Key

Press <leader> (Space) and wait a moment. Which-key will show all available commands:

  • f - Find/File operations
  • g - Git operations
  • b - Buffer operations
  • c - Code operations
  • x - Diagnostics
  • s - Search operations
  • u - UI toggles

Navigate through the menus to discover features!

7. Common Tasks

Open Terminal

Press <C-\> (Ctrl + backslash) to toggle the terminal.

Toggle File Explorer

Press <leader>e to toggle Neo-tree sidebar.

Search Across Project

Press <leader>fg to search for text across all files.

Toggle Diagnostics

Press <leader>xd to toggle error/warning display.

What's Next?

Now that you have the basics:

  1. Keymaps - Complete keymap reference
  2. Plugins - Explore included plugins
  3. LSP - Configure language servers
  4. Tips and Tricks - Level up your Vim skills

Getting Help

  • :help <topic> - Built-in Neovim help
  • :Lazy - Plugin manager
  • :Mason - LSP/tool installer
  • :checkhealth - Diagnose issues
  • <leader> - Which-key menu