Update README.md

This commit is contained in:
Maciej Lebiest 2022-10-14 07:08:35 +00:00 committed by GitHub
parent 7ae1b64cdf
commit c9f2bad91b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

150
README.md
View file

@ -7,3 +7,153 @@ there can be some(read "a lot of") messy stuff.
Much of this might have been selectively copy pasted from plugin repos. Much of this might have been selectively copy pasted from plugin repos.
Those repos are obviously listed in plugin setup part. Those repos are obviously listed in plugin setup part.
# Neovim
Repo: [https://github.com/Szwendacz99/nvim](https://github.com/Szwendacz99/nvim)
### First Time Setup
Installing system stuff (Fedora example):
```bash
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](https://www.nerdfonts.com/font-downloads)
### Usage
##### Opened files navigation:
<table border="1" id="bkmrk-ctrl-w-%3Carrow%3E-movin" style="border-collapse: collapse; width: 100%; height: 178.8px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>Ctrl w w
</td><td>Move to next splitted frame
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl w &lt;arrow&gt;
</td><td style="height: 29.8px;">moving throught splitted frame
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl w c
</td><td style="height: 29.8px;">close split</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl w v
</td><td style="height: 29.8px;">split vertically
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl w s
</td><td style="height: 29.8px;">split horizontally
</td></tr><tr><td>Ctrl w x
</td><td>swap places of two splits
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">gt</td><td style="height: 29.8px;">next tab</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">gT
</td><td style="height: 29.8px;">previous tab
</td></tr><tr><td>:tabnew
</td><td>Create new tab
</td></tr><tr><td>Ctrl g t
</td><td>(when in file tree) open selected file in new tab
</td></tr></tbody></table>
##### File explorer:
<table border="1" id="bkmrk-ctrl%2Bt-toggle-file-e" style="border-collapse: collapse; width: 100%; height: 89.4px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl+t
</td><td style="height: 29.8px;">Toggle file explorer when not focused on it
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">f
</td><td style="height: 29.8px;">Toggle filtering when focused on explorer
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">&lt;leader&gt; n
</td><td style="height: 29.8px;">Move focus to explorer
</td></tr><tr><td>d
</td><td>Delete selected file
</td></tr><tr><td>rn
</td><td>Rename file
</td></tr><tr><td>c
</td><td>add file to clipboard
</td></tr><tr><td>p
</td><td>paste (file) from clipboard
</td></tr></tbody></table>
##### File searching / Telescope
<table border="1" id="bkmrk-%3Cleader%3Eff-find-file" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>&lt;leader&gt;ff</td><td>Find files
</td></tr><tr><td>&lt;leader&gt;fg</td><td>Live grep
</td></tr><tr><td>&lt;leader&gt;fb</td><td>Buffers
</td></tr><tr><td>&lt;leader&gt;fh</td><td>Help tags</td></tr></tbody></table>
##### Git stuff
<table border="1" id="bkmrk-ctrl%2Bs-show-current-" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>Ctrl+g
</td><td>show current code chunk changes</td></tr></tbody></table>
Genreal git commands:
```bash
: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:
```bash
:CocCommand git.<command>
#examples:
:CocCommand git.chunkUndo
:CocCommand git.showCommit
:CocCommand git.showBlameDoc
```
##### Code editing stuff
<table border="1" id="bkmrk-%3Cleader%3Ern-rename-el" style="border-collapse: collapse; width: 100%; height: 298px;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">&lt;leader&gt;rn</td><td style="height: 29.8px;">rename element (function name, etc):</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">&lt;leader&gt;ft</td><td style="height: 29.8px;">format code
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">gd
</td><td style="height: 29.8px;">go to definition
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">gy
</td><td style="height: 29.8px;">go to type definition</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">gi
</td><td style="height: 29.8px;">go to implementation
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">gr
</td><td style="height: 29.8px;">go to references
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">:%s/^original.\*/replacement/gc
</td><td style="height: 29.8px;">regex replacing (c is for choice prompt, its optional)
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl+f
</td><td style="height: 29.8px;">scroll down popup with docstring
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">Ctrl+b
</td><td style="height: 29.8px;">scroll up popup with docstring
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">ZZ
</td><td style="height: 29.8px;">same as :wq
</td></tr><tr><td>Ctrl+q
</td><td>Visual block mode
</td></tr></tbody></table>
##### Sessions
To save **new** session on specific path, just use `:SaveSession`, then when opening nvim there, without arguments, the session will be restored.