Skip to content

🍻 My very own VIM config. It's the very bestest in the galaxy. Towel included.

Notifications You must be signed in to change notification settings

cookiengineer/dotvim

Repository files navigation

Cookie's VIM config

This is my personal VIM config, I like it very much. The configuration is split up in multiple .vim files, so everything looks nice and clean (and maybe even modular).

It is verified to work on these systems:

  • vim on GNU/Linux in GNOME terminal or kitty
  • vim on Termux for Android
  • MacVIM on MacOS

Installation

If you want this VIM config, do this in your Terminal:

mv ~/.vim   ~/.vim__NOTSOAWESOME;
mv ~/.vimrc ~/.vimrc__NOTSOAWESOME;

git clone https://github.com/cookiengineer/dotvim ~/.vim;
ln -s ~/.vim/.vimrc ~/.vimrc;

The plugins are contained in ./plugged and are statically shipped in this repository (for the sake of having a known-to-work-failsafe history).

For details on plugins and how to update, read Plugins and Updates respectively down below.

Usage

Auto Fixes

  • Copy/Paste from GUI applications into Terminal
  • Copy/Paste leads to auto-indented code

Auto Commands

Auto commands are defined in autocmds.vim.

  • BufWritePre removes trailing whitespaces.
  • BufWritePre and FileWritePre creates non-existing parent folder paths via mkdir -p.
  • FileChangedRO, FileChangedShell, FileChangedShellPost have been modified to echo the warning instead of opening an annoying shell.

Manual Commands

  • :W will write files with sudo / root rights.

Normal Mode

Key Bindings that don't require a plugin are defined in mappings.vim, those that do are defined in the settings.<plugin-name>.vim file.

  • [F1] opens netrw as sidebar.
  • [F2] turns off highlighting (/<search> in normal mode).
  • [F3] formats, auto-indents and auto-lints the current buffer.
  • [+] ([Shift] + [-] on US keyboard) toggles current window zoom (aka fullscreen mode).
  • [p] auto formats bad indents on paste.

Tab Navigation

  • [Ctrl] + [E], [S] creates a new tab.
  • [Ctrl] + [E], [V] creates a new tab.
  • [Ctrl] + [E], [C] closes the current tab.
  • [Ctrl] + [E], [Arrow Key] moves focus to different tab.
  • [Ctrl] + [E], [H/L] moves focus to different tab.

Window/Buffer Navigation

(Default Bindings)

  • [Ctrl] + [W], [S] horizontally splits current window.
  • [Ctrl] + [W], [V] vertically splits current window.
  • [Ctrl] + [W], [Arrow Key] moves focus to different window.
  • [Ctrl] + [W], [H/J/K/L] moves focus to different window.

Additional Bindings are defined in settings.tradewinds.vim.

  • [Shift] + [W], [Arrow Key] moves the current window.
  • [Shift] + [W], [H/J/K/L] moves the current window.

Error Navigation

Error Navigation Bindings are defined in settings.ale.vim.

  • [Ctrl] + [Arrow Key] moves focus to to different linting error.
  • [Ctrl] + [J/K] moves focus to different linting error.

Visual Mode

(Default Bindings)

  • [g], [f] opens File under cursor in current window.
  • [g], [x] opens Browser or Application via gio open.

Normal Mode and Visual Mode

Additional Bindings are defined in settings.move.vim.

  • [Ctrl] + [J/K] moves currently selected block.

Templates

The templates are defined in templates.vim

Plugins

The plugins are defined in .vimrc and use a static copy of vim-zen located at ./autoload/zen.vim.

Updates

The zen.vim file is modified to use git clone --depth=1 --single-branch --branch=master in order to save bandwidth. In order to make a full plain copy, just remove the subfolders in ./plugged, do a :ZenInstall via vim, and execute the bin/clean.sh file afterwards via bash.

It is wise to modify the bin/clean.sh when some unnecessary bloat was added to plugins and appear in a git diff afterwards (Pull Requests welcomed).

About

🍻 My very own VIM config. It's the very bestest in the galaxy. Towel included.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages