From 545c30c9a531af9059f8689f56d6b1b4ea97857f Mon Sep 17 00:00:00 2001
From: Max Christian Pohle
Date: Sun, 12 May 2024 21:55:55 +0200
Subject: rewrote the vim cheat sheet part to markdown

---
 README.md | 391 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 206 insertions(+), 185 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.
   textwidth (configured with `set textwidth=80` for example)
 
 
-        :viusage        = summary of all keyboard shortcuts
-        :options        = shows currently :set options (with descriptions)
-        leader key      = usually set to backslash expects a quick command
-
-        [normal mode]
-        f{char}         = move cursor to the character {char}
-        gf              = open file under cursor
-        <C-w>gf         = open file under cursor in a tab
-        <C-w>]          = jump to the tag under the cursor in a new window
-        <C-t>           = jump back from where that ^ brought you
-        K               = keyword lookup for the word under the cursor (see :help kp)
-        w               = next word
-        e               = end of word (=inner word)
-
-        @see: :h text-objects
-        ci'             = change between single quote
-        ci"             = change between double quote
-        ci(             = change between brace
-        cit             = change XML Tag
-        ciw             = select inner word
-        caw             = select 'a word'
-        " where c can be replaced by v for visual mode
-
-        :%s/foo/bar/g    = replace all foo with bar
-        :g/foo/s/bar//g  = on lines with foo replace bar with nothing
-        :g!/foo/s/bar//g = on lines not containing foo replace bar with nothing
-        :g!/^foo/execute("normal dd") delete lines starting with foo
-
-        flags, end: after the last /
-        g               = replace globally (all occurances on the current line)
-        c               = confirm each replace, also allows to switch to g (use the flag to see the help message)
-        e               = places the cursor in the end of the selection
-
-        flags, within the search string:
-        \v              = use very magic search (more like perl)
-        \V              = use no very magic, more like searching verbatim
-        \zs .. \ze      = mark begin and end of a sub pattern (like perl lookaround assertions)
-
-        [visual mode]   # with selected lines
-        gq              = formats text so that it fits in whatever :set textwidth was set
-        iB              = select block between curly braces (:help object-select)
-
-        [commands]
-        command line mode begins with : and has its own key mappings starting with c like in cnormap
-
-        :spell [word]   = adds a word to the current dictionary (no mistake any more)
-        :set list       = display non printable characters
-        :retab          = replaces tabs with spaces
-        :set expandtab  = in insert mode: replace tab with spaces
-        :Explore        = cli version open file dialog (file explorer)
-        :Lex            = use netrw as project drawer (stays open in its own window)
-        :only           = 'maximize' current buffer
-
-        <c-r><c-w>      = auto completion with the word under the cursor (interesting with incsearch)
-        <c-a>           = expand pattern from command line (e.g. *.txt)
-
-        [navigation]
-        <CTRL-]>        = look up the tag under the cursor (help links as well)
-        <CTRL-T>        = return back from tag under the cursor
-        gd              = jump to the declaration of the variable under the cursor
-
-        [macros]        # record and play back a series of vim commands
-        qa              = start (q) macro recording in register a (can be anything)
-        q               = stop macro recording
-        @a              = replay macro a
-        :'<,'>normal @a = apply a to every line in the current selection
-        :reg            = lists all registers (including those with macros in them)
-
-        [registers]
-        notice, that registers get used for both: macro recordings and copying text
-
-        :reg            = shows contents of all registers
-        "0p             = pasts from register 0, which is the same as "", but not overwritten by dd
-        "ap             = same for register a
-        "0yy            = yanks to register 0 (same as y by itself)
-        "ay             = yanks current selection to register a (in visual mode)
-
-        [marker]
-        ma              = set marker a-z (a in this case)
-        mA              = create a session persistent file marker which can be used to reopen a file (not bound to the buffer)
-        `a              = go to marker a (line & column)
-        'a              = go to marker a (line, first non blank), same as `a^
-
-        [hotkeys]
-        <C-A>, <C-X>    = increment, decrement number under the cursor
-
-        [windows]
-        <C-W>v          = splits buffer vertically (screen uses |)
-        <C-W>s          = splits buffer horizontally (same as screen)
-        <C-W>w          = moves the cursor to the next window and back
-        <C-W>[dir]      = moves the cursor in that direction (use hjkl or arrow keys)
-        <C-W>[HK]       = make a vertical split horizontal and vice versa
-        <C-W>o          = only: close all other windows
-        <C-W>c          = close: current window in which the cursor sits
-
-        [vimdiff]
-        do              = get changes from other window into the current
-        dp              = put changes from current window into the other
-        ]c              = jump to the next change
-        [c              = jump to the prevous change
-
-        [folds]
-        za              = toggle a fold
-        zM              = close all folds
-        zR              = opens all folds (unfold all)
-        zE              = eliminates all folds
-
-        [buffers]
-        :bn              = buffer next
-        :bp              = buffer previous
-        :bd              = buffer dispatch (close)
-        :b <tab>         = switch buffer by name (use <tab> and <return>)
-        :set nobuflisted = hide buffer in buffer list (great for neovim's terminal)
-
-        [args]
-        :n **/*.c        = opens all files with that name or type in buffers and also fills the argument list
-
-        [special]
-        g CTRL-g        = display file properties including word and char count
-        q:              = show command history and use it like a normal buffer
-        z=              = show spellcheck suggestions
-
-        [completions]
-        CTRL-O          = display completions: omnicomplete (context dependant completions)
-
-        CTRL-X CTRL-F   = display completions: file name (using vim-internals omnicomplete)
-        CTRL-N CTRL-P   = display completions: file keywords
-        CTRL-K          = display completions: dictionary
-        CTRL-T          = display completions: thesaurus
-        CTRL-I          = display completions: include files
-        CTRL-]          = display completions: tags
-        CTRL-D          = display completions: (marcro-) definitions
-        CTRL-V          = display completions: vim command line
-        CTRL-U          = display completions: user-defined
-
-        [annoyances]
-        gv               = visual mode: reselect last selection
-        CTRL-o           = lets the caret jump back to the previous location
-        CTRL-L           = redraws the complete screen
-        CTRL-R<register> = in insert mode and command line: paste contents of <register> (e.g. : for last command, * for clipboard)
-        CTRL-R           = in normal mode: redoes what has been undone with u
-        "<register>p     = in normal mode: paste paste contents of <register>
-
-        [registers]
-        "/               = last search expression
-        ":               = last command entered
-        "=               = expression register (to do calculations or call vim functions)
-
-        [netrw]
-        :Lex            = open the netrw-view as project drawer
-        gn              = makes the directory under the cursor the root directory
-        a               = toggles display of hidden files
-
-        [filetype:css]
-        viB:sort       = sort inner block by name
-
-        [vim commands]
-        :for i in range(1,12) | put ='2016-'.i | endfor
-
-        [fancy utf-8 symbols]
-        ௵
-
-        [debugging]
-        :profile! start /tmp/profile.log
-        :profile func *
-        :profile file *
-        " At this point do slow actions
-        :profdel *
-        :e /tmp/profile.log
-        " add a break point to a vim script (like vimrc) to invoke the internal debugger
-        :breakadd here
-
-        :finish      = from within a viml-script: stop sourcing it
-
-        [substitutions]
-        delete all comments: %s/\/\*\*< [^(\*\/)]*\*\///g
-        remove empty lines: global/^$/d
-        remove non-empty lines: v/^$/d
-
-        [programs]
-        gpm - cut and paste helper for the linux console (to get text from CTRL-ALT-F2 to CTRL-ALT-F3)
-
-        [vim modeline]
-        filetype can have multiple values, like python.django
-        The last line can be a mode line, which holds settings like tab width:
+## general
+
+    :viusage        = summary of all keyboard shortcuts
+    :options        = shows currently :set options (with descriptions)
+    leader key      = usually set to backslash expects a quick command
+
+### normal mode
+
+    f{char}         = move cursor to the character {char}
+    gf              = open file under cursor
+    <C-w>gf         = open file under cursor in a tab
+    <C-w>]          = jump to the tag under the cursor in a new window
+    <C-t>           = jump back from where that ^ brought you
+    K               = keyword lookup for the word under the cursor (see :help kp)
+    w               = next word
+    e               = end of word (=inner word)
+
+    @see: :h text-objects
+    ci'             = change between single quote
+    ci"             = change between double quote
+    ci(             = change between brace
+    cit             = change XML Tag
+    ciw             = select inner word
+    caw             = select 'a word'
+    " where c can be replaced by v for visual mode
+
+    :%s/foo/bar/g    = replace all foo with bar
+    :g/foo/s/bar//g  = on lines with foo replace bar with nothing
+    :g!/foo/s/bar//g = on lines not containing foo replace bar with nothing
+    :g!/^foo/execute("normal dd") delete lines starting with foo
+
+    flags, end: after the last /
+    g               = replace globally (all occurances on the current line)
+    c               = confirm each replace, also allows to switch to g (use the flag to see the help message)
+    e               = places the cursor in the end of the selection
+
+    flags, within the search string:
+    \v              = use very magic search (more like perl)
+    \V              = use no very magic, more like searching verbatim
+    \zs .. \ze      = mark begin and end of a sub pattern (like perl lookaround assertions)
+
+### visual mode (with selected lines)
+
+    gq              = formats text so that it fits in whatever :set textwidth was set
+    iB              = select block between curly braces (:help object-select)
+
+### command line mode
+command line mode begins with : and has its own key mappings starting with c
+like in cnormap
+
+    :spell [word]   = adds a word to the current dictionary (no mistake any more)
+    :set list       = display non printable characters
+    :retab          = replaces tabs with spaces
+    :set expandtab  = in insert mode: replace tab with spaces
+    :Explore        = cli version open file dialog (file explorer)
+    :Lex            = use netrw as project drawer (stays open in its own window)
+    :only           = 'maximize' current buffer
+
+
+### insert mode
+
+    <c-r><c-w>      = auto completion with the word under the cursor (interesting with incsearch)
+    <c-a>           = expand pattern from command line (e.g. *.txt)
+
+### navigation
+
+    <CTRL-]>        = look up the tag under the cursor (help links as well)
+    <CTRL-T>        = return back from tag under the cursor
+    gd              = jump to the declaration of the variable under the cursor
+
+### macros
+record and play back a series of vim commands
+
+    qa              = start (q) macro recording in register a (can be anything)
+    q               = stop macro recording
+    @a              = replay macro a
+    :'<,'>normal @a = apply a to every line in the current selection
+    :reg            = lists all registers (including those with macros in them)
+
+### registers
+notice, that registers get used for both: macro recordings and copying text
+
+    :reg            = shows contents of all registers
+    "0p             = pasts from register 0, which is the same as "", but not overwritten by dd
+    "ap             = same for register a
+    "0yy            = yanks to register 0 (same as y by itself)
+    "ay             = yanks current selection to register a (in visual mode)
+
+### marker
+
+    ma              = set marker a-z (a in this case)
+    mA              = create a session persistent file marker which can be used to reopen a file (not bound to the buffer)
+    `a              = go to marker a (line & column)
+    'a              = go to marker a (line, first non blank), same as `a^
+
+### other hotkeys
+
+    <C-A>, <C-X>    = increment, decrement number under the cursor
+
+## windows
+
+    <C-w>v          = splits buffer vertically (screen uses |)
+    <C-w>s          = splits buffer horizontally (same as screen)
+    <C-w>w          = moves the cursor to the next window and back
+    <C-w>[dir]      = moves the cursor in that direction (use hjkl or arrow keys)
+    <C-w>[HK]       = make a vertical split horizontal and vice versa
+    <C-w>o          = only: close all other windows
+    <C-w>c          = close: current window in which the cursor sits
+
+### vimdiff
+
+    do              = get changes from other window into the current
+    dp              = put changes from current window into the other
+    ]c              = jump to the next change
+    [c              = jump to the prevous change
+
+### folds
+
+    za              = toggle a fold
+    zM              = close all folds
+    zR              = opens all folds (unfold all)
+    zE              = eliminates all folds
+
+### buffers
+
+    :bn              = buffer next
+    :bp              = buffer previous
+    :bd              = buffer dispatch (close)
+    :b <tab>         = switch buffer by name (use <tab> and <return>)
+    :set nobuflisted = hide buffer in buffer list (great for neovim's terminal)
+
+### args
+
+    :n **/*.c        = opens all files with that name or type in buffers and also fills the argument list
+
+### special
+
+    g CTRL-g        = display file properties including word and char count
+    q:              = show command history and use it like a normal buffer
+    z=              = show spellcheck suggestions
+
+### completions
+
+    CTRL-O          = display completions: omnicomplete (context dependant completions)
+    CTRL-X CTRL-F   = display completions: file name (using vim-internals omnicomplete)
+    CTRL-N CTRL-P   = display completions: file keywords
+    CTRL-K          = display completions: dictionary
+    CTRL-T          = display completions: thesaurus
+    CTRL-I          = display completions: include files
+    CTRL-]          = display completions: tags
+    CTRL-D          = display completions: (marcro-) definitions
+    CTRL-V          = display completions: vim command line
+    CTRL-U          = display completions: user-defined
+
+### annoyances
+    gv               = visual mode: reselect last selection
+    CTRL-o           = lets the caret jump back to the previous location
+    CTRL-l           = redraws the complete screen
+    CTRL-R<register> = in insert mode and command line: paste contents of <register> (e.g. : for last command, * for clipboard)
+    CTRL-R           = in normal mode: redoes what has been undone with u
+    "<register>p     = in normal mode: paste paste contents of <register>
+
+### registers
+    "/               = last search expression
+    ":               = last command entered
+    "=               = expression register (to do calculations or call vim functions)
+
+### netrw
+    :Lex            = open the netrw-view as project drawer
+    gn              = makes the directory under the cursor the root directory
+    a               = toggles display of hidden files
+
+### filetype:css
+
+    viB:sort       = sort inner block by name
+
+### vim commands
+
+    :for i in range(1,12) | put ='2016-'.i | endfor
+
+### debugging
+
+    :profile! start /tmp/profile.log
+    :profile func *
+    :profile file *
+    " At this point do slow actions
+    :profdel *
+    :e /tmp/profile.log
+    " add a break point to a vim script (like vimrc) to invoke the internal debugger
+    :breakadd here
+    :finish      = from within a viml-script: stop sourcing it
+
+### substitutions
+
+    delete all comments: %s/\/\*\*< [^(\*\/)]*\*\///g
+    remove empty lines: global/^$/d
+    remove non-empty lines: v/^$/d
+
+### programs
+
+    gpm - cut and paste helper for the linux console (to get text from CTRL-ALT-F2 to CTRL-ALT-F3)
+
+### vim modeline
+
+    filetype can have multiple values, like python.django
+    The last line can be a mode line, which holds settings like tab width:
 
 
 
-- 
cgit v1.2.3