All Projects → CharlesGueunet → vimmic

CharlesGueunet / vimmic

Licence: BSD-4-Clause license
Lightweight and well documented Vim/Neovim configuration. Easy to use and configure.

Programming Languages

Vim Script
2826 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to vimmic

Vim Init
轻量级 Vim 配置框架,全中文注释
Stars: ✭ 478 (+1978.26%)
Mutual labels:  vimrc, vim-configuration
Learn Vim
无废话极简版Vim学习笔记!文章按主题分拆为多个章节,并尽量控制每节的信息量;通过文字色彩和字体,将命令、快捷键突出显示;在每节结尾,提供一个命令列表,以便回顾文中介绍的重要命令。如果这些文章能对喜欢Vim的朋友有所益处,我将不胜荣幸。
Stars: ✭ 83 (+260.87%)
Mutual labels:  vimrc, vim-configuration
K Vim
vim配置
Stars: ✭ 4,834 (+20917.39%)
Mutual labels:  vimrc, vim-configuration
neovim
🌟 Cool & Modularized vim configurations to work like an IDE
Stars: ✭ 17 (-26.09%)
Mutual labels:  vimrc, vim-configuration
Vimrc Config
re-vim: sensible vim configuration
Stars: ✭ 212 (+821.74%)
Mutual labels:  vimrc, vim-configuration
nvimrc
vimrc for neovim written in lua
Stars: ✭ 99 (+330.43%)
Mutual labels:  vimrc, vim-configuration
Vimrc
📝 Vim Configuration for nerds with vim-plug
Stars: ✭ 33 (+43.48%)
Mutual labels:  vimrc, vim-configuration
VimConfig
Configuration files for Vi-IMproved.
Stars: ✭ 23 (+0%)
Mutual labels:  vimrc, vim-configuration
Vinux
Swiss Army Knife,Dark power vim config
Stars: ✭ 198 (+760.87%)
Mutual labels:  vimrc, vim-configuration
Vim Bootstrap
Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.
Stars: ✭ 1,870 (+8030.43%)
Mutual labels:  vimrc, vim-configuration
dotfiles
Dotfiles for Neovim (0.7+), Fish shell, git, Kitty, tmux, and more.
Stars: ✭ 54 (+134.78%)
Mutual labels:  vimrc, vim-configuration
vimrc
A shell script to deploy my vim configuration
Stars: ✭ 19 (-17.39%)
Mutual labels:  vimrc, vim-configuration
vim
📝 minimalistic vimrc based on KISS principle @vim
Stars: ✭ 46 (+100%)
Mutual labels:  vimrc, vim-configuration
Spacevim
A community-driven modular vim/neovim distribution - The ultimate vimrc
Stars: ✭ 17,558 (+76239.13%)
Mutual labels:  vimrc, vim-configuration
dotfiles
Personal dotfiles
Stars: ✭ 18 (-21.74%)
Mutual labels:  vimrc, vim-configuration
Dotfiles
💾 Ian's dotfiles, utils, and Zsh/Vim/tmux configs
Stars: ✭ 554 (+2308.7%)
Mutual labels:  vimrc, vim-configuration
nyoom.nvim
Blazing fast, configurable, minimal and lispy neovim config written in Fennel and Rust. Base config for users to extend and add upon, leading to a more unique editing experience. (🚀)
Stars: ✭ 304 (+1221.74%)
Mutual labels:  vimrc, neovim-conf
nan vimrc
A Vim configuration for SSH client to edit on a remote Linux host.
Stars: ✭ 15 (-34.78%)
Mutual labels:  vimrc, vim-configuration
Vim For Coding
vim-for-coding
Stars: ✭ 110 (+378.26%)
Mutual labels:  vimrc, vim-configuration
Space Vim
🍀 Lean & mean spacemacs-ish Vim distribution
Stars: ✭ 2,785 (+12008.7%)
Mutual labels:  vimrc, vim-configuration

VimMic is well-documented vim configuration along with a set of plugins for the Vim text editor. It stand for Vim Make It Clever and is aimed to keep this editor light and efficient.

CHANGELOG

  • Automatically build/compile_commands.json is found
  • No more .vimmic_config

Key Features

This configuration is not intrusive and should not confict with Vim default use.

By default, leader is defined on coma.

  • Mnemonic shortcuts with gui (press leader three times to see them)
  • Asynchronous completion and Syntax checking
  • Fast travel (file/buffers/tags...) and new operator/scopes
  • Fully customizable
  • Lazy / Conditionally load plugins
  • ...

Install

Note we highly recommend to backup your previous .vimrc if not already done as we are going to erase it through the installation process.

Dependencies

We highly recommend having a Vim build supporting Python. To check if Python is supported, run: vim --version | grep python and see if +python[...] is present.

Dependencies listed here are recommended but not required for all plugins:

  • flake8 is used by the plugin for Python flake8-vim. Install it through pip: pip install --user flake8.
  • yarn is used for the asyncronous completion

Install and update

Quick installation script:

VIMMIC_DIR=".vimmic"
cd ~
git clone https://github.com/CharlesGueunet/vimmic.git "${VIMMIC_DIR}"
ln -sf "${VIMMIC_DIR}"/.vimrc ${HOME}

Notice you can use whatever you want in $VIMMIC_DIR (including inside .config), as long as you do not modify the directory path afterward (as it may break the symbolic link).

To update this distribution, you can simply git pull. To update all plugins, use the command :Update

Windows

For windows, clone this repository wherever you want. As symlink are not managed in a Unix-like way, juste create a _vimrc file in your home containing the following:

let $MYVIMRC='Path to the .vimrc file in vimmic'
source $MYVIMRC

Neovim

For those who would like to try with [neovim][neovim], use the following snippet to link your vim configuration with your neovim configuration, change the $VIMMIC_DIR accordingly:

VIMMIC_DIR="~/.vimmic"
mkdir -p ${XDG_CONFIG_HOME:=$HOME/.config}
ln -s ${VIMMIC_DIR} $XDG_CONFIG_HOME/nvim
# ln -sf ~/.vimrc $XDG_CONFIG_HOME/nvim/init.vim
# not required in this conf

Note: you may need to run :Update afterward if you have already installed the plugins with Vim.

How to use

  • The default leader is ,.
  • You can see the Vimmic keymap (in a GUI) by pressing leader 3 times.
  • If you want persistant undo (survive vim restart) create a .undodir/ folder in the Vimmic installation folder.
  • If you want to display saved session at Vim startup, save them in .sessions/ folder in the Vimmic installation folder using :mksession.

Please read the Vimmic's help ( :help vimmic ) as it is well documented and provide many tips and tricks!

Enabling / disabling plugins

As described in the vimmic-config help, if you want to add / remove plugins, you can use the ${VIMMIC_DIR}/custom.toml or ${VIMMIC_DIR}/disable.toml files (simple syntax) to manage your list of plugins.

Do not forget to restart your Vim afterward, the editor will ask you to call :Update if needed.

Structure

All plugins are configured in their own files in config/plugins/. Other files do not affect them (the .vimrc load them)

${VIMMIC_DIR}/         # Vimmic install directory
  .vimrc               # Loads Vimmic environment, configuration and plugins
  plugins.toml         # Default plugins list
  plugins_ft.toml      # Plugins loaded only on specific file types
  config/
    editor.vim         # Behaviour config (files, buffers, search...)
    shortcuts.vim      # Defines some shortcuts on the original vim functionalities
    functions.vim      # Some cool functions to update all plugins, fold, debug...
    plugins/*          # per-plugin related configuration. Files should use the following sections:
                       #   Settings: Plugin related settings and variable
                       #   Shortcuts: Mapping for this plugin
                       #   Theme: Colors configuration for this plugin

For personnal configuration, you can ceate two files:

  • ${VIMMIC_DIR}/.vimrc.preconf: tweak vimmic by changing the leader key, colors, disabling part of the configuration...
  • ${VIMMIC_DIR}/.vimrc.postconf: override plugins configuration / themes, add your own features...

Examples of those files in the extra/ folder and the help vimmic-config gives some details.

Gallery

Vimmic default config Default configuration on a low color terminal. On the left we see the NerdTree pane to navigate in the project. The Install word is highlighted by the search.

Vimmic quantum The configuration using true-colors colorscheme as explained in the sample .vimrc.preconf and .vimrc.postconf of the extra/ folder. Here, we see on the left the Nerd Tree with the project files, the Undo Tree with the historic of the current file modifications and on the right the Tag bar with the current function highlighted. Moreover, Git information are shown on the left of the text.

Vimmic Visual Shortcuts To learn Vimmic, the help pages are your firends, but you can also use the Visual Shortcut panel. (Summon by pressin three times {leader})

Vimmic code For code development, the left window shows an error (v is not printable) reported on the editor line 15. The right window shows the clever completion (Ctrl-x x or Ctrl-space).

Inspiration

This configuration have started by a look at spf13, another vim distribution. spf13 is great but heavy so I decided to make my own configuration much lighter.

Another great distribution is SpaceVim, but here again this configuration is really complexe and most of the configuration should be made using their own defined functions.

For the navigation and some highlight, we used this post

Lots of idea where taken from the jetbrains ide which is among the best ones.

For those who want to use space as the leader key, this website can be usefull.

For later, build tools and shortcut might come from this conf.

Another great website about vim plugins is vimawesome.

Some tricks about buffer and viml evaluation come from this dotfile.

Plugins

Plugins and configurations included by default (lots of them are lazily/conditionally loaded):

'glts/vim-textobj-comment'
'kana/vim-textobj-entire'
'kana/vim-textobj-indent'
'sgur/vim-textobj-parameter'
'w0rp/ale'
'AndrewRadev/switch.vim'
'ctrlpvim/ctrlp.vim'
'markonm/traces.vim'
'mbbill/undotree'
'scrooloose/nerdtree'
'CharlesGueunet/quickmenu.vim'
'Lokaltog/vim-easymotion'
'Raimondi/delimitMate'
'Shougo/dein.vim'
'SirVer/ultisnips'
'airblade/vim-gitgutter'
'andymass/vim-matchup'
'andymass/vim-tradewinds'
'eugen0329/vim-esearch'
'google/vim-searchindex'
'honza/vim-snippets'
'inkarkat/vim-ingo-library'
'inkarkat/vim-mark'
'joereynolds/place.vim'
'junegunn/vim-peekaboo'
'kana/vim-textobj-user'
'kshenoy/vim-signature'
'liuchengxu/vista.vim'
'luochen1990/rainbow'
'machakann/vim-highlightedyank'
'mhinz/vim-startify'
'myusuf3/numbers.vim'
'neoclide/coc.nvim'
'rhysd/committia.vim'
'simeji/winresizer'
't9md/vim-choosewin'
'tommcdo/vim-exchange'
'tommcdo/vim-lion'
'tpope/vim-commentary'
'tpope/vim-dispatch'
'tpope/vim-fugitive'
'tpope/vim-repeat'
'tpope/vim-surround'
'vim-scripts/YankRing.vim'
'zivyangll/git-blame.vim'
'ilyachur/cmake4vim'
'lervag/vimtex'
'nickhutchinson/vim-cmake-syntax'
'octol/vim-cpp-enhanced-highlight'
'plasticboy/vim-markdown'
'prettier/vim-prettier'
'richq/vim-cmake-completion'
'sukima/xmledit'
'cespare/vim-toml'

Copyright

This git is maintained by Charles Gueunet <[email protected]>

Copyright (C) 2016 Charles Gueunet All rights reserved.

Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by Charles Gueunet. The name of Charles Gueunet may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED ''AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].