jopenspace.cz 2016 vim 8.0

9
jOpenSpace.cz 2016 – ViM 8.0 David Ondřich

Upload: david-ondrich

Post on 13-Apr-2017

123 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: jOpenSpace.cz 2016 ViM 8.0

jOpenSpace.cz 2016 – ViM 8.0

David Ondřich

Page 2: jOpenSpace.cz 2016 ViM 8.0

Vi iMproved 8.0 – triviahlavní vývojář Bram Moolenaarvydání 12. září 2016 [1]předchozí verze 7.0 vydána 8. 5. 2006, 7.4 vydána10. 8. 2013 [2]Moolenaar začal ViM pro AmigaOS v r. 1988, veřejnáverze 1.14 r. 1991 [3]původní  vi  vytvořen (Bill Joy, BSD Unix) r. 1976 jakovizuální režim pro editor  ex vim.orgportace: Amiga, Atari, BeOS, BSD, DOS (< 8!), linux,MacOS, OpenVMS, OS/2, QNX, Windows a dalšídalší odvozeniny původního  vi : elvis, nvi, vile, xvi, …neovim

Page 3: jOpenSpace.cz 2016 ViM 8.0

hlavní funkcevšudypřítomnostrežimykonfigurovatelnostpodpora (nejen) programovacích jazyků

odsazování, syntax highlighting, párování závorek,folding, …pluginy & dostupné vychytávky pro stovky jazyků(shell, C/C++, Java, Perl, …, XML, HTML, TeX,markdown, …)práce s textem (věty, odstavce), blokové výběry, …

skriptovací jazyk VimScript

Page 4: jOpenSpace.cz 2016 ViM 8.0

novinkyasynchronní I/O, kanály (podpora JSON)komunikace s procesyčasovačelambdy, uzávěrya další: balíčky, nový styl testů, timestamps ve  .viminfo ,podpora DirectX, GTK+ 3, …kompletní seznam novinek [4]

Page 5: jOpenSpace.cz 2016 ViM 8.0

ukázky pro workshop1.  :undol ,  :earlier ,  :later  (už ve verzi 7!) [5]2.  |v_CTRL‐A| ,  |v_CTRL‐X|  – přičítání ve vizuálním výběru3.  breakindent ,  breakindentopt ,  showbreak 4.  fixendofline  – <EOL> na poslední řádce5.  termguicolors  – 24‒bit barvy v terminálu6.  v:true ,  v:false ,  v:none ,  v:null 

Page 6: jOpenSpace.cz 2016 ViM 8.0

ukázky pro workshop7. kanály

 ch_open() ,  ch_status() ,  ch_close() režimy: JSON, JS, RAW, NL ch_sendraw() ,  ch_evalraw() callbacks (?)

8. procesy

 job_start() ,  job_getchannel() ,  job_status() stejné režimy ch_read() , I/O bufferycallbacks (?)

Page 7: jOpenSpace.cz 2016 ViM 8.0

ukázky pro workshop9. časovače

 timer_start()  – parametr  repeat  timer_stop() ,  timer_stopall() 

10. lambdy, uzávěry

lambda syntax

využití v  sort() ,  map() ,  filter()  ( timer_start() !)přístup do vnějšího scopepro funkce:  func! InnerFunc() closure 

let FormatJOS = {year, place ‐> 'jOpenSpace '.year.', '.place} echom FormatJOS(2016, 'Pelhřimov') 

Page 8: jOpenSpace.cz 2016 ViM 8.0

další info :help channel‐demo 

 :help job_start() 

 :help start_timer() 

 :help expr‐lambda ,  :help closure  :help version8 

[1] https://groups.google.com/forum/#!topic/vim̲announce/EKTuhjF3ET0 

[2] http://www.jovicailic.org/2014/06/the‒history‒of‒vim/ 

[3] https://en.wikipedia.org/wiki/Vim̲(text̲editor) 

[4] https://github.com/vim/vim/blob/master/runtime/doc/version8.txt 

[5] http://lifehacker.com/202093/go‒back‒in‒text‒file‒time‒with‒vim‒70