Welcome to Fastvim, the next-gen Neovim distro thatβs fast, modern, and totally configurable. Built for lazy folks who donβt want to mess with endless configs, and for the Neovim Martian π½ hackers who want total control over their setup. Whether you just want things to work out of the box or you love tweaking every little detail, Fastvimβs got your back.
Forget about spending hours setting up your Neovim environment. With Fastvim, you can get started right away, but if you're into customization, it's as flexible as you need it to be. This distro has everything you need for a smooth, efficient workflow, and if you're feeling adventurous, you can dive in and make it your own.
Get ready to experience a Neovim setup that just works, without all the fluff. Letβs get you set up, quick and easy!
-
π₯ Turn your Neovim into a complete IDE.
-
π€ Customize and extend your configuration easily with lazy.nvim
-
π Super fast
-
π§Ή Common settings for options, autocms and keymaps
-
π¦ Contains a variety of pre-configured and ready-to-use plugins
-
βοΈ LSP (Language Server Protocol):
- π₯οΈ clangd.lua - clangd server configuration
- π cssls.lua - CSSLS server configuration
- π₯οΈ go.lua - Go server configuration
- π html.lua - HTML server configuration
- π₯οΈ java.lua - Java server configuration
- π₯οΈ lua.lua - Lua server configuration
- π₯οΈ ts_ls.lua - TypeScript server configuration
- π§ utils.lua - LSP utilities
- Neovim >= 0.9.0 (needs to be built with LuaJIT)
- Git >= 2.19.0 (for partial clones support)
- a Nerd Font(v3.0 or greater) (optional, but needed to display some icons)
- a C compiler for nvim-treesitter. See here
Warning
Please, before installing, remember to make a backup of your dotfiles.
git clone https://github.com/fastvim/fastvim.git ~/.config/nvim
cd .config/nvim
nvim # Then it will download everything by itself
git clone https://github.com/fastvim/fastvim.git $HOME\AppData\Local\nvim
For the distro to work as expected, we need to configure a few things, let's start by downloading the lsp(language server protocol) that you will use by installing with mason
To do this you type: MasonInstall LspName
Ex:
:MasonInstall clangd
Or if you are java dev
MasonInstall jdtls
Lsp (language server protocol) bring you countless benefits when coding, such as auto completions, syntactic error warnings in real time, and for this we have some plugins like nvim-cmp, for snippets we have luasnip that works exceptionally well and we have mini.pairs to autocomplete special characters like [], (), <>, etc...
With the setup complete, you're now ready to dive into using your new Neovim IDE. Let's get started!
Now that everything is set up, let's jump into using FastVim. Follow these steps to start coding efficiently:
Open Neovim Launch Neovim by running:
nvim
Explore the Dashboard Upon starting Neovim, you'll see a customizable dashboard. Use it to quickly open recent files, create new projects, or access settings.
Install Plugins Ensure all required plugins are installed by running:
:Lazy
This will display the plugin manager. Press u to update all plugins.
Set Up LSP If you haven't installed your language server yet, use Mason:
:MasonInstall <LspName>
Replace with the appropriate server for your language (e.g., clangd for C/C++, jdtls for Java).
Start Coding Open a file or create a new one:
nvim myfile.<extension>
Replace with the file type you're working with (e.g., java, go, sql). Autocompletions, syntax highlighting, and LSP features will be ready to assist you.
update distro
To update the distro you have two options, :FastUpdate
which will update the distro to the latest version, and :FastStable
which will update the distro to the latest stable version (recommended)
Explore Keymaps This configuration comes with pre-mapped keys for common actions. Check the keybindings guide by pressing:
:help keymaps
You're now ready to enjoy a complete IDE experience with FastVim!
To make your workflow much more fluid, we created countless keyboard shortcuts both to use the incredible plugins and to move around neovim in a faster and more efficient way.
shortcut | action |
---|---|
\fu | fast update |
\fs | fast stable distro update |
ctrl-h | focus_nvimtree |
ctrl-n | toggle_nvimtree |
\ff | find_files |
\fo | recent_files |
\fw | live_grep |
\gt | git_status |
Tab | cycle_buffer_next |
S-Tab | cycle_buffer_prev |
ctrl-q | close_buffer |
/ (Normal) | toggle_comment_line |
/ (Visual) | toggle_comment_block |
\fm | format_code |
ctrl-\ | open_themery |
\t | split_terminal_horizontal |
\tv | split_terminal_vertical |
A-Up (Insert) | move_line_up |
A-Down (Insert) | move_line_down |
ctrl-Up (Insert) | select_line_up |
ctrl-Down (Insert) | select_line_down |
\nw | neorg_switch_workspace |
\nn | neorg_open_index |
\nt | neorg_toggle_concealer |
\nh | neorg_toggle_todo |
\nc | neorg_toggle_concealer_visibility |
ctrl+t | open toggle terminal |
Goal | stats |
---|---|
Have own color scheme | β |
cross platform support | β |
add a markdown-mode | β |
add a neovim web wowser | β |
add a configuration compatibility between vim and neovim | β |
adding specialized config in gamedev | β |
adding full and more complete documentation | β |
adding full and advanced config for java | β |
Pull requests are welcome.
That said, there's a bunch of ways you can contribute to this project, like by:
- ββGiving a star on this repository (this is very important and costs nothing)
- πͺ²βReporting a bug
- πβImproving this documentation
- π¨βSharing this project and recommending it to your friends
- π» Submitting a pull request to the official repository
This project exists thanks to all the people who contribute.
This project thanks everyone who inspired it
- BrunoCiccarino: wsl-ubuntu