No description
Find a file
2022-10-14 09:30:26 +02:00
lua Remove unused tree plugin, upgrades to current tree plugin config 2022-10-09 16:30:57 +02:00
coc-settings.json Refresh diagnostics in input mode 2022-10-14 09:30:26 +02:00
init.vim Set apache type file for all .conf 2022-10-14 09:03:27 +02:00
LICENSE Initial commit 2022-10-05 19:20:32 +00:00
README.md Update README.md 2022-10-14 07:09:25 +00:00

My personal nvim configuration

I made this public so I can easily clone without authentication,
but since I treat this as a personal use only stuff,
there can be some(read "a lot of") messy stuff.

Much of this might have been selectively copy pasted from plugin repos. Those repos are obviously listed in plugin setup part.

Basic usage of this config

Repo: https://github.com/Szwendacz99/nvim

First Time Setup

Installing system stuff (Fedora example):

sudo dnf install \
	neovim \
    ripgrep \
    fd-find \
    nodejs-bash-language-server \
    tree-sitter-cli \
    wl-clipboard

pip install \
	pynvim \
    'pylama[all]' \
    flake8 \
    jedi \
    bandit \
    yapf \
    rope
    
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
Inside vim
:PlugInstall
:CocInstall coc-git coc-pyright coc-sh coc-json coc-css coc-tsserver coc-eslint coc-prettier coc-snippets coc-yaml

Hacked font is needed to display file type icons:
https://www.nerdfonts.com/font-downloads

Usage

Opened files navigation:
Ctrl w w Move to next splitted frame
Ctrl w <arrow> moving throught splitted frame
Ctrl w c close split
Ctrl w v split vertically
Ctrl w s split horizontally
Ctrl w x swap places of two splits
gtnext tab
gT previous tab
:tabnew Create new tab
Ctrl g t (when in file tree) open selected file in new tab
File explorer:
Ctrl+t Toggle file explorer when not focused on it
f Toggle filtering when focused on explorer
<leader> n Move focus to explorer
d Delete selected file
rn Rename file
c add file to clipboard
p paste (file) from clipboard
File searching / Telescope
<leader>ffFind files
<leader>fgLive grep
<leader>fbBuffers
<leader>fhHelp tags
Git stuff
Ctrl+g show current code chunk changes

Genreal git commands:

:Git <command>

#example:
:Git blame # this will nicely show \
		   # for every line in separate split
:Git add .

Nice single file diff viewer:

:Gdiffsplit

coc-git provides some commands for git:

:CocCommand git.<command>

#examples:
:CocCommand git.chunkUndo
:CocCommand git.showCommit
:CocCommand git.showBlameDoc
Code editing stuff
<leader>rnrename element (function name, etc):
<leader>ftformat code
gd go to definition
gy go to type definition
gi go to implementation
gr go to references
:%s/^original.\*/replacement/gc regex replacing (c is for choice prompt, its optional)
Ctrl+f scroll down popup with docstring
Ctrl+b scroll up popup with docstring
ZZ same as :wq
Ctrl+q Visual block mode
Sessions

To save new session on specific path, just use :SaveSession, then when opening nvim there, without arguments, the session will be restored.