practical vim 1.1

  • buffers
    bn next buffer
    bp previous buffer
    b# jump to buffer #
    bd[#] delete buffer current / by id
    buffers list them

  • registers
    "[a-z] named register for yanking, deleting and pasting
    "_ : null register

     my setup, use null register by default:
        let mapleader = ","
        let g:mapleader = ","
        nnoremap x "_x
        nnoremap d "_d
        nnoremap D "_D
        vnoremap d "_d
        vnoremap <leader>d ""d
        nnoremap <leader>d ""d
        nnoremap <leader>D ""D

  • marks
    mark id [[a-zA-Z]
    m# sets a mark at the current position
    ’# jump to the line of the mark
    `# jump to the position of the mark
    y/d’# yank/delete current line to mark line
    y/d`# yank/delete current position to mark position
    marks list them

  • folding
    zc zC open 1 fold / all levels
    zo zO close 1 fold / all levels
    za zA toggle 1 fold / all levels
    zr zR reduce folding by 1 / all levels
    zm zM more folding by closing 1 / all levels

  • macros recording
    q[a-z] start recording
    q stop recording
    n@[a-z] replay recording n times

  • tags + preservim/tagbar
    C-] jump to tag
    C-t jump back up in the tag stack
    tn next tag in list
    tp prev tag list
    tags list them

     set tags+=./.tags;/
     nmap <F2> :TagbarToggle<CR>
     nmap <C-r> g<C-]>

  • ctrlp

    nmap <leader>e :CtrlP<cr>
    nmap <leader>ee :CtrlPBuffer<cr>
    nmap <leader>em :CtrlPMixed<cr>

BTW here is my typematrix 2030 keyboard with bépo layout, hence these vim and xkb strange mappings.