aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rwxr-xr-xREADME.md302
1 files changed, 302 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100755
index 0000000..0d4f81b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,302 @@
1# Installation
2
3 git clone http://git.entwicklerseite.de/vim ~/.config/nvim/
4 ln -s ~/.config/nvim ~/.vim
5
6# Overview
7
8- `init.lua` :: my every day neovim config. It sources my vimrc (see below)
9
10- `init-mini.lua` :: if you want to start from scratch this is a good start. It
11 sets up nvim with a language server to support the creation of a new config.
12
13- `vimrc` :: commented version of a vimrc with sane defaults
14
15- `gvimrc` :: configures the gui of gvim and sources the vimrc
16
17
18```
19 .
20├──  after
21│ ├──  ftdetect
22│ │ └──  log.vim
23│ ├──  ftplugin
24│ │ └──  python.vim
25│ ├──  indent
26│ │ ├──  html5.vim
27│ │ ├──  php.vim
28│ │ └──  yaml.vim
29│ └──  syntax
30│ ├──  c.vim
31│ ├──  log.vim
32│ └──  markdown.vim
33├──  gvimrc
34├──  init-mini.lua
35├──  init.lua
36├──  README.md
37└──  vimrc
38```
39
40
41# Cheat sheet
42For different working scenarios.
43
44## vim
45
46- use `<C-d>` to expand autocompletion on the `:` command line. That works for
47 example for `:setfiletype <C-d>` to show all available filetypes.
48
49- use `gw` or `gq` in visual mode to break selected text at the current
50 textwidth (configured with `set textwidth=80` for example)
51
52
53## general
54
55 :viusage = summary of all keyboard shortcuts
56 :options = shows currently :set options (with descriptions)
57 leader key = usually set to backslash expects a quick command
58
59### normal mode
60
61 f{char} = move cursor to the character {char}
62 gf = open file under cursor
63 <C-w>gf = open file under cursor in a tab
64 <C-w>] = jump to the tag under the cursor in a new window
65 <C-t> = jump back from where that ^ brought you
66 K = keyword lookup for the word under the cursor (see :help kp)
67 w = next word
68 e = end of word (=inner word)
69
70 @see: :h text-objects
71 ci' = change between single quote
72 ci" = change between double quote
73 ci( = change between brace
74 cit = change XML Tag
75 ciw = select inner word
76 caw = select 'a word'
77 " where c can be replaced by v for visual mode
78
79 :%s/foo/bar/g = replace all foo with bar
80 :g/foo/s/bar//g = on lines with foo replace bar with nothing
81 :g!/foo/s/bar//g = on lines not containing foo replace bar with nothing
82 :g!/^foo/execute("normal dd") delete lines starting with foo
83
84 flags, end: after the last /
85 g = replace globally (all occurances on the current line)
86 c = confirm each replace, also allows to switch to g (use the flag to see the help message)
87 e = places the cursor in the end of the selection
88
89 flags, within the search string:
90 \v = use very magic search (more like perl)
91 \V = use no very magic, more like searching verbatim
92 \zs .. \ze = mark begin and end of a sub pattern (like perl lookaround assertions)
93
94### visual mode (with selected lines)
95
96 gq = formats text so that it fits in whatever :set textwidth was set
97 iB = select block between curly braces (:help object-select)
98
99### command line mode
100command line mode begins with : and has its own key mappings starting with c
101like in cnormap
102
103 :spell [word] = adds a word to the current dictionary (no mistake any more)
104 :set list = display non printable characters
105 :retab = replaces tabs with spaces
106 :set expandtab = in insert mode: replace tab with spaces
107 :Explore = cli version open file dialog (file explorer)
108 :Lex = use netrw as project drawer (stays open in its own window)
109 :only = 'maximize' current buffer
110
111
112### insert mode
113
114 <c-r><c-w> = auto completion with the word under the cursor (interesting with incsearch)
115 <c-a> = expand pattern from command line (e.g. *.txt)
116
117### navigation
118
119 <CTRL-]> = look up the tag under the cursor (help links as well)
120 <CTRL-T> = return back from tag under the cursor
121 gd = jump to the declaration of the variable under the cursor
122
123### macros
124record and play back a series of vim commands
125
126 qa = start (q) macro recording in register a (can be anything)
127 q = stop macro recording
128 @a = replay macro a
129 :'<,'>normal @a = apply a to every line in the current selection
130 :reg = lists all registers (including those with macros in them)
131
132### registers
133notice, that registers get used for both: macro recordings and copying text
134
135 :reg = shows contents of all registers
136 "0p = pasts from register 0, which is the same as "", but not overwritten by dd
137 "ap = same for register a
138 "0yy = yanks to register 0 (same as y by itself)
139 "ay = yanks current selection to register a (in visual mode)
140
141### marker
142
143 ma = set marker a-z (a in this case)
144 mA = create a session persistent file marker which can be used to reopen a file (not bound to the buffer)
145 `a = go to marker a (line & column)
146 'a = go to marker a (line, first non blank), same as `a^
147
148### other hotkeys
149
150 <C-A>, <C-X> = increment, decrement number under the cursor
151
152## windows
153
154 <C-w>v = splits buffer vertically (screen uses |)
155 <C-w>s = splits buffer horizontally (same as screen)
156 <C-w>w = moves the cursor to the next window and back
157 <C-w>[dir] = moves the cursor in that direction (use hjkl or arrow keys)
158 <C-w>[HK] = make a vertical split horizontal and vice versa
159 <C-w>o = only: close all other windows
160 <C-w>c = close: current window in which the cursor sits
161
162### vimdiff
163
164 do = get changes from other window into the current
165 dp = put changes from current window into the other
166 ]c = jump to the next change
167 [c = jump to the prevous change
168
169### folds
170
171 za = toggle a fold
172 zM = close all folds
173 zR = opens all folds (unfold all)
174 zE = eliminates all folds
175
176### buffers
177
178 :bn = buffer next
179 :bp = buffer previous
180 :bd = buffer dispatch (close)
181 :b <tab> = switch buffer by name (use <tab> and <return>)
182 :set nobuflisted = hide buffer in buffer list (great for neovim's terminal)
183
184### args
185
186 :n **/*.c = opens all files with that name or type in buffers and also fills the argument list
187
188### special
189
190 g CTRL-g = display file properties including word and char count
191 q: = show command history and use it like a normal buffer
192 z= = show spellcheck suggestions
193
194### completions
195
196 CTRL-O = display completions: omnicomplete (context dependant completions)
197 CTRL-X CTRL-F = display completions: file name (using vim-internals omnicomplete)
198 CTRL-N CTRL-P = display completions: file keywords
199 CTRL-K = display completions: dictionary
200 CTRL-T = display completions: thesaurus
201 CTRL-I = display completions: include files
202 CTRL-] = display completions: tags
203 CTRL-D = display completions: (marcro-) definitions
204 CTRL-V = display completions: vim command line
205 CTRL-U = display completions: user-defined
206
207### annoyances
208 gv = visual mode: reselect last selection
209 CTRL-o = lets the caret jump back to the previous location
210 CTRL-l = redraws the complete screen
211 CTRL-R<register> = in insert mode and command line: paste contents of <register> (e.g. : for last command, * for clipboard)
212 CTRL-R = in normal mode: redoes what has been undone with u
213 "<register>p = in normal mode: paste paste contents of <register>
214
215### registers
216 "/ = last search expression
217 ": = last command entered
218 "= = expression register (to do calculations or call vim functions)
219
220### netrw
221 :Lex = open the netrw-view as project drawer
222 gn = makes the directory under the cursor the root directory
223 a = toggles display of hidden files
224
225### filetype:css
226
227 viB:sort = sort inner block by name
228
229### vim commands
230
231 :for i in range(1,12) | put ='2016-'.i | endfor
232
233### debugging
234
235 :profile! start /tmp/profile.log
236 :profile func *
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:
259
260
261
262## git
263
264 undo last commit: git reset HEAD~
265 diff two branches: git diff branch1 branch2 path/to/file
266
267
268
269To `~/.gitconfig` add:
270 [alias]
271 branchvv = for-each-ref --sort='committerdate:raw' --format='%(HEAD)%(if)%(HEAD)%(then)%(color:bold green)%(end) %(align:width=24)%(refname:short)%(end) %(objectname:short) %(color:bold blue)%(committerdate:iso)%(color:reset) %(if)%(upstream)%(then)[%(color:blue)%(upstream:short)%(color:reset)] %(end)%(subject)' refs/heads
272
273Provides you with `git branchvv`, a command that works similar to `git branch`,
274but sorts the branches by modification date and displays them.
275
276
277# gnu screen
278
279To run Vim in a gnu screen session:
280
281 TERM=vte-256color screen vim
282
283But if you are using another terminal there may be further options with even
284more capabilities. Starting point for you search could be something like:
285
286 find /usr/share/terminfo/ | grep screen | grep 256
287
288# gvim
289
290Change the default brackground of applications if you see an ugly grey border
291around your beatiful theme:
292
293```
294/* to be saved as ~/.config/gtk-3.0/gtk.css
295 * thanks to http://stackoverflow.com/users/6899000/proprefenetre */
296@define-color YOUR_BACKGROUND_COLOR #rrggbb;
297
298window#vim-main-window {
299 background-color: @YOUR_BACKGROUND_COLOR;
300}
301```
302
..