Ëõ½øÓà tab ÖƱí·û»¹ÊÇ¿Õ¸ñ£¬Õâ²»ÊǸöÎÊÌ⣬¾ÍÏñ python ÓÃËĸö¿Õ¸ñÀ´Ëõ½øÒ»Ñù£¬ÕâÊÇÒª¿´¸öÈËϲºÃµÄ¡£ÔÚ Vim ÖпÉÒԺܷ½±ãµÄ¸ù¾Ý²»Í¬µÄÎļþÀàÐÍÀ´ÉèÖÃʹÓà tab ÖƱí·û»òÕß¿Õ¸ñ£¬»¹¿ÉÒÔÉèÖó¤¶È£¬·Ç³£Áé»î¡£
1¡¢Ê×ÏÈÀ´¿´ÈçºÎÉ趨 tab µÄ¿í¶ÈÒÔ¼°ÈçºÎÈ·¶¨Óà tab ÖƱí·û»¹ÊÇ¿Õ¸ñÀ´±íʾһ¸öËõ½ø£º
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab / expandtab
˵Ã÷£º
ÆäÖÐ tabstop
±íʾһ¸ö tab ÏÔʾ³öÀ´ÊǶàÉÙ¸ö¿Õ¸ñµÄ³¤¶È£¬Ä¬ÈÏ 8¡£
softtabstop
±íʾÔÚ±à¼Ä£Ê½µÄʱºò°´Í˸ñ¼üµÄʱºòÍË»ØËõ½øµÄ³¤¶È£¬µ±Ê¹Óà expandtab
ʱÌرðÓÐÓá£
shiftwidth
±íʾÿһ¼¶Ëõ½øµÄ³¤¶È£¬Ò»°ãÉèÖóɸú softtabstop
Ò»Ñù¡£
µ±ÉèÖÃ³É expandtab
ʱ£¬Ëõ½øÓÿոñÀ´±íʾ£¬noexpandtab
ÔòÊÇÓÃÖƱí·û±íʾһ¸öËõ½ø¡£
2¡¢¸ù¾ÝÎļþÀàÐÍÀ´ÉèÖà tab£º
ÓÐЩʱºòÏëΪijЩÀàÐ͵ÄÎļþÉèÖò»Í¬µÄ tab ±íÏÖ£¬Èç python ÓÃËĸö¿Õ¸ñÀ´±íʾһ¸öËõ½ø£¬ÔÚÎÒÃÇµÄ javascript Ô¼¶¨ÖÐÒ²ÊÇÓÃËĸö¿Õ¸ñÀ´±íʾËõ½ø£¬¶ø HTML ºÍ CSS Ôòϲ»¶Óà tab ÖƱí·ûÀ´Ëõ½ø£¬ÄÇô¿ÉÒÔ×öÈçÏÂÉèÖãº
if has("autocmd")
autocmd FileType javascript setlocal ts=4 sts=4 sw=4 expandtab
autocmd FileType python setlocal ts=4 sts=4 sw=4 expandtabendif
ÕâÑùµ±¿ª´òµÄÎļþÊÇ .js .py
µÄ£¬¶¼»áÓÃËĸö¿Õ¸ñÀ´Ëõ½ø¡£
3¡¢ÓÃÌØÊâ·ûºÅÀ´±íʾ tab ÖƱí·û£¨Ôõô֪µÀ´úÂëÀïµ½µ×ÊÇ[SPACE]»¹ÊÇ[TAB]£©£º
listģʽ¿É½«²»¿ÉÒÔ´òÓ¡µÄ×Ö·ûÒÔ^´úÌ棬Èç[TAB]ºÍ[SPACE]µÈ¿Õ°××Ö·û£¬Í¬Ê±Ã¿ÐÐÄ©Ìí¼Ó$
set list
ʹÓÃlistcharsÀ´¸Ä±älistģʽÏÂÏÔʾµÄ×Ö·û listchars¹ØÓÚ[TAB]µÄÉèÖÃĬÈÏÄ£°åΪtab:xy,ÆäÖÐxÖ»ÏÔʾһ´Î£¬yÔòÕ¼ÓÐÊ£ÓàµÄ¿Õ¼ä
set listchars=tab:>-,eol:$, ͬʱtabĬÈÏÕ¼4¸ö¿Õ¸ñʱ£¬tab¾ÍÏÔʾΪ>¡ª£¬Ã¿ÐÐĩβÏÔʾΪ$
ÔÚ Vim ÖпÉÒÔÓÃÌØÊâµÄ·ûºÅÀ´±íʾһ¸ö tab ÖƱí·û£¬ÕâÑù tab ÖƱí·ûºÍ¿Õ¸ñ¾Í¿ÉÒÔºÜÈÝÒ×µÄÇø·Ö¿´À´ÁË£¬ÈçÏÂͼ£º
ÔÚ vimrc ÖмÓÈëÒÔÏ´úÂë¾Í¿ÉÒÔÁË£º
set list
set listchars=
tab:>-,eol:$
4¡¢ÆäËû³£ÓÃÉèÖãº
ÔÚ.vimrcÖÐÌí¼ÓÒÔÏ´úÂëºó£¬ÖØÆôvim¼´¿ÉʵÏÖ°´TAB²úÉú4¸ö¿Õ¸ñ£º
set ts=4 (×¢£ºtsÊÇtabstopµÄËõд£¬ÉèTAB¿í4¸ö¿Õ¸ñ)
set expandtab
¶ÔÓÚÒѱ£´æµÄÎļþ£¬¿ÉÒÔʹÓÃÏÂÃæµÄ·½·¨½øÐпոñºÍTABµÄÌæ»»£º
TABÌ滻Ϊ¿Õ¸ñ£º
:set ts=4
:set expandtab
:%retab!
¿Õ¸ñÌ滻ΪTAB£º
:set ts=4
:set noexpandtab
:%retab!
¼Ó!ÊÇÓÃÓÚ´¦Àí·Ç¿Õ°××Ö·ûÖ®ºóµÄTAB£¬¼´ËùÓеÄTAB£¬Èô²»¼Ó!£¬ÔòÖ»´¦ÀíÐÐÊ×µÄTAB¡£
vimwikiµÄ½éÉÜ
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
²Î¿¼Îĵµ:
http://tedlogan.com/techblog3.html
http://www.imkeke.net/vim-2/vim-tab-config.html
ÆÀÂÛ