Personal cheatsheet when moving from IDEs(IntelliJ IDEA, Pycharm, etc.) to VIM.
p.s. some basic commands in vimtutor are ignored.
IDE VIM plugin
------------------------------- ---------------------------------------- ---------------------
Back/Forward <c-o>/<c-i> " Jump older/newer
Go to Class/Symbol :Tags junegunn/fzf.vim
Go to File :Files
Recent Files :History
File Structure :TagbarToggle majutsushi/tagbar
Go to Declaration/Usage <Plug>(coc-definition) neoclide/coc.nvim
Go to Type Decalaration <Plug>(coc-type-definition)
Go to Implementations <Plug>(coc-implementation)
Next/Pre Highlighted Error <Plug>(coc-diagnostic-prev)
Scrolling <c-y>/<c-e> " Scroll lines
<c-u>/<c-d> " Scroll half a screen
<c-b>/<c-f> " Scroll a full screen
Cursor H/M/L
zz/zt/zb
$/0
^/g_ " Go first/last char
{/} " Go pre/next block
Search f/F<char> " Try ;/, repeat/reverse
% " Go parenthesis
#/* " Go pre/next same word
IDE VIM plugin
------------------------------- ---------------------------------------- ---------------------
Override Methods...
Implement Methods...
Code Completion NA neoclide/coc.nvim
Live Template NA coc-snippets
Surround With... S tpope/vim-surround
Folding zM " Close all folds
zR " Open all folds
za " Toggle one folds
zj/zk " Jump next/pre fold
Comment <leader>cc " Comment nerdcommenter
<leader>ci " Uncomment
<leader>c<space> " Toggle comment
Move Element Left/Right g< " Move element left machakann/vim-swap
g> " Move element right
gs " Interactive mode
Multiple Cursors NA vim-visual-multi
IDE VIM plugin
------------------------------- ---------------------------------------- ---------------------
Editor Tabs :tabnew filename
(p.s. try buffers)
Windows :split
:vsplit
<c-w>_ " Maximize height
<c-w>| " Maximize width
<c-w>= " Make all equal size
<c-w>r " Rotate windows
<c-w>H " Move one to the left
IDE VIM plugin
------------------------------- ---------------------------------------- ---------------------
Diff & Merge <Plug>(GitGutterPreviewHunk) vim-gitgutter
<Plug>(GitGutterStageHunk)
<Plug>(GitGutterUndoHunk)
View code
" Main Menu | File | New Scratch File function! s:Initialize(...) let magic = system('echo $RANDOM | md5sum | head -c 10') " Folder let folder = '/tmp/scratch/' " File Name let file_postfix = get(a:, 0, 0) if file_postfix let filename = magic . '.' . a:1 else let filename = magic endif " File Path let filepath = folder . filename call system('mkdir -p ' . folder) call system('touch ' . filepath) " Open File execute 'edit ' . filepath endfunction command! -nargs=? Scratch :call s:Initialize(<f-args>)
View code
" run python code augroup python_lang autocmd! autocmd FileType python nnoremap <leader>rp :w!<CR>:call VimuxRunCommand("clear; python3 " . bufname("%"))<CR> augroup end
- Tabs or Buffer?
Buffers as the file proxies and tab pages as the workspaces - How to debug keymaps
Try:verbose imap <CR> - File highlight not working?
Try:set filetype=php
- Personal vimrc file: https://github.com/daya0576/dotfile/blob/master/.vimrc