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:
Using Mason (Recommended)
- Open Mason:
<leader>cmor:Mason - Search for your language (press
/) - Press
ito install
Common Servers by Language
| Language | Server | Install Command |
|---|---|---|
| JavaScript/TypeScript | tsserver | :MasonInstall typescript-language-server |
| Rust | rust_analyzer | :MasonInstall rust-analyzer |
| Go | gopls | :MasonInstall gopls |
| Java | jdtls | :MasonInstall jdtls |
| HTML/CSS | html, 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.
Navigation
| Keymap | Description |
|---|---|
<leader>ff | Find files |
<leader>fg | Live grep (search text) |
<leader>fb | Find buffers |
<leader>fr | Recent files |
<leader>e | File explorer (Neo-tree) |
LSP (Code Intelligence)
| Keymap | Description |
|---|---|
gd | Go to definition |
gr | Find references |
K | Hover documentation |
<leader>ca | Code actions |
<leader>cr | Rename symbol |
<leader>cf | Format code |
Windows & Buffers
| Keymap | Description |
|---|---|
<leader>bd | Delete buffer |
<C-h/j/k/l> | Navigate between windows |
<leader>- | Horizontal split |
<leader>| | Vertical split |
Git
| Keymap | Description |
|---|---|
<leader>gg | Open Lazygit |
<leader>gf | Git file history |
<leader>gb | Git blame |
4. Try the Basic Workflow
Open a Project
cd ~/your-project
nvim
Or open a specific file:
nvim ~/your-project/main.py
Navigate Files
- Press
<leader>ffto find files - Type part of the filename
- Press
Enterto open
Edit Code
- Navigate to a function
- Press
Kto see documentation - Press
gdto go to definition - Press
<C-o>to go back
Format and Save
- Make some changes
- Press
<leader>cfto format - Press
:wto save (or<leader>wif 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 operationsg- Git operationsb- Buffer operationsc- Code operationsx- Diagnosticss- Search operationsu- 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:
- Keymaps - Complete keymap reference
- Plugins - Explore included plugins
- LSP - Configure language servers
- 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