یونس محمودی
یونس محمودی
خواندن ۴ دقیقه·۷ ماه پیش

نحوه کانفیگ سریع Vim برای گولنگ

اگر این مقاله رو دارید می‌خونید، احتمالاً تو کار Go هستید و دنبال اینید که یه ادیتور یا IDE برای توسعه گولنگ انتخاب کنید.

Vim with gophers
Vim with gophers

حالا چرا ویم؟

حتما اولین چیزایی که به ذهنتون خطور می‌کنه VSCode و یا شایدم گولند باشه؛ که البته خیلیم اتفاقا باحال و خفنن🔥

ولی خب حالا چرا ویم؟؟؟؟

اگه بخوایم خیلی کوتاه بهش بپردازیم به این دلایل که:

  • ویم تو اکثر یونیکس‌بیس سیستم‌ها به شکل دیفالت هستش یا این که خیلی راحت و سریع میتونید نصبش کنید
  • خیلی راحت و سریع توسط اون فایل ~/.vimrc ش میتونید برای زبون‌ها و کاربردهای مختلف کانفیگش کنید
  • نیازتون به ماوس کم میشه و اکثر کارتون با کیبورد راه میفته؛ می‌تونید سرچ کنید در موردش و اون حالات رو با هم ترکیب کنید واسه همین خیلی سریعن باهاش (می‌تونید اون سه تا ویدیوی جادی رو ببینید. برای تمرین کردنش هم اگه تو اوبونتویید vimtutor رو ران کنید و برید توش باهاش ور برید و تمریناش رو انجام بدین)
  • اگه مدیر سیستم باشید؛ یا هر اسم دیگه‌ای :)‌ وقتی SSH می‌کنید به یه سرور احتمالا تنها چیزی که به دردتون میخوره همین ویمه و اونجا دیگه خبری از IDEهای خوشگلمون نیست!

خب با این مقدمه بریم سراغ اصل مطلب بعد از این که ویم رو داشتین دیفالت رو سیستمتون و یا خیلی راحت با پکیج‌منیجرتون نصبش کردین.

ما توی این پست قراره از سایت فوق خفن https://vim-bootstrap.com استفاده کنیم که اینم گیت‌هابشونه که اگه دوس داشتید، می‌تونید بهشون استار بدین یا کانتریبیوت کنید.

vim-bootstrap
vim-bootstrap


دیگه از اینجا به بعدشم که آسوونه دیگه میرید توی سایتشون و اسکرول می‌کنید پایین و زبان/زبان‌های مورد نظرتون رو سلکت می‌کنید و بعدش پایین اگه احیانا فریمورک می‌خواید(البته فعلا ساپوت از ویو و svelte رو داره)، بعدش تم مورد نظرتون مثلا من شخصا با همون molokai اوکیم و در نهایت ادیتورتون که می‌خواید کانفیگ براش جنریت بشه رو از بین Vim و Neovim انتخاب می‌کنید و اون Generate! رو می‌زنید و تمام...

بهتون یه فایل generate.vim میده.


بعدش میرید اون جایی که فایل generate.vimتون موجوده با همون cdاینا.... با کامند زیر این فایل رو به اصلی خودش برمی‌گردونید و اسمشم میذارید .vimrc:

mv ~/Downloads/generate.vim ~/.vimrc

بعد که منتقل کردین اولین باری که ویمتون رو ران کنید؛ یعنی:

vim

یا اگه نشد،‌ با این پایینی:

vim +PlugInstall +qall

که همون بریم تو ویم خودمون و بزنیم: :PlugInstall ولی این مدلی... و تمام دیگه باید صبر کنید تا تمام پلاگین‌ها رو براتون نصب کنه و اون shortcut رو براتون ست می‌کنه. که مهم‌ترینشون واسه ما همون vim-go و NERDtree که فایل اکسپلور محبوبه ویمه...

راه دوم

یه راهم دیگه‌ام هست،(واسه کسایی که خیلی می‌خارن و نمی‌خوان از روش اول استفاده کنن یا می‌خوان بدونن دقیقا چی نصب می‌کنن) که میتونید خودتون دستی از اینجا بیاید و vim-go رو نصب کنید؛ که خود این vim-go خیلی از چیزایی که ما واسه کار با گو لازیم داریم رو تو خودش داره مثل:‌ syntax highlighting و folding، تکمیل خودکار با کمک gopls و همچنین دستورات سریع که دیگه نمیخواد از ترمینال برید بیرون و توی همون ویم میتونید رانشون کنید مثل:

  • :GoRun Executes the main package using go run
  • :GoBuild Builds the current package using go build
  • :GoTest Runs package tests using go test

و خییلی منطقیه که بعد از نصب vim-go بیاید و NERDTree رو هم خیلی راحت با اضافه کردن 'Plugpreservim/nerdtree' به بخش پلاگین‌های فایل .vimrc و بعدش رفتین تو ویم با ران کردن :PlugInstall راحت یه فایل‌سیستم اکسپلورر خفن رو نصب کنید و با F2 و F3 هم ازش استفاده کنید.

و Auto-Completion خودکار

احتمالا اگه مثه من از بقیه IDEها مثل VSCode یا گولند اومده باشید، خیلی انتظار دارید که با نصب go-vim حالا چه از طریق روش اول و یا روش دوم وقتی . می‌زنید خودش بهتون یه سری پیشنهاداتی بده. که اینجا این‌طور نیست :)

اینجا این مدلیه که برای هر جا که نیاز به پیشنهاد داشته باشیم؛ چون دیگه بزرگ شدیم و آقا یا خانووم شدیم برا خودمون کافیه <ctrl+x><ctrl+o> یعنی اول کنترل x و بعدش کنترل o رو بزنیم تا بهمون اون لیست رو نشون بده.

ولی اگه ترجیح میدین که به طور خودکار این لیست بهتون نمایش داده بشه؛ خبر خوب این که برای این منظور هم توی ویم پلاگین داریم و completor برای این کاره؛ که با دستور زیر میتونید ریپوشو از گیت کلون کنید و بذارید سرجای اصلی خودش:

git clone https://github.com/maralla/completor.vim.git ~/.vim/pack/plugins/start/completor.vim

یا این که مثل قبل با Vim-plug یا واندل میتونیم نصبش کنیم؛‌ این شکلی که این بخش رو اضافه کنیم:

" vim-plug or vundle
Plug 'maralla/completor.vim'

و همچنین اضافه کردن خطوط زیر به فایل .vimrc :

" Enable lsp for go by using gopls
let g:completor_filetype_map = {}
let g:completor_filetype_map.go = {'ft': 'lsp', 'cmd': 'gopls -remote=auto'}"

بعدش دیگه احتمالا اگه برین توی ویمتون و بزنید fmt.Pri خودش بهتون میگه Print میخواید Println یا Printf...




آها راستی ویمتونم فک کنم باید از یه ورژنی بالاتر می‌بود احتمالا از هشت!!! اگه نیست حتما آپدیت کنید!!!

اگه پلاگینای خوشگل‌تر یا تم باحال‌تر یا هر چیز خفنیم می‌شناسید، این زیر تو کامنتا بهمون بگید ;)

گوgoویمvim
علاقه‌مند به کامپیوتر و تِک و این سوسول‌بازیا
شاید از این پست‌ها خوشتان بیاید