Vim の変数のスコープについて調べたら「わかってない」ということがわかった - sci
ãã®ãããªè¨äºãè¦ããããå
·ä½çã«ã©ããªã³ã¼ãã§è©¦ããã®ããããªãã®ã§å
·ä½çãªã¢ããã¤ã¹ã¯ã§ãããã«ãªããããã£ããã®ã§ Vim script ã®å¤æ°ã®ã¹ã³ã¼ãã«ã¤ãã¦è§£èª¬ãã¦ã¿ããã
ã©ããªã¹ã³ã¼ããããã®ã
Vim ã®å¤æ°ã¯å¤æ°åã®æ¥é åã«ãã£ã¦ã¹ã³ã¼ããæ±ºå®ãã¾ãã
æ¥é å | ã¹ã³ã¼ã |
---|---|
g: | ã°ãã¼ãã« |
b: | ç¾å¨ã®ãããã¡ã«ãã¼ã«ã« |
w: | ç¾å¨ã®ã¦ã£ã³ãã¦ã«ãã¼ã«ã« |
t: | ç¾å¨ã®ã¿ããã¼ã¸ã«ãã¼ã«ã« |
s: | ç¾å¨ã®ã¹ã¯ãªãããã¡ã¤ã«ã«ãã¼ã«ã« |
l: | 颿°ãã¼ã«ã« |
v: | çµã¿è¾¼ã¿å¤æ° |
æ¥é åãçç¥ããå ´åã¯ã
- 颿°å ã ã£ãå ´å㯠l:
- ãã以å¤ãªãã° g:
ã«ãªãã¾ãããã ããcount ãªã©ã®ä¸é¨ã®å¤æ°ã¯äºææ§ã®é¢ä¿ã§ v:count ã®ããã«çµã¿è¾¼ã¿å¤æ°ã¨ãã¦æ±ããã¦ãã¾ãã®ã§æ³¨æãå¿
è¦ã§ãã
å½ç¶ã§ããããããã¡/ã¦ã£ã³ãã¦/ã¿ããã¼ã¸ãä½ã§ãããã¯ãã¡ãã¨ç¥ã£ã¦ããå¿
è¦ãããã¾ããé·ããªãã®ã§ããã§ã¯è§£èª¬ãã¾ããã
ä»ã©ãã«ããã®ããæèãã
Vim script ãæ¸ãä¸ã§éè¦ãªã®ã¯ãã¹ã¯ãªããã®å®è¡ä¸ã«ä»ã©ãã«ããã®ããæèãããã¨ã§ããä¸è¨ã®ã¹ã³ã¼ãã®èª¬æãè¦ãã¨ãããããã«ãåãã¼ã«ã«å¤æ°ã¯ç¾å¨ã®ã³ã³ããã¹ãã«ä¾åãã¾ããä¾ãã°ã
let b:foo = 10 new echo b:foo
ããã¯ãb:foo ãåå¨ããªãã¨ããã¨ã©ã¼ã«ãªãã¾ãããªããªãã2è¡ç®ã§æ°ãããããã¡ãéãã¦ããã®ã§ãæåã® b:foo ã¨æå¾ã® b:foo ã¯å¥ã®ãããã¡ã®å¤æ°ãåç
§ãã¦ããããã§ãã
ããã¯å¤æ°ã«éãããã¼ã«ã«ãªãã·ã§ã³ããã¼ã«ã«ãªãã¼ãããã³ã°ãªã©ã«ãè¨ãããã¨ãªã®ã§ãã¹ã¯ãªããã®åè¡ã§ Vim ãã©ã®ãããªç¶æ
ã«ããããæèããã¨è¯ãã§ãã
ã¾ããä¾ãã°ä»¥ä¸ã®ãããªã³ã¼ã
for i in g:user_config call s:setting(i) endfor
ãããã°ãã¼ãã«ã¹ã³ã¼ã(颿°ã®å¤)ã«æ¸ãã¦ããå ´åãæåã«æ¸ããã«ã¼ã«ã®éããi ã¯ã°ãã¼ãã«å¤æ°ã«ãªãã¾ããããã¯è¦è½ã¨ããã¡ãªã®ã§æ³¨æãå¿ è¦ã§ãã
å¥ã®ã¹ã³ã¼ãã®å¤æ°ã«ã¢ã¯ã»ã¹ãã
ã¨ãªãã®ãããã¡ã®å¤æ°ãæä½ããã®ã«ããã¡ãã¡ãããã¡ãç§»åããã®ã¯é¢åã§ããããããããããã¡ã®ç§»åã¯æ§ã 㪠autocmd ãèµ°ã£ãããã¦å¯ä½ç¨ã大ããããé¿ãããã¨ããã§ãããããªã¨ãã®ããã«ãå¥ã®ã¹ã³ã¼ãã®å¤æ°ã«ã¢ã¯ã»ã¹ããææ®µãããã¤ãç¨æããã¦ãã¾ãã
ãããã¡å¤æ°
getbufvar({ãããã¡çªå·}, {夿°å}) ã§æå®ãããã¡ã®å¤æ°ã®å¤ãåå¾ã§ãã¾ãã
setbufvar({ãããã¡çªå·}, {夿°å}, {å¤}) ã§æå®ãããã¡ã®å¤æ°ã®å¤ãè¨å®ã§ãã¾ãã
ã¿ããã¼ã¸å¤æ°
gettabvar({ã¿ãçªå·}, {夿°å}) ã§æå®ã¿ããã¼ã¸ã®å¤æ°ã®å¤ãåå¾ã§ãã¾ãã
settabvar({ã¿ãçªå·}, {夿°å}, {å¤}) ã§æå®ã¿ããã¼ã¸ã®å¤æ°ã®å¤ãè¨å®ã§ãã¾ãã
ã¦ã£ã³ãã¦å¤æ°
gettabwinvar({ã¿ãçªå·}, {ã¦ã£ã³ãã¦çªå·}, {夿°å}) ã§æå®ã¿ããã¼ã¸ã®æå®ã¦ã£ã³ãã¦ã®å¤æ°ã®å¤ãåå¾ã§ãã¾ãã
settabwinvar({ã¿ãçªå·}, {ã¦ã£ã³ãã¦çªå·}, {夿°å}, {å¤}) ã§æå®ã¿ããã¼ã¸ã®å¤æ°ã®æå®ã¦ã£ã³ãã¦ã®å¤ãè¨å®ã§ãã¾ãã
åèè³æ
- vimrc基礎文法最速マスター - 永遠に未完成
- 夿°ã®ã¹ã³ã¼ãã«ã¤ãã¦è§¦ãã¦ãã¾ããã¡ãªã¿ã«ãæ¬è¨äºã®ä¸é¨ã¯ãã®è¨äºãã転è¼ãä¿®æ£ãããã®ã§ãã
- ãããã¡/ã¦ã£ã³ãã¦/ã¿ããã¼ã¸ã«ã¤ãã¦ãç°¡åã«æ¸ãã¦ããã¾ãã
- :help internal-variables
ã©ãã§ããããã¨
ã¯ã¦ãã§ g:vim ã¨ãæ¸ãã¨ã¯ã¦ãªã°ã«ã¼ãã¸ã®ãªã³ã¯ã«ãªã£ã¦ãããã®ã§ã
[]g:vim[]
ã£ã¦æ¸ãã¨è¯ãã§ãã