aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: 751f18ebe626d8b0a7e48e005a3e574f3aa4b25b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# VIM

This repo contains my vim configuration, hope it will be useful for you.

## Installation

You will need `vim` and `git` to be able to use this configuration.

Normally if you run the `install.sh` script it will work, but if you have a problem, try to install vim plug and check if your problem is solved.

```bash
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
```

Oh and remove neovim, it make some problems with vim.

## Plugins

This config has just the necessary plugins installed:

- [OneDark](https://github.com/joshdick/onedark.vim) onedark theme.
- [Vim Airline](https://github.com/vim-airline/vim-airline) Vim statusline.
- [Fern](https://github.com/lambdalisue/fern.vim) to have a file tree in vim.
- [Fern hijack](https://github.com/lambdaalisue/fern-hijack.vim) to open folder preview with fern.
- [Fern renderer devicons](https://github.com/lambdalisue/fern-renderer-devicons.vim) to have devicons in fern.
- [Fern git mapping](https://github.com/lambdalisue/fern-mapping-git.vim) to add git stage & unstage in fern.
- [Fern copy node](https://github.com/andykog/fern-copynode.vim) to copy filename or foldername or filepath or folderpath.
- [Fern git status](https://github.com/lambdalisue/fern-git-status.vim.git) show file git status in fern.
- [Vim which key](https://github.com/liuchengxu/vim-which-key) show leader keybinds in a GUI.
- [Vim devicons](https://github.com/ryanoasis/vim-devicons) language icons for vim.
- [Vim nerdtree syntax highlighting](https://github.com/tiagofumo/vim-nerdtree-syntax-highlight) nerdtree syntax highlighting
- [Vim gitgutter](https://github.com/airblade/vim-gitgutter) to see diff between files with git.
- [Vim-lsp](https://github.com/prabirshrestha/vim-lsp) linter & formatter for language.
- [Vim-lsp settings](https://github.com/mattn/vim-lsp-settings) easily setup lsp servers for languages.
- [Asyncomplete](https://github.com/prabirshrestha/asyncomplete.vim) async autocompletion
- [Asyncomplete & lsp-vim](https://github.com/prabirshrestha/asyncomplete-lsp.vim) use vim-lsp as source for autocompletion lsp server.

## Command & keybinds

### General

- `<leader>hl` remove highlighting

#### Window

- `Ctrl+h` move to the left window,
- `Ctrl+j` move to the bottom window,
- `Ctrl+k` move to the upper window,
- `Ctrl+l` move to the right window,

#### Buffer

- `<leader>bd` close the current buffer,
- `<leader>ba` close all the buffers,
- `<leader>bn` go to the next buffer,
- `<leader>bp` go to the precedent buffer,

#### Tabs

- `<leader>tn` open a new tab,
- `<leader>to` close all other tabs,
- `<leader>tc` close current tab page,
- `<leader>tm` move the tab after another,
- `<leader>t<leader>` go to the next tab,
- `<leader>tl` toggle between this tab and the last accessed tab,
- `<leader>te` open a new tab with the current buffer,

#### Spell check

- `<leader>ss` toggle / untoggle spellchecking,
- `<leader>sn` go to the next word to spellcheck,
- `<leader>sp` go to the previous word to spellcheck,
- `<leader>sa` add a word into the dictionary,
- `<leader>s?` show the list of alternatives for the word,

More help at `:help spell`

### Fern

For help, use `:help fern`.
Keybinds:
- `Ctrl+f` open the treeview in the current window
- `ga` stage a file or unstage if already stagged (TODO)
- `cp` copy node name (file, folder..)
- `cP` copy node path

### Vim Gutter

For help, use `:help gitgutter`.  
Keybinds:
- `<leader>hp` go to the previous hunk,
- `<leader>hn` go to the next hunk,
- `<leader>hP` to preview hunk,
- `<leader>hs` to stage hunk,
- `<leader>hu` to undo hunk,
- `<leader>ht` to toggle GitGutter.

Hunks are the difference between your file and the git file.

### LSP

For help, use `:help vim-lsp`.  
Keybinds:
- `<leader>ld` go to the definition,
- `<leader>lnd` go to the next diagnostic,
- `<leader>lpd` go to the previous diagnostic,
- `<leader>lf` go to the reference,
- `<leader>lr` rename element,
- `<leader>ls` stop lsp server,
- `<leader>lp` peek a view to the definition,
- `<leader>la` code action,
- `<leader>lh` lsp hover,
- `<leader>ldf` format document.

## Linters & fixers

### Python

For using python linters & fixers, you will need to setup a virtual env & install the linters & fixers.

```bash
python -m venv .venv
source .venv/bin/activate
pip install python-lsp-server[all]
```
ArKa projects. All rights to me, and your next child right arm.