Vim Configuration from Minimal to Complete

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • Scout APM - Truly a developer’s best friend
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
  • Zigi - Workflow assistant built for devs & their teams
  • vimrc

    Everything from here will be branched. So this is what the tags look like so far in the repository:

  • vim-sensible

    sensible.vim: Defaults everyone can agree on

    vim-sensible (we started our .vimrc file with that, so not mandatory, but like that it'll be up to do date)

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

  • vim-pathogen

    pathogen.vim: manage your runtimepath

    With vim 7.4, there was some tuning to do to manage the runtime path, that's why there are a bunch of plugin managers out there, like the minimalistic, solid vim-pathogen by Tim Pope (again!), vundle, then asynchronous and fast dein, and my favorite Vim-Plug.

  • vim-awesome

    Awesome Vim plugins from across the universe

    VimAwesome, look in the language menu, there are a lot of tags. you can check out the plugins by language

  • Puts Debuggerer

    Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.

    diff --git a/.vimrc b/.vimrc index 9535a37..373d076 100644 -------- a/.vimrc +++ b/.vimrc @@ -148,7 +148,7 @@ silent function! WINDOWS() endfunction set omnifunc=syntaxcomplete#Complete -set spell +" set spell " Smart mapping for tab completion " https://vim.fandom.com/wiki/Smart_mapping_for_tab_completion @@ -208,3 +208,15 @@ let g:ale_set_loclist = 1 let g:ale_set_quickfix = 1 let g:ale_open_list = 1 let g:ale_list_window_size = 5 + +set background=dark +colorscheme solarized8 +if has('gui_running') + if has('gui_gtk2') + set guifont=Dank\ Mono\ Regular:h12 + elseif has('gui_macvim') + set guifont=Dank\ Mono\ Regular:h12 + elseif has('gui_win32') + set guifont=Dank\ Mono\ Regular:h12 + endif +endif diff --git a/bin/plugins.sh b/bin/plugins.sh index 3b87ba4..38b9e9c 100755 -------- a/bin/plugins.sh +++ b/bin/plugins.sh @@ -10,6 +10,8 @@ git_plugins=( "tpope/vim-sensible" "lifepillar/vim-mucomplete" "tpope/vim-fugiti linter_plugins=( "dense-analysis/ale" ) +color_plugins=( "lifepillar/vim-solarized8" ) + for plugin in "${git_plugins[@]}"; do folder=$(echo $plugin | cut -d'/' -f2) if [ ! -d "$folder" ]; then @@ -31,3 +33,14 @@ for plugin in "${linter_plugins[@]}"; do cd .. fi done + +for plugin in "${color_plugins[@]}"; do + folder=$(echo $plugin | cut -d'/' -f2) + if [ ! -d "$folder" ]; then + git clone --depth 1 "https://github.com/$plugin.git" + else + cd "$folder" + git fetch origin + cd .. + fi +done

  • vim-mucomplete

    Chained completion that works the way you want!

    diff --git a/.vimrc b/.vimrc index 7f727b8..65a4c7a 100644 -------- a/.vimrc +++ b/.vimrc @@ -148,6 +148,7 @@ silent function! WINDOWS() endfunction set omnifunc=syntaxcomplete#Complete +set spell " Smart mapping for tab completion " https://vim.fandom.com/wiki/Smart_mapping_for_tab_completion @@ -172,4 +173,4 @@ function! Smart_TabComplete() endif endfunction -inoremap =Smart_TabComplete() +" inoremap =Smart_TabComplete() diff --git a/bin/plugins.sh b/bin/plugins.sh old mode 100644 new mode 100755 index 23d88c2..ab903ec -------- a/bin/plugins.sh +++ b/bin/plugins.sh @@ -6,4 +6,15 @@ fi cd ~/.vim/pack/bundle/start -git clone --depth 1 https://github.com/lifepillar/vim-mucomplete.git +git_plugins=( "tpope/vim-sensible" "lifepillar/vim-mucomplete" "tpope/vim-fugitive" "tpope/vim-commentary" "tpope/vim-surround" "tpope/vim-vinegar" "tpope/vim-sleuth" "tpope/vim-obsession" "raimondi/delimitmate" "ctrlpvim/ctrlp.vim" ) + +for plugin in "${git_plugins[@]}"; do + folder=$(echo $plugin | cut -d'/' -f2) + if [ ! -d "$folder" ]; then + git clone --depth 1 "https://github.com/$plugin.git" + else + cd "$folder" + git fetch origin + cd .. + fi +done

  • vim-fugitive

    fugitive.vim: A Git wrapper so awesome, it should be illegal

    vim-fugitive git wrapper

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

  • vim-commentary

    commentary.vim: comment stuff out

    vim-commentary comment stuff out

  • vim-surround

    surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease

    vim-surround manipulate enclosing characters, tags, etc

  • vim-vinegar

    vinegar.vim: Combine with netrw to create a delicious salad dressing

    vim-vinegar to move around from buffer to netrw (vim's directory browser)

  • vim-sleuth

    sleuth.vim: Heuristically set buffer options

    vim-sleuth to set indentation

  • vim-obsession

    obsession.vim: continuously updated session files

    vim-obsession vim session autosave and other session-related things

  • delimitMate

    Vim plugin, provides insert mode auto-completion for quotes, parens, brackets, etc.

    delimitmate to automatically close quotes, etc

  • ctrlp.vim

    Active fork of kien/ctrlp.vim—Fuzzy file, buffer, mru, tag, etc finder. (by ctrlpvim)

    ctrlp.vim search for a file

  • ale

    Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support

    ale is my favorite. Works really fine, is pretty fast and asynchronous, so not frustrating.

  • vim-polyglot

    A solid language pack for Vim.

    Language packs. So here, you have to look for them one by one, depending on the languages you use. Sometimes, the official website or official organization in GitHub or such offers a plugin, like Rust or Rescript. Sometimes you will have to search for "javascript vim" or something, and check out the results. The vim-polyglot language package list is also a good starting point to search for a specific language

  • vim-solarized8

    Optimized Solarized colorschemes. Best served with true-color terminals!

    Let's take an example with the famous solarized8 color theme. Basically, we get the plugin, set the colorscheme variable, background tone (light/dark).

  • vim-easy-align

    :sunflower: A Vim alignment plugin

  • vim-visual-multi

    Multiple cursors plugin for vim/neovim

    vim-visual-multi for multi selectors

  • goyo.vim

    :tulip: Distraction-free writing in Vim

    goyo.vim distraction-free mode

  • limelight.vim

    :flashlight: All the world's indeed a stage and we are merely players

    limelight.vim focus on current paragraph, dim the rest (cool with goyo)

  • lightline.vim

    A light and configurable statusline/tabline plugin for Vim

    lightline.vim status bar

  • vim-devicons

    Adds file type icons to Vim plugins such as: NERDTree, vim-airline, CtrlP, unite, Denite, lightline, vim-startify and many more

    devicons file, scm icons

  • vim-startify

    :link: The fancy start screen for Vim.

    startify cool vim startup page, with recent files and a quote

  • any-jump.vim

    Jump to any definition and references 👁 IDE madness without overhead 🚀

    any-jump.vim jump to definition

  • vim-highlightedyank

    Make the yanked region apparent!

    vim-highlightedyank to highlight the yaked text for a sec

  • vim-thematic

    Alter Vim's appearance to suit your task & environ

    vim-thematic to switch between themes

  • vim-gitgutter

    A Vim plugin which shows git diff markers in the sign column and stages/previews/undoes hunks and partial hunks.

    vim-gitgutter to display git information in the "gutter"

  • ultisnips

    UltiSnips - The ultimate snippet solution for Vim. Send pull requests to SirVer/ultisnips!

    ultisnips vim snippets engine

  • vim-snippets

    vim-snipmate default snippets (Previously snipmate-snippets)

    vim-snippets actual snippets

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts