
èªè
ã¯ãããã¯ããªãŒãœãããŠã§ã¢ã®äžçã®å¥ã®ãããžã§ã¯ãããã§ãã¯ããããšã«é¢ããå¥ã®èšäºã§ãããšèãããããããŸããããå®éã«ã¯ããã®èšäºã¯ãã§ãã¯ã«ã€ããŠã§ã¯ãªããå®å
šãªGNU / Linuxç°å¢ã§PVS-Studioã¢ãã©ã€ã¶ãŒã䜿çšããæ¹æ³ã«ã€ããŠã§ãã Vimãæ€èšŒã®ããã®ãããžã§ã¯ãã®éžæã«ãªã£ãã®ã¯å¶ç¶ã§ã¯ãããŸããã圌ããã®åé¡ã«é¢äžããããã§ãã
ãŸããVimã«ã€ããŠå°ã
VimïŒ
http://vim.org ïŒã¯ã30幎ã®æŽå²ãæã€ã¯ãã¹ãã©ãããã©ãŒã ã®ããªãŒããã¹ããšãã£ã¿ãŒã§ããããã¯viã®åŸç¶ã§ãããUnixã·ã¹ãã ã®äžçããæ¥ãŠããŸãã
Vimã¯ç®¡çããã³éçºã§åºã䜿çšãããŠãããå€ãã®GNU / Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ããã©ã«ãã®ãšãã£ã¿ãŒã§ãã Vimã¯ãVimã¹ã¯ãªããã§èšè¿°ããããã©ã°ã€ã³ã®ã·ã¹ãã ãä»ããŠãããŒããŒããããã¹ãã€ã³ã¿ãŒãã§ã€ã¹ãããã³è±å¯ãªæ¡åŒµãªãã·ã§ã³ã®ã¿ã䜿çšãããšããç¹ã§ãä»ã®ããã¹ããšãã£ã¿ãŒãšã¯ç°ãªããŸãã
ãã¹ãèªäœã«ã€ããŠ
Linuxã®ãããžã§ã¯ãããã§ãã¯ããããã®ãªãã·ã§ã³ã®1ã€ã¯ãGNU Makeãªã©ã®ãã«ãã·ã¹ãã ãžã®çµ±åã§ãã vimããã§ãã¯ããããã«ããã®æ¹æ³ãéžæãããŸããã ã¡ã€ã¯ãã¡ã€ã«å
ã®åã³ã³ãã€ã©ãŒåŒã³åºãã«å¯ŸããŠãã¢ãã©ã€ã¶ãŒåŒã³åºããè¿œå ãããŸããã 䟿å®äžããã®åŒã³åºãã¯åæ§ã®æ¹æ³ã§Makeå€æ°ã«ã©ãããããŸããã
#PVS Studio vars PVS_CFLAGS = $(ALL_CFLAGS) PVS_INCFLAGS = -I$(srcdir) PVS_STUDIO = ~/PVS-Studio/PVS-Studio âcfg \ ~/PVS-Studio/PVS-Studio_vim.cfg --source-file \ $< --cl-params $(PVS_CFLAGS) -c $(PVS_INCFLAGS) $<
次ã«ãmakeã³ãã³ãã䜿çšããŠããããžã§ã¯ããéåžžã¢ãŒãã§ã¢ã»ã³ãã«ããŸãïŒå¿
èŠã«å¿ããŠãããanalysisããªã©ã®åæçšã«å¥ã®ã¿ãŒã²ãããè¿œå ã§ããŸãïŒã çµæã¯ãã¢ã»ã³ãã«ããããããžã§ã¯ãã«å ããŠãçã®ã¢ãã©ã€ã¶ãŒãã°ã§ãã
ã泚æ ã¢ãã©ã€ã¶ãŒã¯ããããžã§ã¯ãã®äžŠåã¢ã»ã³ããªãšäžŠè¡ããŠå®è¡ã§ããŸãã ã¢ãã©ã€ã¶ãŒã®å®è¡äžã®åã€ã³ã¹ã¿ã³ã¹ã¯ãã¡ãã»ãŒãžã®äžéšããã°ã«è¿œå ããŸãã ãããã£ãŠãã¢ãã©ã€ã¶ãŒã¯çã®ãã°ãã¡ã€ã«ãã¯ãªã¢ããªãããšã«æ³šæããŠãã ããã ãããã£ãŠããã§ãã¯ãåéããåã«ã以åã®ãã§ãã¯ãããã°ãèªåã§åé€ããå¿
èŠããããŸããçãã°ã§äœæ¥ããããšã¯äžå¯èœã§ãã ãã®ãã°ã«ã¯å€ãã®éè€ã¡ãã»ãŒãžããããŸãïŒåäžã®.hãã¡ã€ã«ãè€æ°ã®.cppãã¡ã€ã«ã«å«ãŸããŠããå ŽåïŒã åæãã©ã¡ãŒã¿ãŒãå€æŽããã«ã¯ãæ§æãã¡ã€ã«ãç·šéããåŸããã¹ããå床å®è¡ããå¿
èŠããããŸããããã¯ã倧èŠæš¡ãããžã§ã¯ãã®æéã«æ·±å»ãªåœ±é¿ãåãŒããŸãã ããšãã°ãç¹å®ã®ãã£ã¬ã¯ããªã®ãã¡ã€ã«ã«é¢é£ããèŠåããªãã«ããã ãã§ãããŸããŸããã ãã®åé¡ã解決ãããããçã®PVS-Studioãã°ãåŠçããéè€ããã¡ãã»ãŒãžãåé€ãããªãã·ã§ã³ãã¡ã€ã«ããã¡ãã»ãŒãžã«ãã£ã«ã¿ãŒãé©çšãããµããŒããããŠãã圢åŒã®ããããã§ã¢ãã©ã€ã¶ãŒã®èŠåã衚瀺ãããã°ããŒãµãŒãŠãŒãã£ãªãã£ãC ++ã§èšè¿°ãããŸããã ãã®ãŠãŒãã£ãªãã£ã¯éåžžã«é«éã«åäœããŸãïŒéåžžã«å€§ããªãããžã§ã¯ãã®æ€èšŒãã°ã§ãããã®åäœæéã¯2ã3ç§ãè¶
ããŸããïŒãããã«ãããããã€ãã®åæãã©ã¡ãŒã¿ãŒãç°¡åãã€è¿
éã«å€æŽããæ°ããã¡ãã»ãŒãžãªã¹ããååŸã§ããŸãã
å¿
èŠã«å¿ããŠãæ°ããåºå圢åŒãç°¡åã«è¿œå ã§ããŸãã çŸæç¹ã§ã¯ãxmlãšããããerrorfileã®2ã€ããããŸãã ç§ã®ç¥ãéããæ£åŒãªååã¯ãããŸãããããã¯ãLinuxçšã®å€ãã®ããã°ã©ã ãã¡ãã»ãŒãžãåºåãã圢åŒã§ããããšãã°ãgrepãgccã³ã³ãã€ã«ãšã©ãŒãªã©ã§ãã 䟿å©ã«ãªã£ãã®ã¯åœŒã§ããã
倧å€æ°ã®éçºè
ãVisual Studioã䜿çšããŠããWindowsãšã¯ç°ãªããGNU / Linuxã®äžçã«ã¯å€ãã®IDEãããã¹ããšãã£ã¿ãŒãªã©ãããããŠãŒã¶ãŒã®å²åãå€ããªã£ãŠããŸãã åœäºè
ã®ã³ã³ã»ã³ãµã¹ãåªäœæ§ã¯ãªãã誰ãã奜ã¿ã«åã£ã楜åšãéžæããŸãã ããã§ãããããžã§ã¯ãããã§ãã¯ãããšããPVS-StudioãšVisual Studioã®çµ±åããã®æ©äŒãæäŸãããããåæã®çµæãååŸããã ãã§ãªãããããã䟿å©ã«æäœã§ããããšãéèŠã§ãã äžèšã®ãšã©ãŒã¡ãã»ãŒãžåœ¢åŒã¯Linuxããã°ã©ã ã®äžçš®ã®æšæºã§ãããã»ãšãã©ã®ãšãã£ã¿ãŒããã³éçºç°å¢ã¯ããããµããŒãããŠããŸãããæ®å¿µãªããšã«ãã»ãšãã©ã®å Žåããã®ãµããŒãã¯ã¢ã»ã³ããªäžã®stderrããã®ã³ã³ãã€ã©ã¡ãã»ãŒãžã®èªã¿åãã«å¯ŸããŠã®ã¿ååšããŸããåãå Žåãäºåã«æºåãããã¡ã€ã«ããã¢ãã©ã€ã¶ãŒã¡ãã»ãŒãžãååŸããæ¹ãã¯ããã«äŸ¿å©ã§ãã
ãããVimãšãã£ã¿ãŒã®åœ¹ã«ç«ã¡ãŸããã ãã¡ãããä»ã®ããŒã«ã«é©ãããã©ã°ã€ã³ãéçºããããšãã§ããŸãããVimã«ã¯æåã«ãã®æ©èœãåãã£ãŠããŸããã

å³1-åæçµæã䜿çšããvimã®å®è¡ã
ã¢ãã©ã€ã¶ãŒãšãã°åŠçãŠãŒãã£ãªãã£ãåäœããåŸã«vim -q <errorfile>ãå®è¡ããéãããšãã£ã¿ãŒã§ã³ãã³ããå®è¡ããŠãšã©ãŒã®ãããããã¡ãŒãäœæããã ãã§ååã§ãã äŸïŒcw20ããããŠãã¢ãã©ã€ã¶ãŒã¡ãã»ãŒãžãšã³ãŒãããã²ãŒã·ã§ã³ãæäœããããã®å¿«é©ãªç°å¢ããã§ã«ååŸããŠããŸãã ãã¡ãããVimèªäœãç 究ããããšããªããããVimèªäœãç 究ããã®ã«æ°æéè²»ãããªããã°ãªããŸããã§ããããŸããVimã®äœ¿çšåçã¯ãããªãã¿ã®ããã¹ããšãã£ã¿ãŒãšã¯å€§ããç°ãªããŸãã ããããçµå±ãç§ã¯ãã®äœ¿çšã®å©äŸ¿æ§ã«éåžžã«æã¿èŸŒãã§ããããšã€ãªã¢ã³ã®ããã®ãããŸããªã®ãºã¢ã®ã«ããŽãªãŒãããä»äºã®ããã®åŒ·åãªããŒã«ã®ã«ããŽãªãŒã«ç§»åãããšèšããŸãã ãããã£ãŠãé·ãéãæ€èšŒçšã®ãããžã§ã¯ããéžæããããšãå¿é
ããå¿
èŠã¯ãããŸããã§ãã-ãã¡ãããVimèªäœã§ãã vimã³ãŒãã¯éåžžã«é«å質ã§ããããšãå€æããæãããªãã°ã¯ãããŸããã§ããïŒã³ãŒãã®èšè¿°ã¹ã¿ã€ã«ã¯äžéšã®å Žæã§ã¯ããªãè°è«ã®äœå°ããããŸããããããžã§ã¯ãã®æ代ãå²ãåŒãããšãã§ãããšæããŸãã ã
è¿œå ãã§ãã¯
if (ptr == NULL) { if (compl_leader != NULL) ptr = compl_leader; else return; } if (compl_orig_text != NULL) { p = compl_orig_text; for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len) ; #ifdef FEAT_MBYTE if (len > 0) len -= (*mb_head_off)(p, p + len); #endif for (p += len; *p != NUL; mb_ptr_adv(p)) AppendCharToRedobuff(K_BS); } else len = 0; if (ptr != NULL) AppendToRedobuffLit(ptr + len, -1);
V595ã¢ãã©ã€ã¶ãŒã®
èŠå ïŒ1ïŒnullptrã«å¯ŸããŠæ€èšŒãããåã«ããptrããã€ã³ã¿ãŒã䜿çšãããŸããã è¡ã確èªããŠãã ããïŒ3922ã3933ã
ptrãã€ã³ã¿ãŒã¯æ¢ã«NULLããã§ãã¯ãããŠããŸã;ãã®æ¡ä»¶ãçã®å Žåãcomp_leaderãã€ã³ã¿ãŒãå²ãåœãŠãããŠããŸãããããã¯ééããªãnullã§ã¯ãããŸããã 2åç®ã®ãã§ãã¯ã¯äžèŠã§ãã
å¥åŠãªmemset
if (flags & DOCMD_EXCRESET) save_dbg_stuff(&debug_saved); else vim_memset(&debug_saved, 0, 1);
ããã§ãdebug_savedã¯æ§é äœãªããžã§ã¯ãã§ã
struct dbg_stuff { int trylevel; int force_abort; except_T *caught_stack; char_u *vv_exception; char_u *vv_throwpoint; int did_emsg; int got_int; int did_throw; int need_rethrow; int check_cstack; except_T *current_exception; };
ã¢ãã©ã€ã¶ãŒã¡ãã»ãŒãžïŒ
V512 ïŒ1ïŒ 'memset'é¢æ°ãåŒã³åºããšããããã¡ãŒ 'ïŒdebug_saved'ãã¢ã³ããŒãããŒããŸãã
æ§é ã®æåã®ãã€ãã®ã¿ããªã»ããããå¿
èŠããã£ãçç±ã説æããã®ã¯å°é£ã§ãã ãããäœããã®ãã©ã°ãšããŠäœ¿çšããå Žåãæ§é äœã®å¥ã®ãã£ãŒã«ããšããŠå®çŸ©ããããšããå§ãããŸãïŒãŠããªã³ãå¯èœã§ãïŒã
çããããµã€ã¯ã«
for (i = 0; i < num_names; ++i) { if (names[i] == NULL) { for (i = 0; i < num_names; ++i) vim_free(names[i]); num_names = 0; } }
ã¢ãã©ã€ã¶ãŒã¡ãã»ãŒãžïŒ
V535 ïŒ1ïŒå€æ° 'i'ã¯ããã®ã«ãŒããšå€éšã«ãŒãã«äœ¿çšãããŠããŸãã è¡ã確èªããŠãã ããïŒ1893ã1897ã
å€åŽãšå
åŽã®ã«ãŒãã§ã¯ãåãã«ãŠã³ã¿ãŒiãåãé
åãééããŸãã ïŒnames [i] == NULLïŒãæåã«æ¡ä»¶ãããªã¬ãŒããããšãå€éšã«ãŒãã®æ¬¡ã®ã¹ãããã¯å®è¡ãããŸãããããµãŒãããŒãã£ã®äººã¯ãã®ã³ãŒããæ£ããç解ããããã«ç·åŒµããå¿
èŠãããããã®èšè¿°ã®ç¬åµæ§ã¯è¡åã瀺åããŠããŸãèè
ãæå³ããã ã€ãŸãããšã©ãŒã¯ãããŸããããã³ãŒãã¯å°ãèããããŸãã ããããããbreakãã¹ããŒãã¡ã³ãã®æ¹ãã«ãŒããåæ¢ããã®ã«é©ããŠããŸãã
ã¹ã³ãŒã
char_u *p, *old;
ã¢ãã©ã€ã¶ãŒã®èŠåïŒ
V507 ïŒ2ïŒããŒã«ã«é
åããããã¡ãŒããžã®ãã€ã³ã¿ãŒã¯ããã®é
åã®ã¹ã³ãŒãå€ã«æ ŒçŽãããŸãã ãã®ãããªãã€ã³ã¿ãŒã¯ç¡å¹ã«ãªããŸãã
Vimã®ã³ãŒãã«ã¯ã䌌ããããªå ŽæããããããããŸãïŒã¹ã¿ã€ã«ã®åé¡ïŒã é¢æ°ã®äžçªæåã«å®£èšããããã€ã³ã¿ãŒpïŒäžè¬çã«ã°ããŒãã«ã¹ã³ãŒããæã€ããã€ãã®å Žæã§ïŒã¯ãããå°ããªã¹ã³ãŒãã«ã®ã¿ååšããã³ãŒããããã¯ãé¢ãããšãã«åé€ãããé
åãžã®ãã€ã³ã¿ãŒãæ ŒçŽããŸãã ç°¡åãªæ€æ»äžã«ããããã¡ãŒã®ã¹ã³ãŒããåºãåŸããã€ã³ã¿ãŒpã¯æ°ããå€ãå²ãåœãŠãåŸã«ã®ã¿äœ¿çšãããããã«æããŸããããããã¯ã©ããã§ã¹ãããã§ããŸãã ãããã¡ã¹ã³ãŒãå
ã§å¥ã®å€æ°ã宣èšããã®ã§ã¯ãªãïŒå®éãã¹ã¿ãã¯ã®ã¹ããŒã¹ãç¯çŽããããã«ïŒãã©ã®ãããªç®çã®ããã«ãç§ã¯ç解ããŠããŸããã ãã®ãããªã³ãŒãã¯ãµããŒããäžååã§ãèªãã®ãäžå¿«ã§ãã
1ã€ã®åŒã®ç¬Šå·ä»ãåãšç¬Šå·ãªãåã®ãšã©ãŒ
for (cu = 1; cu <= 255; cu++) if (VIM_ISDIGIT(cu)) regc(cu);
ã©ãã§
#define VIM_ISDIGIT(c) ((unsigned)(c) - '0' < 10)
ã¢ãã©ã€ã¶ãŒã®èŠåïŒ
V658 ïŒ2ïŒç¬Šå·ãªãå€æ°ããå€ãæžç®ãããŠããŸãã ããã«ããããªãŒããŒãããŒãçºçããå¯èœæ§ããããŸãã ãã®ãããªå Žåãã<ãæ¯èŒæŒç®ã¯æœåšçã«äºæããªãåäœãããå¯èœæ§ããããŸãã 'ïŒunsignedïŒïŒcuïŒ-' 0 '<10'åŒã®æ€æ»ãæ€èšããŠãã ããã
ãã®ã³ãŒãã¯ãæ±ããããã³ã°ã«äŒŒãŠããŸãã åŒãè©äŸ¡ãããšãïŒïŒunsignedïŒ-'0' <10ïŒãæžç®ã®çµæã¯unsignedåã®å€ã«ãªããåŒã®äž¡æ¹ã®éšåãæ¯èŒãããšãã笊å·ãªãã«å€æãããŸãã ãããã£ãŠãå€æ°cuãæ°å€0ããå°ããå ŽåããªãŒããŒãããŒãçºçããŸãã ãã®å Žåãã³ãŒãã¯æ£ããåäœããç®çãæãããŸãïŒæåãæ°åã§ãããã©ããããã§ãã¯ããŸãïŒããã³ãŒãã§ãã®ãããªããªãã¯ãäžå¿
èŠã«äœ¿çšããçç±ã¯ãªããšæããŸãã ã«ãŒãã¯ã0ãããäœæãã笊å·ãªãã§æžãŸãããšãã§ããŸãã
ãã€ã³ã¿ãŒã¯NULLã«åæåãããã©ãã§ãå€æŽããããããã«äœ¿çšãããŸã
char_u *retval = NULL;
ã¢ãã©ã€ã¶ãŒã®èŠåïŒ
V595 ïŒ1ïŒnullptrã«å¯ŸããŠæ€èšŒãããåã«ããretvalããã€ã³ã¿ãŒã䜿çšãããŸããã è¡ã確èªããŠãã ããïŒ7903ã7907ã
ããã¯ãã§ã«ééãã®ããã§ãã ã¢ãã©ã€ã¶ãŒã¯äžå¿
èŠãªãã§ãã¯ã«ã€ããŠè©±ããŸãããå®éã«ã¯ãåé¡ã¯äž»ã«å¥ã®ãã®ã«ãããŸãã retvalãã€ã³ã¿ãŒã¯0ã«åæåããããã®é¢æ°ã§å€ãå€ããåäžã®å Žæã¯èŠã€ãããŸããã§ããã åæã«ãstrncpyã¯äœåºŠãå®è¡ãããŸãã ãã®åŸã圌ã¯çªç¶NULLããã§ãã¯ããããšã«ããŸããã
reallocã®å®å
šã§ãªã䜿çš
l->t = vim_realloc(l->t, newlen * sizeof(nfa_thread_T));
V701 ïŒ2ïŒã¢ãã©ã€ã¶ãŒã®
èŠå reallocïŒïŒãªãŒã¯ã®å¯èœæ§ïŒreallocïŒïŒãã¡ã¢ãªã®å²ãåœãŠã«å€±æãããšãå
ã®ãã€ã³ã¿ãŒ 'l-> t'ã倱ãããŸãã reallocïŒïŒãäžæãã€ã³ã¿ãŒã«å²ãåœãŠãããšãæ€èšããŠãã ããã
å€ãã®ãããžã§ã¯ãã§ããããééãã§ãããã®ãšã©ãŒã®æ¬è³ªã¯ãã¢ãã©ã€ã¶ãŒã¡ãã»ãŒãžã§è©³ãã説æãããŠããŸãã 幞ããªããšã«ãã³ã¡ã³ãããå€æãããšãããã¯ããã«ä¿®æ£ãããŸãã Vimã³ãŒãã®ä»ã®å Žæã§ã¯ãreallocãæ£ãã䜿çšãããŠããŸãã
誀æ€ç¥ã®ããã€ãã®äŸ
if (ireg_icombine && len == 0) { if (len == 0 && sta->c != curc) result = FAIL;
V560 ïŒ2ïŒæ¡ä»¶åŒã®äžéšã¯åžžã«çã§ãïŒlen == 0ã
V571 ïŒ2ïŒå®æçãªãã§ãã¯ã ãlen == 0ãæ¡ä»¶ã¯ã6032è¡ç®ã§æ¢ã«æ€èšŒãããŠããŸãã
if (VIsual_active) { if (VIsual_active && (VIsual_mode != wp->w_old_visual_mode || type == INVERTED_ALL))
V571 ïŒ2ïŒå®æçãªãã§ãã¯ã ãVIsual_activeãæ¡ä»¶ã¯ã1515è¡ç®ã§ãã§ã«æ€èšŒãããŠããŸãã
åæ§ã®ãã§ãã¯ãè¡ãå Žæãããã«ããã€ããããŸãã 圌ãã¯è°è«ã«ããŸãé¢å¿ã瀺ãããã»ãšãã©ã®å Žå害ãäžããŸããããå Žåã«ãã£ãŠã¯è«ççãªééããé ãããå¯èœæ§ãããããããã®ãããªå Žæã«æ³šæãæãå¿
èŠããããŸãã
ã¡ããã©æªãã³ãŒããæåã®ãã€ãã ããæ§é ã«èšå
¥ãããŠããŸã
#ifdef FEAT_TAG_BINS vim_memset(&search_info, 0, (size_t)1); #endif
V512 ïŒ1ïŒ 'memset'é¢æ°ãåŒã³åºããšããããã¡ãŒ 'ïŒsearch_info'ã®ã¢ã³ããŒãããŒãçºçããŸãã
解説ã¯ãªããããè¡ãããã®ãã説æããŠããŸãããæ¹æ³ã¯ããªãå¥åŠã§ãã ã³ã³ãã€ã©ã®èŠåãåé¿ããããã®ããå€ãã®çŸããæ¹æ³ããããŸãã
çãååã䜿çšããæªãç¿æ
£
extern char *UP, *BC, PC;
ã¢ãã©ã€ã¶ãŒã®èŠåïŒ
V707 ïŒ2ïŒã°ããŒãã«å€æ°ã«çãååãä»ããããšã¯æªãç¿æ
£ãšèŠãªãããŸãã ãUPãããBCãããPCãå€æ°ã®ååãå€æŽããããšããå§ãããŸãã
ããã¯ãVimã³ãŒãã§ã¯çããããšã§ã¯ãããŸããã å€ãã®å€æ°ã«ã¯1æåãš2æåã®ååãä»ããŠãããå€ãã®å Žåã¹ã³ãŒããåºãããã®å Žåã¯äžè¬çã«ã°ããŒãã«ã§ãã 500è¡ä»¥äžã®é·ãã®é¢æ°ãšçµã¿åããããšãéåžžã«èªã¿ã«ããã³ãŒãã«ãªããŸãã
ç¶æ
ã®å¥åŠãªå²ãåœãŠi
int i = 2;
ã¢ãã©ã€ã¶ãŒã®èŠåïŒ
V560 ïŒ2ïŒæ¡ä»¶åŒã®äžéšã¯åžžã«çã§ãïŒïŒi = 1ïŒ== 1ã
ãããééããªã®ããiã1ã«å²ãåœãŠãå¥åŠãªæ¹æ³ãªã®ããå€æããã®ã¯å°é£ã§ãã ãã®ããã«æ確ã«æžãããšã¯äŸ¡å€ããããŸããã
ãããã«
çµè«ãšããŠãWindowsãã·ã³ã䜿çšããã«GNU Linuxã§PVS-Studioã䜿çšããŠãããžã§ã¯ãããã§ãã¯ããããšã¯ãéåžžã«çŸå®çã§éåžžã«äŸ¿å©ã§ãã Vimããã®æ°ãæäŒããŸãããæåã«åæ§ã®æ€èšŒãã¹ããåããŸããã
ãã®èšäºã¯è±èªã§ãã
è±èªã話ãèŽè¡ãšãã®èšäºãå
±æãããå Žåã¯ã翻蚳ãžã®ãªã³ã¯ã䜿çšããŠãã ããïŒã¢ã³ãã³ãã«ã¬ãã
GNU / Linuxã§ã®PVS-Studioã«ããVimã®åæ ã