| Mode | Key | Action |
|---|---|---|
| - | <Space> | Leader key |
| Normal | <leader>cd | Open netrw file explorer |
| Normal | <leader>rl | Reload vimrc |
| Normal | <leader><leader> | Source current file |
| Insert | <C-c> | Behave like <Esc> |
| Normal | Q | Disabled (no Ex mode) |
| Mode | Key | Action |
|---|---|---|
| Visual | J | Move selected lines down |
| Visual | K | Move selected lines up |
| Normal | J | Join lines with cursor preserved |
| Visual | <leader>p | Paste without overwriting clipboard |
| Normal/Visual | <leader>d | Delete without overwriting clipboard |
| Normal | <leader>s | Substitute word under cursor on line |
| Normal | <leader>x | Make current file executable |
| Normal | <leader>dg | Generate documentation (Doge) |
| Mode | Key | Action |
|---|---|---|
| Normal | <C-d> | Scroll half-page down and center |
| Normal | <C-u> | Scroll half-page up and center |
| Normal | n | Next search result (centered) |
| Normal | N | Previous search result (centered) |
| Normal | <C-j> | Next location list item |
| Normal | <C-k> | Previous location list item |
| Normal | <leader>k | Next location list (centered) |
| Normal | <leader>j | Previous location list (centered) |
| Normal | <leader>cl | Close location list |
| Mode | Key | Action |
|---|---|---|
| Normal | <leader>ff | Find files |
| Normal | <leader>fo | File history |
| Normal | <leader>fb | Open buffers |
| Normal | <leader>fq | Quickfix list |
| Normal | <leader>fh | Help tags |
| Normal | <leader>fs | Grep current word under cursor |
| Normal | <leader>fg | Grep (prompt for input) |
| Normal | <leader>fc | Grep for current filename |
| Normal | <leader>fi | Find files in ~/.vim config |
| Mode | Key | Action |
|---|---|---|
| Normal/Visual | <leader>y | Yank via OSCYank |
git- For plugin managementvim- 8.0+ recommendedripgrep(rg) - Fast grep alternative for FZFfd- Fast find alternative for FZFfzf- Fuzzy finder
rust-analyzer- Rust LSP servertypescript-language-server- TypeScript/JavaScript LSPintelephense- PHP LSP
sudo pacman -S git vim ripgrep fd fzf
sudo pacman -S rust-analyzer # optional
npm install -g typescript-language-server # optionalnix-env -iA nixpkgs.git nixpkgs.vim nixpkgs.ripgrep nixpkgs.fd nixpkgs.fzf
nix-env -iA nixpkgs.rust-analyzer # optional
npm install -g typescript-language-server # optionalsudo emerge --ask dev-vcs/git app-editors/vim sys-apps/ripgrep sys-apps/fd app-shells/fzf
sudo emerge --ask dev-lang/rust-bin # for rust-analyzer
npm install -g typescript-language-server # optionalsudo apt install git vim ripgrep fd-find fzf
# Note: fd is called fd-find on Debian/Ubuntubrew install git vim ripgrep fd fzf
brew install rust-analyzer # optional
npm install -g typescript-language-server # optionalrustup component add rust-analyzergit clone <your-repo> ~/.vimAdd to ~/.bashrc or ~/.zshrc:
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow'Then source your shell config:
source ~/.bashrc # or ~/.zshrcCreate ~/.fdignore:
vim ~/.fdignoreAdd these lines:
undodir/ plugged/ .git
Create ~/.rgignore:
vim ~/.rgignoreAdd the same patterns:
undodir/ plugged/ .git
Open Vim and the plugins will auto-install on first run.
| Plugin | Purpose |
|---|---|
junegunn/fzf | Fuzzy finder |
junegunn/fzf.vim | FZF Vim integration |
tomasiser/vim-code-dark | Code Dark color scheme |
ghifarit53/tokyonight-vim | Tokyo Night color scheme |
yegappan/lsp | LSP client |
ojroques/vim-oscyank | Copy to system clipboard via OSC52 |
tpope/vim-commentary | Comment/uncomment code |
itchyny/lightline.vim | Statusline |
~/.vim/ ├── vimrc # Main config (sources all below) ├── options.vim # Vim options and settings ├── keybinds.vim # Keybindings ├── plugins.vim # Plugin manager and plugin list ├── colors.vim # Color scheme configuration ├── fzf.vim # FZF configuration ├── lightline.vim # Lightline configuration └── plugged/ # Plugin installation directory
Plugins auto-install when you first start Vim. To manually reinstall, delete ~/.vim/plugged and restart Vim.
cd ~/.vim/plugged/<plugin-name>
git pullThe FZF configuration respects .gitignore, .fdignore, and .rgignore files automatically.
Use <leader>ff to search files, <leader>fg to grep content.
Configure LSP servers in your config. Currently configured:
- Rust:
rust-analyzer - TypeScript/JavaScript:
typescript-language-server - PHP:
intelephense
- The plugin manager is custom and minimal - it auto-installs plugins on Vim startup
.fdignoreand.rgignoreprevent searching through plugin directories and undo files- FZF uses
fdfor file listing (faster thanfind) andrgfor content search - OSCYank allows copying to system clipboard even over SSH