Your SlideShare is downloading. ×
0
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Vim Hacks (OSSF)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Vim Hacks (OSSF)

3,602

Published on

2 Comments
10 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,602
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
155
Comments
2
Likes
10
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. OSSF Vim Hacks (Cornelius) cornelius.howl@gmail.com http://c9s.blogspot.com/ c9s@(plurk|twitter).com
  • 2. Demo
  • 3. To get Vim installed • on Debian/Ubuntu: $ sudo apt-get install vim vim-gnome • on MacOS: $ sudo port install vim vim-app
  • 4. To compile your Vim • some ./configure options: • --with-features=tiny,normal,big,huge • --enable-perlinterp • --enable-rubyinterp • --enable-pythoninterp • --enable-multibyte • --enable-gui , --enable-cscope etc ...
  • 5. To compile your Vim $ ./configure --prefix=/opt/local --enable-rubyinterp --enable-perlinterp --with-features=huge --enable-multibyte --enable-cscope --enable-mzschemeinterp $ make $ make install
  • 6. Basic Editing Normal Mode ESC Command Mode (start with ‘:’) Insert Mode (i,o,a) Visual Mode (v,V,c-v)
  • 7. Basic Editing 1. $ vim file 2. type h,j,k,l to move around. 3. type i to insert some text 4. <ESC> to go back normal mode 5. :w to save file. 6. repeat 3-5 step 7. :wq
  • 8. Edit your .vimrc file $ vim ~/.vimrc “iset nu<ESC>” “:wq” $ vim ~/.vimrc
  • 9. Basic Options set nocompatible syntax on filetype on filetype plugin on filetype indent on set nu set wrap set shiftwidth=4 set tabstop=4
  • 10. Basic GUI Options (.gvimrc) set langmenu=en_US.utf-8 language mes en_US.UTF-8 if has('gui_mac') && has(‘gui_running’) set gfn=Monaco:h12 else "set gfn=Dejavu Sans Mono 9 "set gfn=Andale Mono:h14 set gfn=Bitstream Vera Sans Mono 10 endif set guioptions+=c “use console dialog instead set guioptions-=e “no gui tab set guioptions-=T “no Toolbar set guioptions-=m “no menu set guioptions-=r “no right-hand scrollbar " downlaod a colorscheme you like to ~/.vim/colors/ " colors billw
  • 11. Insert Mode • iI • aA • oO
  • 12. Visual Mode •v •V • Ctrl-v
  • 13. Basic Motion C-d (half-page down) C-u (half-page up) C-f (full-page down) C-b (full-page up) gg (goto the first line) G (goto the last line) 30gg :10 10%
  • 14. Basic Motion b,w,e B,W,E f[x] F[x] ; , ( ) sentence { } paragraph [ ] section
  • 15. Buffer
  • 16. $ vim file1 file2 file3
  • 17. :bufdo tab split
  • 18. :bufdo %s!pattern!string!g
  • 19. :bufdo mkview
  • 20. :[n]buffer :bn :bp :sb :buffers :buffers!
  • 21. Window
  • 22. Ctrl-W v Ctrl-W _ Ctrl-W s Ctrl-W | Ctrl-W h Ctrl-W q Ctrl-W j Ctrl-W k :wincmd w Ctrl-W l :wincmd v Ctrl-W x :wincmd s Ctrl-W w
  • 23. For MacOS nmap <silent> <D--> :resize -5<CR> nmap <silent> <D-=> :resize +5<CR> nmap <silent> <D-]> :vertical resize +5<CR> nmap <silent> <D-[> :vertical resize -5<CR> For Unix-like set winaltkeys=yes nmap <silent> <M--> :resize -5<CR> nmap <silent> <M-=> :resize +5<CR> nmap <silent> <M-]> :vertical resize +5<CR> nmap <silent> <M-[> :vertical resize -5<CR>
  • 24. Tabpage
  • 25. :[n]tabdo :tabnew :tabn :tabclose :tabp :tabfirst :sb :tabfind :tabs :tablast :tabs!
  • 26. nmap tn :tabnew<CR> nmap tl gt nmap th gT nmap te :tabedit “ split current buffer to tabpage nnoremap <silent> ty :tab split<CR> nnoremap <silent> td :exec 'tabedit '.expand('%')<CR> “ close tab ( equal to <C-w>q ) nnoremap <silent> tq :tabclose<CR> “ open new tab nnoremap <silent> tn :tabnew<CR>
  • 27. “ open help in new page nnoremap <silent> th :tab help<CR> “ move tab nnoremap <silent> tmh :exec ':tabmove ' . ( tabpagenr()-2 )<CR> nnoremap <silent> tml :exec ':tabmove ' . tabpagenr()<CR>
  • 28. Syntax syntax.txt
  • 29. Macro *macro*
  • 30. Mapping map.txt
  • 31. Autocommand autocmd.txt
  • 32. Cases
  • 33. Case 1: Copy & Paste • copy text between terminal vim and gui • Solution: fakeclip plugin
  • 34. Case 2: Browsing File • Solution: nerd tree plugin • e to open nerd tree window
  • 35. Case 3: Switching Buffer • Solution: bufexplorer.zip • be to open buffer explorer
  • 36. Case 4: reformating code • Problem: Coding Style Problem • Solution: ‘equalprg’ option • setlocal equalprg=/path/to/your/format_prg
  • 37. Case 5: code snippets • Problem: • Solution: snipmate.vim
  • 38. Case 6: completion • Problem: C-x C-n completion • Solution: autocomplpop.vim
  • 39. VimL
  • 40. • variable • function • condition • looping • vim built-in functions • command
  • 41. • vim runtime path • $VIM/ • $VIMRUNTIME/
  • 42. See Also • Vim.org • Vim Tips wiki • :tab help
  • 43. Utilities • Vimana • VIM::Packager
  • 44. Selected Help Section • ‘C-editing’ • ‘completion’ • ‘tips.txt’ • ‘autocmd’ • ‘eval.txt’
  • 45. vim script authors on github.com • http://github.com/c9s • http://github.com/kana • http://github.com/mattn • http://github.com/tpope • etc...

×