خب فرض کنید مثل من شما از ویم یا نئوویم هم برای ویرایش فایلهای جاوا اسکریپت و هم فایلهای پایتون استفاده میکنید.طبیعتا برای هر زبان باید تنظیمات خاصی برای ادیتورتون در نظر بگیرید. اینجا میخوام بهتون بگم چطور برای هر نوع فایل در ویم تنظیمات دندانهگذاری را مشخص بکنید.برای فایلهای اچتیامال و جاوا اسکریپت و سیاساس هر لول یا سطح دندانه گذاری باید ۲ و برای فایلهای پایتون،راست،سی و سیپلاسپلاس این سطح بایست ۴ باشد یعنی هر سطح دندانهگزاری به اندازه ۴ فاصله باشد.
این راهنمای کوچک میتواند به شما کمک کند تا بفهمید فایل تنظیمات در سیستمعامل و ویرایشگر شما کجاست:
Neovim, Linux/Unix-like -> ~/.config/nvim/init.vim
Neovim, Windows -> ~/AppData/Local/nvim/init.vim
Vim, Linux/Unix-like -> ~/.vimrc
Vim, Windows -> ~/_vimrc
البته خودم روی ویندوز نیستم پس اگر چیزی اینجا در مورد ویندوز اشتباه هست توی کامنتها اطلاع بدید.در راهنمای بالا علامت مد یا تیلده(~) به معنی دایرکتوری خانه میباشد.
خب من این دستورات را به فایلی که ادیتورم ازش تنظیمات را میخواند اضافه میکنم:
autocmd FileType html,css,javascript setlocal shiftwidth=2 expandtab
autocmd FileType c,cpp,py,rs setlocal shiftwidth=4 expandtab
دستور autocmd زمانی که اتفاق یا رویداد خاصی رخ میدهد دستوراتی را که به آن میدهیم اجرا میکند.اینجا من به ویم گفتم اگر فایلی که باز شده نوعش اچتیامال یا جاوا اسکریپت یا سیاساس بود سطح دندانهگذاری را برابر ۲ و اگر نوع فایل پایتون،راست،سی یا سیپلاسپلاس بود سطح را برابر ۴ قرار دهد.
در واقع autocmd دستور setlocal را با آرگامونهای داده شده اجرا میکند و setlocal تنظیماتی را تنها برای فایل فعلی(یا دقیقتر بافر باز شده فعلی) اعمال میکند.