هاشم کامروا
هاشم کامروا
خواندن ۲ دقیقه·۳ سال پیش

ویرایش فایل‌های yaml با vim

امروزه فرمت yaml تبدیل شده به یک استاندارد فایل‌های کانفیگ اکثر برنامه‌ها .پروژه هایی مانند Ansible kubernetes ، docker-compose و ... از این فرمت فایل برای پیکربندی استفاده می‌کنند.ویرایش این فایل‌ها چالش اکثر مدیران سیستم ،مهندسین Devops و حتی برنامه نویس ها است، دلیلش هم فاصله‌گذاری‌ها و یا همون indent گذاری هست.

اگر تو محیط گرافیکی باشید مشکل چندانی با این قضیه ندارید چون اکثر IDE ‌ها فرمت yaml ‌رو می‌شناسند و فاصله ‌گذاری رو برای شما انجام می‌دهد. حالا اگر روی سرور خواستیم یک فایل رو ویرایش کنیم که به فقط یه ترمینال داریم چیکار کنیم؟

توی این مقاله من چندتا قابلیت دیگه vim ‌رو بهتون معرفی می‌کنم که کار رو راحت می‌کنه و استفاده از vim ‌رو لذت بخش‌تر .

vim syntax highlighting
vim syntax highlighting

ویرایشگر vim تنظیمات اش رو از فایل vimrc میخونه که توی یکی از این مسیر می تونید اون رو پیدا کنید.

/etc/vim/vimrc ~/.vimrc

مرحله اول فایل vimrc رو باز کنید و این کد رو قرار بدید.

syntax on

اگر این فایل وجود نداشت مشکلی نداره و می‌تونید با این دستور فایل رو ایجاد کنید. توجه داشته باشید این فایل با . شروع میشه که یعنی یک فایل مخفی هست.

touch ~/.vimrc

ویرایشگر vim هر باری که اجرا میشه اول میاد محتویات این فایل رو چک می‌کنه و دستورات اون رو اجرا میکنه.
اگر روی سرور شما نسخه‌های ماقبل vim 8 نصب باشه مثل centos 7 احتمالا کار نمی‌کنه و شما باید اول پکیج vim-enhanced رو نصب کنید

yum install vim-enhanced

تنظیمات زیر رو هم به فایل .vimrc اضافه کنید.

filetype indent plugin on set ruler autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab autoindent

با دستور اول indenting یا همون فاصله گذاری تو در تو رو فعال میکنیم

set ruler :

‌شماره سطر و ستون رو نمایش میده
خط سوم برای فایل های yaml میاد و این موارد رو تغییر میده

ts=2

این میگه حرکت کلید تب به اندازی دوتا کاراکتر باشه

sts=2

این میگه اگه دوبار space رو زدی انگاری یه کلید tap رو زده باشی

set sw=2 :

توی vim اگر دوبار این >> کاراکتر رو بزنی خط رو شیفت میده. حالا این دستور میگه به اندازه دو تا اسپیس شیفت رو انجام بده

set expandtab

تب رو تبدیل به اسپیس میکنه.
اگر دوست داشته باشید که خطوط شماره گذای بشه این کد رو به فایل vimrc اضافه کنید.

set number

مرحله بعدی نصب یه پلاگین کاربردی هست که توی ویرایش فایل های vim خیلی بدردخوره هست.این دوتا دستور رو برای نصب پلاگین indentLine وارد کنید

git clone https://github.com/Yggdroot/indentLine.git ~/.vim/pack/vendor/start/indentLine
vim -u NONE -c &quothelptags ~/.vim/pack/vendor/start/indentLine/doc&quot -c &quotq&quot

بعدش توی فایل vimrc این کد رو هم اضافه کنید.با این کد هر دوتا فاصله‌ای که وارد کنید یه کاراکتر "|" نمایش می‌ده.این نکته رو هم بگم که فقط این کاراکتر رو نمایش می‌ده و توی فایل این کاراکتر رو اضافه نمی‌کنه

let g:indentLine_char = '|'

میتونید یه لیست از کاراکترها رو هم بهش بدید.اینطوری به ترتیب کاراکترها رو نمایش می‌ده که هم خواناتر میشه و هم خشکل تر

let g:indentLine_char_list = ['|'، ':'،'.']
ویرایش فایل‌های yaml با vim
ویرایش فایل‌های yaml با vim

توی اینجا میتونید تنظیمات کامل پلاگین رو مشاهده کنید

https://github.com/Yggdroot/indentLine

ویرایشگر vim قابلیت های زیادی داره و با یه سرچ ساده میتونید کلی پلاگین و کانفیگ جالب و کاربردی توی اینترنت پیدا کنید.
امیدوارم این مقاله براتون مفید بوده باشه.اگر هم خوشتون اومد میتونید لایک فراموش نشه.

vivimyaml
شاید از این پست‌ها خوشتان بیاید