ãã®èšäºã§ã¯ãVimã®åªããã¢ããªã³ãäœæããã人ãç¥ã£ãŠããå¿
èŠã®ããVimLã®ããã€ãã®æ©èœã«ã€ããŠèª¬æããŸãã ãã®èšäºãçè§£ããã«ã¯ãvimscriptã®ç¥èãå¿
èŠã§ããå°ãªããšã1ã€ã®ã¢ããªã³ãäœæããããšããå§ãããŸãã ç¬èªã®ãµããªã¡ã³ããæžããããªã人ã«ãšã£ãŠããã®èšäºã¯ã»ãšãã©ã®å Žå圹ã«ç«ããªãã§ãããã
ãã€ã³ãã£ã³ã°
åãã€ã³ã
ãããµããããç¥ãããŠããããšããå§ããŸãããïŒåãã€ã³ãã Vimã«ã¯ã
*map
ããã³
*noremap
2ã€ã®äž»èŠãªã³ãã³ããã¡ããªããããŸãã 1ã€ç®ã§ã¯å³åŽãåå®çŸ©ã§ããŸããã2ã€ç®ã§ã¯ã§ããŸããã ããã«ããŠãŒã¶ãŒãã©ã®ãã€ã³ãã£ã³ã°ãæã£ãŠããã®ãããããªãããã2çªç®ã®ã¿ã䜿çšããå¿
èŠããããŸãã å€å
žçãªäŸïŒ
noremap : ; noremap ; :
å£ããŸã
nmap <F4> :PluginToggle<CR>
ãããã§ã¯ãªã
nnoremap <F4> :PluginToggle<CR>
ã çæãã¹ããã®ä»ã®ã³ãã³ãïŒ
*map
/ *noremap
ã *abbrev
/ *noreabbrev
ã *menu
/ *noremenu
normal
/ normal!
call feedkeys(string)
/ call feedkeys(string, 'n')
ãŸãã
ãremapãèšå®ã®ååšã«æ³šæããããšãã§ããŸããããã«ããã
*map
ãã¹ãŠã®ã³ãã³ããã察å¿ãã
*noremap
ãšåãæ¹æ³ã§åäœããããã«ãªããŸãã 䜿çšã§ããŸãã
nnoremap <Plug>PluginAction :DoAction<CR> if !hasmapto('<Plug>PluginAction') nmap <Leader>a <Plug>PluginAction endif
ãŠãŒã¶ãŒãlhsããªãŒããŒã©ã€ãã§ããããã«ãããã®èšå®ãæå¹ã«ããŠãããŠãŒã¶ãŒããµããŒãããã«ã¯ã代ããã«ãã©ãŒã ãžã®ãã€ã³ãã£ã³ã°ã®ãã¹ãŠã®å®çŸ©ããªã¹ãããå¿
èŠããããŸã
execute 'nnoremap '.get(g:, 'plugin_action_key', '<Leader>a').' :DoAction<CR>'
Vimã®å€ãããŒãžã§ã³ãšäºææ§ããããŸã
if !exists('g:plugin_action_key') let g:plugin_action_key='<Leader>a' endif execute 'nnoremap '.g:plugin_action_key.' :DoAction<CR>'
ç¹æ®æå
- ãã€ã³ãã£ã³ã°ã®å·ŠéšåãšããŠ<Esc>ã䜿çšãããšãç¢å°ãšãã¡ã³ã¯ã·ã§ã³ããŒã䜿çšã§ããªããªããŸãã ã§ã
nmap <Esc> <Esc>
ãã§ã«ããã«èŠããã§ããŸãã - ãã€ã³ãã£ã³ã°-åŒã®å³åŽã«ãã€ã0x80ãååšãããšããããå°ç¡ãã«ãªãå¯èœæ§ããããŸãã ãšã©ãŒã¯æ¢ç¥ã§ããã ææžåãããŠããŸã ã
ãã¡ã€ã«ïŒ<script>ïŒãã€ã³ãã£ã³ã°
Vimã«ã¯ããã€ã³ãã£ã³ã°ã®å³åŽããåããã¡ã€ã«ã§å®çŸ©ãããŠãããã€ã³ãã£ã³ã°ã®ã¿ã§ãªãŒããŒã©ã€ãããæ©èœããããŸãã ãŠãŒã¶ãŒããã€ã³ãã£ã³ã°ã䜿çšããŠãã€ã³ãã£ã³ã°ã®å·ŠåŽããªãŒããŒã©ã€ãããå Žåã«ãéãããæçšæ§ïŒããæ£ç¢ºã«ã¯ããã®æ¬ åŠïŒãæ®ããŸã
nnoremap <Plug>PluginAction :DoAction<CR> if !hasmapto('<Plug>PluginAction') nmap <Leader>a <Plug>PluginAction endif
ãŸãã¯
execute 'nnoremap '.get(g:, 'plugin_action_key', '<Leader>a').' :DoAction<CR>'
ãã®æ¹æ³ã䜿çšãã¹ãã§ãªãå¥ã®èæ
®äºé
ããããŸãïŒã³ãã³ãçš
nnoremap <script> lhs rhs
ãããŠ
nnoremap lhs rhs
maparg('lhs', 'n', 0, 1)
ãåŒã³åºããšãåãèŸæžãè¿ãããŸãã ã€ãŸããå¥ã®éçºè
ããããšãã°ãåã
lhs
ã§äžæçã«å¥ã®ãã€ã³ãã£ã³ã°ãäœæããŠããå€ããã€ã³ãã£ã³ã°ã埩å
ãããå Žåããã¡ã€ã«ãã€ã³ãã£ã³ã°ã¯æ£ãã埩å
ãããŸããã
èšå®
Vimã«ã¯ãç°¡åã«ããªãã®äººçãå°ç¡ãã«ããå€ãã®èšå®ããããŸãïŒ
äºææ§èšå®
æãç Žå£çãªèšå®ã¯
'compatible'ã§ãã ååãšããŠããããåŠçããããã®æãæ£ããæ¹æ³ã¯ãããŠã³ããŒããæåŠããããšã§ããããããã¡ãã»ãŒãžã衚瀺ãããŸãã
if &compatible finish endif
ã¢ããªã³ã«å¯Ÿãã2çªç®ã«ç Žå£çãªå¹æã¯
ãcpoptionsãèšå®ã§ãïŒããã䜿çšãã
ãšãã³ãã³ãã®äžéšã次ã®è¡ã«è»¢éãããªã
ããã«ã
ããããã€ã³ãã£ã³ã°ã
äœæãã ã³ãã³ã ã® åäœã 倿Žã ãããæ£èŠè¡šçŸ
ã® åäœã 倿Žããã ã§ããŸãã éåžžãããã¯éšåçã«äœ¿çšããŠåŠçãããŸã
let s:saved_cpo=&cpo set cpo&vim <...> let &cpo=s:saved_cpo unlet s:saved_cpo
ãã ããæ£èŠè¡šçŸã®åäœã倿Žããããšãäœãã§ããªããªããŸãã 颿°ã«åœ±é¿ãäžããªãããšã¯è¯ãããšã§ãïŒãŠãŒã¶ãŒå®çŸ©é¢æ°ã§ã¯ãªãã
match *ïŒïŒ ã
replaceïŒïŒãªã©ã®çµã¿èŸŒã¿é¢æ°ãæå³ããŸãïŒã
倧æåãšå°æåãåºå¥ããªã
ãã1ã€ã®ã楜ãããèšå®ã¯
'ignorecase'ã§ãã ãã ããäºææ§ã®èšå®ãšã¯ç°ãªããåçŽãªã«ãŒã«ã«åŸã£ãŠããã«å¯ŸåŠããã®ã¯éåžžã«ç°¡åã§ãã
éæ³ãšç¹°ãè¿ã
ã¯ã€ã«ããã¡ã€ã«
expandïŒïŒ ã
globïŒïŒãŸãã¯
globpathïŒïŒã䜿çš
ããå Žåããªãã·ã§ã³ã®åŒæ°ã®æåã«1ã€ãæå®ããå¿
èŠããããŸããæå®ããªãå Žåã
ãwildignoreãããã³
ã suffixesãã®èšå®ãèæ
®ãããåºåããäžéšã®ãã¡ã€ã«ãé€å€ãããå ŽåããããŸãã ãã ããéã«æçšãªå ŽåããããŸãã
ãã®ä»ã®èšå®
- ãé衚瀺ãããªã³ã«ããŠç掻ããããšã«æ
£ããŠããå Žåã¯ãããã©ã«ãã§ã¯ã€ã³ã¹ããŒã«ãããªãããšã«æ³šæããŠãã ããã ããã¯ãã¢ããªã³ãå¥ã®ãããã¡ã«åãæ¿ããæ©èœã«åœ±é¿ããå ŽåããããŸãã ãããé²ãã«ã¯ã ãbufhiddenãã»ããã䜿çšããŠé衚瀺ã«ããããšãã§ããŸãã
- 'autochdir'ã¯ããŠãŒã¶ãŒãå¥ã®ãããã¡ãŒã«ç§»åãããšãã«çŸåšã®ãã£ã¬ã¯ããªã倿ŽããŸãã ããã¯äºæ³å€ã§ããããµããªã¡ã³ããç Žå£ããå ŽåããããŸãã
- 'cdpath'ã¯ã ïŒcdããã³ïŒlcdã³ãã³ãã®åäœã倿ŽããŸãããã ãããã£ã¬ã¯ããªã絶察çãªæ¹æ³ã§æå®ãããŠããå ŽåããŸãã¯çŸåšã®ãã£ã¬ã¯ããªïŒæç€ºçãª
./
ïŒãŸãã¯çŸåšã®ãã£ã¬ã¯ããªïŒ ../
ïŒãåºæºã«æå®ãããŠããå Žåãé€ããŸãã - ãrevinsãã¯å
¥åã®æ¹åã倿ŽããŸãã 圌女ã®ããã«ãããªãã¯äœ¿çšãã¹ãã§ã¯ãããŸãã
execute 'normal! A'.text
ããã¹ããå
¥åããã«ã¯ã代ããã«setlineïŒïŒãŸãã¯appendïŒïŒã䜿çšããŸãã è¡ã®æåŸã«è¿œå ããå¿
èŠãããå Žåã¯ã䜿çšããå¿
èŠããããŸã let lines=split(text, "\n", 1) let lines[0]=getline('.').lines[0] call setline('.', remove(lines, 0)) if !empty(lines) call append('.', lines) endif
ã ã«ãŒãœã«ã®ç§»åãæåã§èæ
®ããå¿
èŠããããŸãã ãæ³åã®ãšãããããã¹ããå
éšã«æ¿å
¥ãããšãããã«æ°è¡ã®ã³ãŒãã远å ãããŸãã ã«ãŒãœã«ãåŒã£åŒµããªãäŸã¯ããã«ãããŸã ã - 'selection' ã 'selectmode'ããã³'virtualedit'ãããªãã®äººçãå°ç¡ãã«ããå¯èœæ§ããããŸãã æšæºã®ãèšå®ãä¿åããç¬èªã®å€ãèšå®ããå®è¡ããå
ã«æ»ãããããè¯ãããšãè¡ãããšã¯ã»ãšãã©äžå¯èœã§ãã
- ãã·ã§ã«ãã倿Žãããšãä»ã®
shell*
èšå®ã«ãç°¡åã«åœ±é¿ããŸããããã¥ã¡ã³ãã«ãããšãäžéšã®èšå®ã¯ã以åã«æç€ºçã«å€æŽãããå Žåã ãã·ã§ã«ãã®å€æŽã«ãã£ãŠèªåçã«å€æŽãããŸããã ãããªãã¯æåããŸããã - 'startofline'ã¯ãããã€ãã®ã¢ã¯ã·ã§ã³ãå®è¡ãããšãã«ã«ãŒãœã«ã®äœçœ®ã倿ŽããŸãã éèŠãªå Žåã¯ããããã®åŸã«æç€ºçã«èšå®ããå¿
èŠããããŸãã
- 'wrapscan'ã¯ãæ€çŽ¢ã³ãã³ãã®åäœã倿ŽããŸã
/
ããã³?
æ€çŽ¢ã³ãã³ããç¯å²ã®äžéšã§ããå Žåãå«ãã searchïŒïŒã䜿çšããŠãåäœãŸãã¯æšæºã®ãä¿åã倿Žãå®äºã埩å
ããæç€ºçã«èšå®ã§ããŸãã
ããŒã«ã«èšå®
ãŸãã以äžã«æ³šæããå¿
èŠããããŸã
ãsetlocalã¯ãæä»çã«ã°ããŒãã«ãªèšå®ã倿ŽããããšããŠãäŸå€ãã¹ããŒããŸããã ãããã£ãŠããã«ãã䜿çšããŠèšå®ã倿Žããåã«ãããã¥ã¡ã³ãã調ã¹ãŠããã°ããŒãã«èšå®ã®äœ¿çšãæåŠãããã
BufLeaveã€ãã³ãã§èšå®ã埩å
ãã
BufEnterã€ãã³ãã§å€ãèšå®ããå¿
èŠã¯ãã
ãŸãã ã
å¥åŠãªãã¡ã€ã«å
- * nixã·ã¹ãã ã®expandïŒïŒ ã globïŒïŒããŸãã¯globpathïŒïŒé¢æ°ã¯ãããªãªãã§å§ãŸããã¡ã€ã«åãè¿ããŸããã ãããŠã
glob('{*,.*}', 1, 1)
ã®åœ¢åŒã®æ§é ã䜿çšããå Žåãloadã§ç¹å¥ãªãã£ã¬ã¯ããªãåãåããŸã.
ïŒçŸåšã®ãã£ã¬ã¯ããªïŒããã³..
ïŒçŸåšã®ãã£ã¬ã¯ããªã眮ãããŠãããã£ã¬ã¯ããªïŒããããã¯å€ãã®å Žåãåã«ç¡èŠããå¿
èŠããããŸãã - globpathïŒïŒãé€ãã expandïŒïŒããã³globïŒïŒé¢æ°ã¯2çªç®ã®ãªãã·ã§ã³ã®åŒæ°ããµããŒãããããã«ãªãããªã¹ããšããŠçµæãè¿ãããã«åŒ·å¶ããŸãã POSIXã§ã¯ãã¡ã€ã«åã«æ°ããè¡ãå«ããããšãã§ããããã* nixã·ã¹ãã ã§äœ¿çšããŸãã ãããã®é¢æ°ã«è¿œå ã®åŒæ°ããªãããã«vimãååã«å€ãããã®ãããªãã¡ã€ã«ããµããŒããããå ŽåïŒãéçã§ãèŠãããšããªãããšã«æ³šæããŠãã ããïŒããããè¡ãããã®æ¹æ³ã®äŸã次ã«ç€ºããŸãã
ããŒãžããŒã·ã§ã³ãšã³ã¡ã³ã
æ¹è¡ãšåçŽããŒã®æå³ãããã³ã³ã¡ã³ãã䜿çšããæ©èœã¯ãã³ã³ããã¹ãã«éåžžã«ææã§ãã
- çµã¿èŸŒã¿ã³ãã³ããåŒæ°ãšããŠåŒã䜿çšããå ŽåïŒäŸïŒecho ïŒãããã«ã¹ãããŒã¯ã¯æååãªãã©ã«ã®éå§ãšèŠãªãããæ¹è¡ãšåçŽããŒã2ã€ã®ã³ãã³ããåé¢ããŸãïŒãã ããæååãªãã©ã«å
ã«ããå Žåã¯ããã§ã¯ãããŸããïŒã ããŒã ã§ãã®å¹æãéæããããšã¯ã§ããŸããã
- ããããããããã€ã³ãã£ã³ã°/ç¥èª-åŒã§ããå Žåã§ã¯ãªããããŒãµãŒã®èгç¹ããå®éã«åŒãåãå
¥ããŸããã
- ãã¡ã€ã«ããã®èªã¿åã/ã䜿çšãã颿°ã®äœæã®å Žå
execute "function Abc()\n DoSomething\nendfunction"
ãããã§ã¯æ°ããè¡ãåžžã«2ã€ã®ã³ãã³ããåºåããŸãã - ããŒã ãåçŽããŒãåŒæ°ã®äžéšãšèŠãªãå Žåãæ¹è¡æåãåŒæ°ã®äžéšã«ãªããŸãïŒäžèšãé€ãïŒã
- æ°ããè¡ã®å
é ã«ããããã¯ã¹ã©ãã·ã¥ã¯ãã³ãã³ãã®äžéšã®è»¢éã瀺ããŸãã ãã¡ã€ã«ãå®è¡ããåã«ã³ãã³ãã䜿çšãããã®ããã«åäœããŸã
%s/\n\s*\\
- ãã ãããã¡ã€ã«ãå®è¡ãããŠããå Žåã®ã¿ã 転éãé©çšã§ããå Žæã¯ä»ã«ãããŸããã
- ãã€ã³ãã£ã³ã°/ç¥èª/ã¡ãã¥ãŒãäœæããã³ãã³ãã¯ç¹å¥ã§ããããã«ã¹ãããŒã¯ã¯ãããã®äžéšãšèŠãªãããŸãããæååãªãã©ã«ãéå§ãããããã§ãåçŽããŒã¯ã³ãã³ããäžæããŸãã ããŒã ã§ãã®å¹æãéæããããšãã§ããŸããã
endfunction
ãå¥ã®è¡ã«é
眮ããããšã¯ã§ããŸããã function
ã³ãã³ãã®åŸã®ããŒãµãŒã¯ã function
å±ãããã¹ãŠã®è¡ãæãã«åã«ãã¿endfunction
ãæ°ããè¡ã«ããendfunction
ã³ãã³ãã«ééãããŸã§ããããé
åã«æ ŒçŽããŸãã
* Cmd
æ£ããïŒBuf |ãã¡ã€ã«ïŒïŒèªã¿åã|æžã蟌ã¿ïŒCmdã®äœæã¯ãäžèŠæããããããã¯ããã«è€éã§ãã å®éã®ãšãããvimã¯ãšã³ã³ãŒãã£ã³ã°ã®èªåæ€åºãè¡ã®æãè¿ãæ¹æ³ããŸãã¯++ optã®ç°¡åãªãµããŒããæäŸããŠããŸããã gzipã§å§çž®ããããã¡ã€ã«ãèªã¿åãæšæºã®ã¢ããªã³ãèŠããšãè§£åãããã³ã³ãã³ããäžæãã¡ã€ã«ã«ä¿åããŠãã
ïŒreadã䜿çšããŠãã®ãã¡ã€ã«ã
èªã¿åãããšãããããŸãã ããã«ãããèšå®
'fileformats'ããã³
'fileencodings'ã䜿çšããŠè¡ã®æãè¿ããšãšã³ã³ãŒãã®æ¹æ³ãæšæž¬ããå¿
èŠããªããªããŸãããKOI8-Rã§ãšã³ã³ãŒããããå§çž®ãã¡ã€ã«ãéããŸã
fileencodings=utf8,cp1251
å Žåã CP1251ã§ãšã³ã³ãŒãã ã¢ããªã³ã§ãããå®è¡ããããªãå Žåã¯ããµãŒãã¹ã«
vïŒcmdargããããŸãã ãã®å€æ°ã«ã¯åžžã«ãŠãŒã¶ãŒããŒã¿++èšå®ãçã圢åŒã§å«ãŸããŠããããã++ encããã³++ãšã³ã³ãŒãã£ã³ã°ããµããŒãããå¿
èŠã¯ãããŸããã ããã«äŸããã
ãŸã ïŒèªã¿åããæ¬¡ã®é¢æ°ã¯æžã蟌ã¿ïŒïŒ
ãfileformatsããš
ãfileencodingsãã¯ããã§ã¯ç¡èŠãããŸãïŒããå Žåã«ãã£ãŠã¯
vïŒcmdargã¯åã«
ïŒread with
ïŒexecuteã«æ¥ç¶
ã§ããŸãã æ³š
ïŒreadã¯ãã·ã§ã«ã³ãã³ãåºåã®èªã¿åãæã«++èšå®ãç¡èŠããŸãã
èŽåœçã§ãªããšã©ãŒ
ã³ãã³ãã®ãªã¹ããèªãã ã°ããã®äººã«ã¯ãã³ãã³ã
ïŒechoerrããšã©ãŒã衚瀺ããè¯ãæ¹æ³ã®ããã«æãããããããŸããã å®éãããã¯ããã§ã¯ãããŸããã衚瀺ããããšã©ãŒãããã°ã©ã ã®å®è¡ãäžæããªãããã«ããæ¹æ³ã¯ãããŸããã ãã®ã³ãã³ãã«ããã°ã©ã
ã®å®è¡ã®
äžæãä¿èšŒããããšãã§ããŸããã代ããã«
try echoerr 'Error' endtry
ããªãã¯ç°¡åã«æžãã§ããã
echoerr 'Error' " some code here
ãããã¯å
ã«ã³ãŒããé
眮ãããã©ããã«å¿ããŠããã³ãŒãããå®è¡ããããã©ããã«é¢é£ããå¥åŠãªåé¡ããããã°ããå¿
èŠããããšããäºå®ã«åããŠ
:try
ã
:try
ãããã¯ã®äžã«ã決ããŠå®è¡ãããªãã³ãŒãã®ã¿ãé
眮ããããšã¯ã§ããªãããšãèæ
®ããŠ
:try
ãŠãŒã¶ãŒã¯ã次ã®ããã«èšè¿°ããŠã³ãŒããæ£ç¢ºã«é
眮ããçç±ãè€æ°æã€ããšãã§ããŸãã
ããã°ã©ã ãäžæããã«ãšã©ãŒã衚瀺ããå¿
èŠãããå Žåã¯ã
echohl ErrorMsg echomsg 'Error' echohl None
ã å®è¡ãäžæããå¿
èŠãããå Žåã¯ã
throwããããŸãã ãããŠã
:throw
ã«ãã£ãŠçæããããšã©ãŒã¡ãã»ãŒãžã«ãŸã£ããæºè¶³ããŠ
ããªãå Žåã®ã¿
try echoerr 'Error' endtry
ã ã·ã³ãã«
:echoerr
ããããå¿ããå¿
èŠããããŸãã
ããã¹ããã¡ã€ã«ã§ã¯ãªã
ãã¡ã€ã«ãæäœããVimã§ãŒããå«ããæ°ããè¡ã§çµäºããªãå¯èœæ§ã®ããã³ãã³ããåºåãããšããã®æ£ç¢ºããç¶æããå¿
èŠãããå Žåã«å€ãã®ã楜ãããåãæäŸã§ããŸãã 以äžã«ããã€ãã®äºå®ã瀺ããŸãã
äžå¹³ç
Vimã«ã¯ãåçæ§ããã§ãã¯ããããã®6ã€ã®æŒç®åãšãäžå¹³çããã§ãã¯ããããã®åãæ°ã®æŒç®åããããŸãã
==
ã ==?
ã ==#
ïŒäžçåŒïŒïŒ !=*
ïŒã ã¹ã«ã©ãŒåã¯ãå¿
èŠã«å¿ããŠïŒåŒæ°ãç°ãªãåã§ããå ŽåïŒãæååãæŽæ°ã«ãæŽæ°ãæµ®åå°æ°ç¹æ°ã«ããã®ãŸãŸã§æ¯èŒããŸãã æååãæµ®åå°æ°ç¹æ°ãšæ¯èŒããå Žåãæååã¯ãŸãæŽæ°ã«ãã£ã¹ããããæ¬¡ã«æŽæ°ãæµ®åå°æ°ç¹æ°ã«ãã£ã¹ããããŸãã ãããã£ãŠã "42"==42.0
ã§ããã "42.1"!=42.1
ããã³"42.1"==42.0
ã§ãã
éã¹ã«ã©ãŒåããã®æŒç®åã¯ååž°çã«ãã€ãã¹ããŸãã
颿°ãªã³ã¯ããªã¹ããããã³èŸæžãä»ã®ã¿ã€ããšæ¯èŒãããšããšã©ãŒãã¹ããŒãããŸãïŒãããã¯å
ã®äŸå€ã«ãªããŸã:try
ïŒãis
ã is?
ã is#
ïŒäžçåŒïŒ isnot*
ïŒã§ãã ã¹ã«ã©ãŒåãæ¯èŒãââããšããããã¯type(a)==type(b) && a==b
ïŒãã¡ãã察å¿ããæ¥å°ŸèŸä»ãtype(a)==type(b) && a==b
ãšåãããã«åäœããŸãã éã¹ã«ã©ãŒåïŒé¢æ°åç
§ãã¹ã«ã©ãŒåïŒãæ¯èŒããå ŽåãPythonã®is
æŒç®åãšåæ§ã«ããŸãåããã§ãã¯ããæ¬¡ã«IDïŒã€ãŸããåŒæ°ãã¡ã¢ãªå
ã®åããªããžã§ã¯ããåç
§ããŠãããã©ããïŒããã§ãã¯ããŸãã ãšã©ãŒãã¹ããŒããããåŒæ°ãå¥ã®åã«ãã£ã¹ããããããããšã¯ãããŸããã
ãããã£ãŠãæšå¥šããã䜿çšèŠåïŒ
- ã¹ã«ã©ãŒåã®æ¯èŒã§
is#
䜿çšãis?
ã isnot#
ãŸãã¯isnot?
ïŒéãã¯èšå®/ã±ãŒã¹ãç¡èŠã»ã¯ã·ã§ã³ã§èª¬æãããŠããŸãïŒã - éã¹ã«ã©ãŒåã®æ¯èŒã§ã¯ãã¢ã€ãã³ãã£ãã£ã§ã¯ãªãå€ã®ç䟡æ§ãèŠã€ããå¿
èŠãããå Žåã
==#
ã ==?
ã䜿çšããå¿
èŠããã==?
ã !=#
ãŸãã¯!=?
ã - æŒç®å
==
ã is
isnot
!=
ããã³isnot
ãå®å
šã«å¿ããŠã¯ãªããŸããã
ç§ãé å®ããã»ããã®æåæ°ãæžããããšãã§ããã«ãŒã«ã®å¥ã®ã»ããããããŸãïŒ
- åŒæ°ã®1ã€ãæ°å€å®æ°ã§ãããã³ãŒãã®ãã以éã®ãã1ã€ãæ°å€ãšããŠã®ã¿äœ¿çšãããå Žåã
==
ã䜿çšã§ããŸãã - åŒæ°ã®1ã€ãæ°å€å®æ°ã®å Žåã
is
ã䜿çšã§ããŸãã - 次ã«ãåã®ãªã¹ãã®ã«ãŒã«ã䜿çšããŸãã
==#
æ°å€ããç¹å¥ãªåŒæ°ããšããŠäœ¿çšããå¿
èŠããããã©ãããèããããªãã®ã§ãæååã«ã¯é©çšããŸããïŒ None
代ããã«0
ãªã©ïŒã
æ©èœ
Vimã®è峿·±ãæ©èœã®1ã€ã¯ã颿°ãåç
§ãã倿°ã䜿çšããããšã§ãã æ¢ã«ãã®ãããªå€æ°ãååŸã§ãããšèããå Žå
let Func=function("tr")
ã倿°åã倧æåã§å§ãŸãããšããããããåç¥ã§ãããããããªããšãVimããšã©ãŒã衚瀺ããããã§ãã ãã ããããŸãç¥ãããŠããªããã1ã€ã®äºå®ããããŸãããã®ããã倿°ã«é¢æ°åç
§ãå²ãåœãŠ
ãªãã§ãã ããããFuncã颿°ãã©ããã§å®çŸ©ããå ŽåãVimããšã©ãŒã衚瀺ããŸãã 颿°åç
§ã䜿çšããå®å
šãªæ¹æ³ã¯2ã€ãããããŸããããããåŒæ°ãšããŠæž¡ããè€éãªæ§é ã䜿çšããïŒèŸæžãŸãã¯ãªã¹ãïŒ
let d={} let d.func=function("tr")
åæ§ã«
function Apply(func, list) return call(a:func, a:list, {}) endfunction echo Apply(function("tr"), ["abc", "a", "d"])
a:func()
颿°ãå®çŸ©
a:func()
å¯èœæ§ãããã«ãããããããå®å
šã«å®å
šã§ãã
ç¹æ®ãã£ã©ã¯ã¿ãŒïŒ
ã芧ã®ãšããããã¡ã€ã«åã®ä»£ããã«ïŒ
èšå·ã䜿çšãããšäŸ¿å©ã§ããããšãã°ã次ã®ããã«ãªããŸãã
nnoremap <F4> :!python %<CR>
ïŒ ããã¯Vimã®ãã1ã€ã®äŸ¿å©ãªæ©èœã§ãããããŸãæ©èœããŠããã°äŸ¿å©ã§ãã ãã¡ã€ã«åã«ã¯ã¹ããŒã¹/ã¹ãããŒã¯/ãã«ïŒ* shïŒã䜿çšãããã¡ã€ã«åã®ä»£ããã«ããã®ãã€ã³ãã£ã³ã°ã®ã€ã³ã¿ãŒããªã¿ãŒã¯äœã§ãååŸã§ããŸãã Vimã«ã¯
%:t
[ail]ïŒååã®æåŸã®éšåã®ã¿ãæ®ãïŒã®ãããªçŸåšã®ãã¡ã€ã«åã«å¯Ÿããå€ãã®
修食åããããŸããã修食å
%:E
[
scape ]ã¯
shellescapeïŒïŒãä»ã
ãŠãã¡ã€ã«åã
å®è¡ããŸãã ãããã£ãŠãåŒã³åºãã®ã³ã³ããã¹ããå¿ããã«ããã¹ãŠãèªåã§ã¹ã¯ãªãŒãã³ã°ããå¿
èŠããããŸãïŒ
systemïŒïŒã䜿çšããå Žåã
shellescapeïŒïŒã¯ã1ã€ç®ã®åŒæ°ãŸãã¯2ã€ç®ã®ä»£ããã«ãŒãã§åŒã³åºãå¿
èŠãããã
ïŒïŒ ã
ïŒèªãã§ãã ããïŒ ã
ïŒæžãïŒ ããã³ãã®ä»ã®æå笊-2ã€ã®åŒæ°ãš1ã€ã2çªç®ã®åŒæ°ã§ãã äŸïŒ
nnoremap <F4> :execute '!python' shellescape(@%, 1)<CR> nnoremap <F5> :call system('javac '.shellescape(expand('%')))<CR>
æ£èŠè¡šçŸæ©èœ
[^\na]
ã¯ããªãã¿ã®æçš¿ã§ããïŒ VimLæ£èŠè¡šçŸã§ã¯ãããã¯å®å
šã«ããªããèããŠãããã®ã§ã¯ãªãããšãæå³ããŸãããã®ã³ã¬ã¯ã·ã§ã³ã¯ãä»»æã®æåãšæ¹è¡ã«äžèŽããŸãã äºå®ã¯ããã®ã¬ã³ãŒãã¯ããã»ã©èœèããªã\_[^a]
ãšåãããšãæå³ã\_[^a]
ãã€ãŸããã³ã¬ã¯ã·ã§ã³ã«æ°ããè¡ã远å a
ãŸãããã®å Žåã a
以å€ã®ãã¹ãŠã®æåã§æ§æãããŸããsubstitute(str, reg, '\=expr', flags)
ã¯ãæ£èŠè¡šçŸãexpr
ã®è©äŸ¡çµæããŸãã¯=expr
眮ãæããããšãã§ããŸãã \=
, , â , Vim . substitute() :s .^
« » , ( \(\)
, \%(\)
) ( \|
). $
, , .- , , ( , match*() , substitute() =~* ) «/ ». , . â
\n
, « », « ». : , . Vim « » â char*.
Vim , . : . , ,
-complete=dir
-complete=file
, :
command -complete=dir -nargs=1 -bar Echo :echo [<f-args>] command -nargs=1 EchoN :echo [<f-args>]
:Echo abc E172: :EchoN abc ['ab c'] :Echo * E77: :Echo $HOME ['/home/zyx'] :Echo `date` ['. . 28 17:17:47 MSK 2012']
ã , , , . , . , . .