Skip to content

augustodamasceno/vimlink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

102 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vimlink - My Vim and Neovim Setups

Copyright (c) 2015-2026, Augusto Damasceno.
All rights reserved.
SPDX-License-Identifier: BSD-2-Clause

Contact

augustodamasceno@protonmail.com

Vim

Vim Screenshot

Neovim

Neovim Screenshot A Neovim Screenshot B

Installation

An English dictionary from Hunspell English Dictionaries (MIT-like license; BSD license for the affix file) is shared by both setups.

  • Vim: backs up your existing config file and installs the new one.
  • Neovim: backs up your existing init.lua, copies nvim/init.lua to the platform config directory, and bootstraps lazy.nvim on the first launch.

Unix-like

By default install.sh sets up both Vim and Neovim.
Pass --vim or --neovim to install only one:

# Install both (default)
bash install.sh

# Install only Vim
bash install.sh --vim

# Install only Neovim
bash install.sh --neovim

Windows (PowerShell + winget)

Requires Windows 10/11 with winget (App Installer) and PowerShell 5.1+.

Open PowerShell in the repository directory and run:

# Install both (default)
.\install.ps1

# Install only Vim
.\install.ps1 -Vim

# Install only Neovim
.\install.ps1 -Neovim

If script execution is blocked, allow it for the current session first:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Files

Unix-like

# Shared
~/.dic/en_US.dic

# Vim
~/.vimrc
~/.vimrc_backup_*

# Neovim
~/.config/nvim/init.lua
~/.config/nvim/init.lua.backup_*
~/.local/share/nvim/lazy/          # lazy.nvim + all plugins

Windows

# Shared
~\.dic\en_US.dic

# Vim  (Vim reads _vimrc on Windows)
~\_vimrc
~\_vimrc_backup*
~\vimfiles\                        # vim-plug and plugins

# Neovim
$env:LOCALAPPDATA\nvim\init.lua
$env:LOCALAPPDATA\nvim\init.lua.backup_*
$env:LOCALAPPDATA\nvim-data\lazy\ # lazy.nvim + all plugins

Vim Dependencies

The installers (install.sh / install.ps1) automatically install all dependencies listed below. For manual installation instructions of any individual package, see notes.md.

Dependency Description winget ID (Windows)
vim Vim with Python 3 support, required by YouCompleteMe vim.vim
python3 Runtime for YouCompleteMe and its build system Python.Python.3
cmake Build system used to compile the ycmd server Kitware.CMake
clangd Language server providing C and C++ completions via YouCompleteMe LLVM.LLVM
Exuberant / Universal Ctags Generates tag files for code navigation (:tags command) UniversalCtags.Ctags
vim-plug Vim plugin manager, fetches and manages all Vim plugins (auto-downloaded)
YouCompleteMe Fast code completion engine for C, C++ and Python (built from source)

Unix extras: wget, unzip, python3-dev, and build-essential are also installed automatically on Unix/Linux.

Vim Features and commands

  • See line numbers
  • Highlight syntax
  • Tabs are four columns wide
  • Each indentation level is one tab
  • Do not change tab for spaces
  • Equal size windows
  • English Dictionary completion
  • Colors optimized for dark background
  • Backspace works over indentation, line breaks and insert start
  • Linter status shown in the status line (errors and warnings count)
  • ALE lints on save, not on buffer enter
  • Commands
    • ctabs : convert tabs into 4 spaces
    • Rbeg <NUM-CHARS> <REPLACE-WITH> : Replace beginning characters of a selection
    • tags : Show/Hide Tags
    • Ycmoff : Enable/Disable YouCompleteMe
    • Control + b : change buffer files
    • Control + e : Go to the next error
    • Control + i : Indent all lines
    • Control + t : Open NERDTree file explorer
  • Plugins
    • vim-scripts/vim-asm: Adds support for assembly language syntax highlighting and features in Vim.
    • dense-analysis/ale: ALE (Asynchronous Lint Engine) is a plugin for real-time syntax checking and linting.
    • majutsushi/tagbar: Tagbar provides an overview of the structure of code files, displaying tags in a sidebar.
    • preservim/nerdtree: NERDTree is a file explorer tool that adds a navigable tree structure for files and directories.
    • ycm-core/YouCompleteMe: YouCompleteMe is a fast, powerful code completion engine for Vim.
    • itchyny/lightline.vim: Lightline is a lightweight status line/tabline for Vim, offering a visually appealing and informative status bar.
    • nathanaelkane/vim-indent-guides: Vim Indent Guides visually displays text indentation levels with subtly highlighted guides.

Neovim Dependencies

The installers (install.sh / install.ps1) automatically install all dependencies listed below. For manual installation instructions of any individual package, see notes.md.

Dependency Description winget ID (Windows)
neovim ≥ 0.10 Neovim runtime Neovim.Neovim
git Required by lazy.nvim to clone plugins Git.Git
Node.js Required by the GitHub Copilot plugin OpenJS.NodeJS
ripgrep Fast grep backend for Telescope live_grep BurntSushi.ripgrep.MSVC
clangd Language server for C and C++ LLVM.LLVM
clang-format C/C++ formatter used by conform.nvim LLVM.LLVM
pyright Language server for Python pip install pyright
cmake-language-server Language server for CMake files pip install cmake-language-server
black Python formatter used by conform.nvim pip install black
debugpy Python debug adapter for nvim-dap pip install debugpy
gdb C/C++ debugger for nvim-dap (Unix/Linux) (not required on Windows)
lazy.nvim Plugin manager — self-bootstrapped from init.lua on first launch (auto-downloaded)

Unix extras: wget/curl and unzip are also installed automatically on Unix/Linux.

Neovim Features and Commands

  • Line numbers
  • Syntax highlighting via Treesitter (C, C++, Python, Lua, Bash, CMake, Make)
  • 4-column tabs, no tab-to-space conversion
  • Dark background optimised colours
  • English dictionary word completion (<C-x><C-k>)
  • LSP-powered completions, diagnostics and formatting (clangd, pyright, cmake-language-server)
  • Format on save (clang-format for C/C++, black for Python, stylua for Lua)
  • Git signs in the gutter (added / changed / removed hunks)
  • Automatic bracket and quote pairing
  • Visual indent guides
  • True-colour terminal rendering
  • DAP UI opens and closes automatically with debug sessions
  • Commands
    • Ctabs : convert tabs to 4 spaces
    • <C-b> : next buffer
    • <C-e> : go to next diagnostic
    • <C-i> : re-indent all lines
    • <C-h> / <C-j> / <C-k> / <C-l> : window navigation (left / down / up / right)
    • CMakeBuild / CMakeRun / CMakeDebug / CMakeClean / CMakeGenerate : cmake-tools build, run, debug, clean, generate
  • Keymaps (leader key: <Space>)
    • <leader>ff : find files (Telescope)
    • <leader>fg : live grep (Telescope)
    • <leader>fb : browse buffers (Telescope)
    • <leader>fh : help tags (Telescope)
    • <leader>fd : search diagnostics (Telescope)
    • <leader>xx : toggle diagnostics list (Trouble)
    • <leader>xX : toggle buffer diagnostics (Trouble)
    • <leader>ha : add file to Harpoon list
    • <leader>hh : toggle Harpoon quick menu
    • <leader>h1<leader>h4 : jump to Harpoon file 1–4
    • <leader>db : toggle breakpoint (nvim-dap)
    • <leader>dc : continue (nvim-dap)
    • <leader>ds : step over (nvim-dap)
    • <leader>di : step into (nvim-dap)
    • <leader>do : step out (nvim-dap)
    • <leader>du : toggle DAP UI (nvim-dap-ui)
    • <leader>rn : rename symbol (LSP)
    • <leader>ca : code action (LSP)
    • <leader>f : format buffer (LSP)
    • <leader>gs : stage hunk (Gitsigns)
    • <leader>gu : undo staged hunk (Gitsigns)
    • <leader>gp : preview hunk (Gitsigns)
    • <leader>gb : blame line (Gitsigns)
    • ]c / [c : next / previous git hunk (Gitsigns)
    • <C-Space> : trigger completion
    • <CR> : confirm completion
    • <Tab> / <S-Tab> : next / previous completion item
    • gd : go to definition (LSP)
    • gD : go to declaration (LSP)
    • gr : go to references (LSP)
    • gi : go to implementation (LSP)
    • K : hover documentation (LSP)
    • - : open Oil file manager
    • <M-CR> : accept Copilot suggestion
    • <M-]> / <M-[> : next / previous Copilot suggestion
    • <C-]> : dismiss Copilot suggestion
  • Plugins
    • folke/lazy.nvim: Fast, feature-rich plugin manager for Neovim.
    • nvim-lua/plenary.nvim: Lua utility library required by Telescope, Harpoon, and cmake-tools.
    • nvim-tree/nvim-web-devicons: File-type icon support used by lualine and Oil.
    • nvim-treesitter/nvim-treesitter: Incremental parsing for accurate syntax highlighting and code analysis.
    • neovim/nvim-lspconfig: Pre-configured LSP client setup for common language servers.
    • hrsh7th/nvim-cmp: Completion engine with LSP, buffer, and path sources.
    • hrsh7th/cmp-nvim-lsp: LSP completion source for nvim-cmp.
    • hrsh7th/cmp-buffer: Buffer text completion source for nvim-cmp.
    • hrsh7th/cmp-path: Filesystem path completion source for nvim-cmp.
    • hrsh7th/cmp-nvim-lsp-signature-help: Signature-help source for nvim-cmp.
    • p00f/clangd_extensions.nvim: Enhanced clangd features (inlay hints, type hierarchy).
    • mfussenegger/nvim-dap: Debug Adapter Protocol client for interactive debugging.
    • rcarriga/nvim-dap-ui: Graphical UI panels for nvim-dap (variables, watches, call stack).
    • nvim-neotest/nvim-nio: Async I/O library required by nvim-dap-ui.
    • stevearc/oil.nvim: File manager that lets you edit directories like text buffers.
    • ThePrimeagen/harpoon: Quick-access bookmarks for up to four frequently used files.
    • Civitasv/cmake-tools.nvim: CMake workflow integration — build, run, debug from Neovim.
    • folke/trouble.nvim: Structured list of diagnostics, references, quickfix, and location lists.
    • zbirenbaum/copilot.lua: Lua-native GitHub Copilot integration with inline suggestions.
    • nvim-telescope/telescope.nvim: Extensible fuzzy finder for files, grep, buffers, and more.
    • lewis6991/gitsigns.nvim: Inline git hunk indicators and stage/blame shortcuts.
    • nvim-lualine/lualine.nvim: Lightweight, configurable status line.
    • windwp/nvim-autopairs: Automatic bracket/quote pairing.
    • lukas-reineke/indent-blankline.nvim: Visual indent guides.
    • stevearc/conform.nvim: Fast formatter dispatcher (clang-format, black, stylua).

Cheat Sheets and references in the file notes.md

About

My Vim configuration

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors