aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xREADME.md391
-rw-r--r--init.lua66
2 files changed, 241 insertions, 216 deletions
diff --git a/README.md b/README.md
index c6da247..0d4f81b 100755
--- a/README.md
+++ b/README.md
@@ -50,191 +50,212 @@ For different working scenarios.
50 textwidth (configured with `set textwidth=80` for example) 50 textwidth (configured with `set textwidth=80` for example)
51 51
52 52
53 :viusage = summary of all keyboard shortcuts 53## general
54 :options = shows currently :set options (with descriptions) 54
55 leader key = usually set to backslash expects a quick command 55 :viusage = summary of all keyboard shortcuts
56 56 :options = shows currently :set options (with descriptions)
57 [normal mode] 57 leader key = usually set to backslash expects a quick command
58 f{char} = move cursor to the character {char} 58
59 gf = open file under cursor 59### normal mode
60 <C-w>gf = open file under cursor in a tab 60
61 <C-w>] = jump to the tag under the cursor in a new window 61 f{char} = move cursor to the character {char}
62 <C-t> = jump back from where that ^ brought you 62 gf = open file under cursor
63 K = keyword lookup for the word under the cursor (see :help kp) 63 <C-w>gf = open file under cursor in a tab
64 w = next word 64 <C-w>] = jump to the tag under the cursor in a new window
65 e = end of word (=inner word) 65 <C-t> = jump back from where that ^ brought you
66 66 K = keyword lookup for the word under the cursor (see :help kp)
67 @see: :h text-objects 67 w = next word
68 ci' = change between single quote 68 e = end of word (=inner word)
69 ci" = change between double quote 69
70 ci( = change between brace 70 @see: :h text-objects
71 cit = change XML Tag 71 ci' = change between single quote
72 ciw = select inner word 72 ci" = change between double quote
73 caw = select 'a word' 73 ci( = change between brace
74 " where c can be replaced by v for visual mode 74 cit = change XML Tag
75 75 ciw = select inner word
76 :%s/foo/bar/g = replace all foo with bar 76 caw = select 'a word'
77 :g/foo/s/bar//g = on lines with foo replace bar with nothing 77 " where c can be replaced by v for visual mode
78 :g!/foo/s/bar//g = on lines not containing foo replace bar with nothing 78
79 :g!/^foo/execute("normal dd") delete lines starting with foo 79 :%s/foo/bar/g = replace all foo with bar
80 80 :g/foo/s/bar//g = on lines with foo replace bar with nothing
81 flags, end: after the last / 81 :g!/foo/s/bar//g = on lines not containing foo replace bar with nothing
82 g = replace globally (all occurances on the current line) 82 :g!/^foo/execute("normal dd") delete lines starting with foo
83 c = confirm each replace, also allows to switch to g (use the flag to see the help message) 83
84 e = places the cursor in the end of the selection 84 flags, end: after the last /
85 85 g = replace globally (all occurances on the current line)
86 flags, within the search string: 86 c = confirm each replace, also allows to switch to g (use the flag to see the help message)
87 \v = use very magic search (more like perl) 87 e = places the cursor in the end of the selection
88 \V = use no very magic, more like searching verbatim 88
89 \zs .. \ze = mark begin and end of a sub pattern (like perl lookaround assertions) 89 flags, within the search string:
90 90 \v = use very magic search (more like perl)
91 [visual mode] # with selected lines 91 \V = use no very magic, more like searching verbatim
92 gq = formats text so that it fits in whatever :set textwidth was set 92 \zs .. \ze = mark begin and end of a sub pattern (like perl lookaround assertions)
93 iB = select block between curly braces (:help object-select) 93
94 94### visual mode (with selected lines)
95 [commands] 95
96 command line mode begins with : and has its own key mappings starting with c like in cnormap 96 gq = formats text so that it fits in whatever :set textwidth was set
97 97 iB = select block between curly braces (:help object-select)
98 :spell [word] = adds a word to the current dictionary (no mistake any more) 98
99 :set list = display non printable characters 99### command line mode
100 :retab = replaces tabs with spaces 100command line mode begins with : and has its own key mappings starting with c
101 :set expandtab = in insert mode: replace tab with spaces 101like in cnormap
102 :Explore = cli version open file dialog (file explorer) 102
103 :Lex = use netrw as project drawer (stays open in its own window) 103 :spell [word] = adds a word to the current dictionary (no mistake any more)
104 :only = 'maximize' current buffer 104 :set list = display non printable characters
105 105 :retab = replaces tabs with spaces
106 <c-r><c-w> = auto completion with the word under the cursor (interesting with incsearch) 106 :set expandtab = in insert mode: replace tab with spaces
107 <c-a> = expand pattern from command line (e.g. *.txt) 107 :Explore = cli version open file dialog (file explorer)
108 108 :Lex = use netrw as project drawer (stays open in its own window)
109 [navigation] 109 :only = 'maximize' current buffer
110 <CTRL-]> = look up the tag under the cursor (help links as well) 110
111 <CTRL-T> = return back from tag under the cursor 111
112 gd = jump to the declaration of the variable under the cursor 112### insert mode
113 113
114 [macros] # record and play back a series of vim commands 114 <c-r><c-w> = auto completion with the word under the cursor (interesting with incsearch)
115 qa = start (q) macro recording in register a (can be anything) 115 <c-a> = expand pattern from command line (e.g. *.txt)
116 q = stop macro recording 116
117 @a = replay macro a 117### navigation
118 :'<,'>normal @a = apply a to every line in the current selection 118
119 :reg = lists all registers (including those with macros in them) 119 <CTRL-]> = look up the tag under the cursor (help links as well)
120 120 <CTRL-T> = return back from tag under the cursor
121 [registers] 121 gd = jump to the declaration of the variable under the cursor
122 notice, that registers get used for both: macro recordings and copying text 122
123 123### macros
124 :reg = shows contents of all registers 124record and play back a series of vim commands
125 "0p = pasts from register 0, which is the same as "", but not overwritten by dd 125
126 "ap = same for register a 126 qa = start (q) macro recording in register a (can be anything)
127 "0yy = yanks to register 0 (same as y by itself) 127 q = stop macro recording
128 "ay = yanks current selection to register a (in visual mode) 128 @a = replay macro a
129 129 :'<,'>normal @a = apply a to every line in the current selection
130 [marker] 130 :reg = lists all registers (including those with macros in them)
131 ma = set marker a-z (a in this case) 131
132 mA = create a session persistent file marker which can be used to reopen a file (not bound to the buffer) 132### registers
133 `a = go to marker a (line & column) 133notice, that registers get used for both: macro recordings and copying text
134 'a = go to marker a (line, first non blank), same as `a^ 134
135 135 :reg = shows contents of all registers
136 [hotkeys] 136 "0p = pasts from register 0, which is the same as "", but not overwritten by dd
137 <C-A>, <C-X> = increment, decrement number under the cursor 137 "ap = same for register a
138 138 "0yy = yanks to register 0 (same as y by itself)
139 [windows] 139 "ay = yanks current selection to register a (in visual mode)
140 <C-W>v = splits buffer vertically (screen uses |) 140
141 <C-W>s = splits buffer horizontally (same as screen) 141### marker
142 <C-W>w = moves the cursor to the next window and back 142
143 <C-W>[dir] = moves the cursor in that direction (use hjkl or arrow keys) 143 ma = set marker a-z (a in this case)
144 <C-W>[HK] = make a vertical split horizontal and vice versa 144 mA = create a session persistent file marker which can be used to reopen a file (not bound to the buffer)
145 <C-W>o = only: close all other windows 145 `a = go to marker a (line & column)
146 <C-W>c = close: current window in which the cursor sits 146 'a = go to marker a (line, first non blank), same as `a^
147 147
148 [vimdiff] 148### other hotkeys
149 do = get changes from other window into the current 149
150 dp = put changes from current window into the other 150 <C-A>, <C-X> = increment, decrement number under the cursor
151 ]c = jump to the next change 151
152 [c = jump to the prevous change 152## windows
153 153
154 [folds] 154 <C-w>v = splits buffer vertically (screen uses |)
155 za = toggle a fold 155 <C-w>s = splits buffer horizontally (same as screen)
156 zM = close all folds 156 <C-w>w = moves the cursor to the next window and back
157 zR = opens all folds (unfold all) 157 <C-w>[dir] = moves the cursor in that direction (use hjkl or arrow keys)
158 zE = eliminates all folds 158 <C-w>[HK] = make a vertical split horizontal and vice versa
159 159 <C-w>o = only: close all other windows
160 [buffers] 160 <C-w>c = close: current window in which the cursor sits
161 :bn = buffer next 161
162 :bp = buffer previous 162### vimdiff
163 :bd = buffer dispatch (close) 163
164 :b <tab> = switch buffer by name (use <tab> and <return>) 164 do = get changes from other window into the current
165 :set nobuflisted = hide buffer in buffer list (great for neovim's terminal) 165 dp = put changes from current window into the other
166 166 ]c = jump to the next change
167 [args] 167 [c = jump to the prevous change
168 :n **/*.c = opens all files with that name or type in buffers and also fills the argument list 168
169 169### folds
170 [special] 170
171 g CTRL-g = display file properties including word and char count 171 za = toggle a fold
172 q: = show command history and use it like a normal buffer 172 zM = close all folds
173 z= = show spellcheck suggestions 173 zR = opens all folds (unfold all)
174 174 zE = eliminates all folds
175 [completions] 175
176 CTRL-O = display completions: omnicomplete (context dependant completions) 176### buffers
177 177
178 CTRL-X CTRL-F = display completions: file name (using vim-internals omnicomplete) 178 :bn = buffer next
179 CTRL-N CTRL-P = display completions: file keywords 179 :bp = buffer previous
180 CTRL-K = display completions: dictionary 180 :bd = buffer dispatch (close)
181 CTRL-T = display completions: thesaurus 181 :b <tab> = switch buffer by name (use <tab> and <return>)
182 CTRL-I = display completions: include files 182 :set nobuflisted = hide buffer in buffer list (great for neovim's terminal)
183 CTRL-] = display completions: tags 183
184 CTRL-D = display completions: (marcro-) definitions 184### args
185 CTRL-V = display completions: vim command line 185
186 CTRL-U = display completions: user-defined 186 :n **/*.c = opens all files with that name or type in buffers and also fills the argument list
187 187
188 [annoyances] 188### special
189 gv = visual mode: reselect last selection 189
190 CTRL-o = lets the caret jump back to the previous location 190 g CTRL-g = display file properties including word and char count
191 CTRL-L = redraws the complete screen 191 q: = show command history and use it like a normal buffer
192 CTRL-R<register> = in insert mode and command line: paste contents of <register> (e.g. : for last command, * for clipboard) 192 z= = show spellcheck suggestions
193 CTRL-R = in normal mode: redoes what has been undone with u 193
194 "<register>p = in normal mode: paste paste contents of <register> 194### completions
195 195
196 [registers] 196 CTRL-O = display completions: omnicomplete (context dependant completions)
197 "/ = last search expression 197 CTRL-X CTRL-F = display completions: file name (using vim-internals omnicomplete)
198 ": = last command entered 198 CTRL-N CTRL-P = display completions: file keywords
199 "= = expression register (to do calculations or call vim functions) 199 CTRL-K = display completions: dictionary
200 200 CTRL-T = display completions: thesaurus
201 [netrw] 201 CTRL-I = display completions: include files
202 :Lex = open the netrw-view as project drawer 202 CTRL-] = display completions: tags
203 gn = makes the directory under the cursor the root directory 203 CTRL-D = display completions: (marcro-) definitions
204 a = toggles display of hidden files 204 CTRL-V = display completions: vim command line
205 205 CTRL-U = display completions: user-defined
206 [filetype:css] 206
207 viB:sort = sort inner block by name 207### annoyances
208 208 gv = visual mode: reselect last selection
209 [vim commands] 209 CTRL-o = lets the caret jump back to the previous location
210 :for i in range(1,12) | put ='2016-'.i | endfor 210 CTRL-l = redraws the complete screen
211 211 CTRL-R<register> = in insert mode and command line: paste contents of <register> (e.g. : for last command, * for clipboard)
212 [fancy utf-8 symbols] 212 CTRL-R = in normal mode: redoes what has been undone with u
213 213 "<register>p = in normal mode: paste paste contents of <register>
214 214
215 [debugging] 215### registers
216 :profile! start /tmp/profile.log 216 "/ = last search expression
217 :profile func * 217 ": = last command entered
218 :profile file * 218 "= = expression register (to do calculations or call vim functions)
219 " At this point do slow actions 219
220 :profdel * 220### netrw
221 :e /tmp/profile.log 221 :Lex = open the netrw-view as project drawer
222 " add a break point to a vim script (like vimrc) to invoke the internal debugger 222 gn = makes the directory under the cursor the root directory
223 :breakadd here 223 a = toggles display of hidden files
224 224
225 :finish = from within a viml-script: stop sourcing it 225### filetype:css
226 226
227 [substitutions] 227 viB:sort = sort inner block by name
228 delete all comments: %s/\/\*\*< [^(\*\/)]*\*\///g 228
229 remove empty lines: global/^$/d 229### vim commands
230 remove non-empty lines: v/^$/d 230
231 231 :for i in range(1,12) | put ='2016-'.i | endfor
232 [programs] 232
233 gpm - cut and paste helper for the linux console (to get text from CTRL-ALT-F2 to CTRL-ALT-F3) 233### debugging
234 234
235 [vim modeline] 235 :profile! start /tmp/profile.log
236 filetype can have multiple values, like python.django 236 :profile func *
237 The last line can be a mode line, which holds settings like tab width: 237 :profile file *
238 " At this point do slow actions
239 :profdel *
240 :e /tmp/profile.log
241 " add a break point to a vim script (like vimrc) to invoke the internal debugger
242 :breakadd here
243 :finish = from within a viml-script: stop sourcing it
244
245### substitutions
246
247 delete all comments: %s/\/\*\*< [^(\*\/)]*\*\///g
248 remove empty lines: global/^$/d
249 remove non-empty lines: v/^$/d
250
251### programs
252
253 gpm - cut and paste helper for the linux console (to get text from CTRL-ALT-F2 to CTRL-ALT-F3)
254
255### vim modeline
256
257 filetype can have multiple values, like python.django
258 The last line can be a mode line, which holds settings like tab width:
238 259
239 260
240 261
diff --git a/init.lua b/init.lua
index ce9d584..7f7887f 100644
--- a/init.lua
+++ b/init.lua
@@ -14,6 +14,8 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
14end 14end
15vim.opt.rtp:prepend(lazypath) 15vim.opt.rtp:prepend(lazypath)
16require("lazy").setup({ 16require("lazy").setup({
17 'junegunn/fzf',
18 'junegunn/fzf.vim',
17 'nvim-tree/nvim-web-devicons', 19 'nvim-tree/nvim-web-devicons',
18 'lewis6991/gitsigns.nvim', 20 'lewis6991/gitsigns.nvim',
19 'folke/neodev.nvim', 21 'folke/neodev.nvim',
@@ -28,7 +30,8 @@ require("lazy").setup({
28 'L3MON4D3/LuaSnip', 30 'L3MON4D3/LuaSnip',
29 'saadparwaiz1/cmp_luasnip', 31 'saadparwaiz1/cmp_luasnip',
30 'RRethy/base16-nvim', 32 'RRethy/base16-nvim',
31 'nvim-treesitter/nvim-treesitter', 33 -- treesitter is experimental and breaks indentation on xml, html with `=`
34 -- 'nvim-treesitter/nvim-treesitter',
32 'nvim-lua/popup.nvim', 35 'nvim-lua/popup.nvim',
33 'nvim-lua/plenary.nvim', 36 'nvim-lua/plenary.nvim',
34 'nvim-telescope/telescope.nvim', 37 'nvim-telescope/telescope.nvim',
@@ -93,36 +96,36 @@ end
93-------------------------------------------------------------------------------- 96--------------------------------------------------------------------------------
94-- plugin setup and options 97-- plugin setup and options
95-------------------------------------------------------------------------------- 98--------------------------------------------------------------------------------
96require'nvim-treesitter.configs'.setup { 99-- require'nvim-treesitter.configs'.setup {
97 -- A list of parser names, or "all" (the five listed parsers should always be installed) 100-- -- A list of parser names, or "all" (the five listed parsers should always be installed)
98 ensure_installed = { "c", "lua", "vim", "vimdoc", "query" }, 101-- ensure_installed = { "c", "lua", "vim", "vimdoc", "query" },
99 modules = {}, 102-- modules = {},
100 -- Install parsers synchronously (only applied to `ensure_installed`) 103-- -- Install parsers synchronously (only applied to `ensure_installed`)
101 sync_install = false, 104-- sync_install = false,
102 -- Automatically install missing parsers when entering buffer 105-- -- Automatically install missing parsers when entering buffer
103 -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally 106-- -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
104 auto_install = true, 107-- auto_install = true,
105 ignore_install = { "javascript" }, 108-- ignore_install = { "javascript" },
106 highlight = { 109-- highlight = {
107 enable = true, 110-- enable = true,
108 -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to 111-- -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to
109 -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is 112-- -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is
110 -- the name of the parser) 113-- -- the name of the parser)
111 -- list of language that will be disabled 114-- -- list of language that will be disabled
112 disable = function(_, buf) 115-- disable = function(_, buf)
113 local max_filesize = 100 * 1024 -- 100 KB 116-- local max_filesize = 100 * 1024 -- 100 KB
114 local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) 117-- local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf))
115 if ok and stats and stats.size > max_filesize then 118-- if ok and stats and stats.size > max_filesize then
116 return true 119-- return true
117 end 120-- end
118 end, 121-- end,
119 -- Setting this to true will run `:h syntax` and tree-sitter at the same time. 122-- -- Setting this to true will run `:h syntax` and tree-sitter at the same time.
120 -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). 123-- -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
121 -- Using this option may slow down your editor, and you may see some duplicate highlights. 124-- -- Using this option may slow down your editor, and you may see some duplicate highlights.
122 -- Instead of true it can also be a list of languages 125-- -- Instead of true it can also be a list of languages
123 additional_vim_regex_highlighting = false, 126-- additional_vim_regex_highlighting = false,
124 }, 127-- },
125} 128-- }
126 129
127-- vim.wo.foldtext = 'v:lua.vim.treesitter.foldtext()' -- not available yet in my installation 130-- vim.wo.foldtext = 'v:lua.vim.treesitter.foldtext()' -- not available yet in my installation
128vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' 131vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
@@ -217,6 +220,7 @@ local capabilities = require('cmp_nvim_lsp').default_capabilities()
217-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md 220-- https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
218 221
219-- C/C++ | clang 222-- C/C++ | clang
223require('lspconfig')['bitbake_language_server'].setup{capabilities = capabilities}
220require('lspconfig')['clangd'].setup{capabilities = capabilities} 224require('lspconfig')['clangd'].setup{capabilities = capabilities}
221-- lua (but not init.lua entirely, hence why neodev) 225-- lua (but not init.lua entirely, hence why neodev)
222require('lspconfig')['lua_ls'].setup { capabilities = capabilities } 226require('lspconfig')['lua_ls'].setup { capabilities = capabilities }
..