قبلا توی آموزش ویمی که ضبط کردم یک شیوه اجرای اسکریپتها و … رو با کلید F5گفتم که با زدن اون کلید ترمینال جداگانهای باز میشه و اسکریپت اجرا میشه و … . امروز یک راه بهتر رو براش معرفی خواهم کرد.
برای اینکار اول باید پلاگین asyncrun رو نصب کنید. شیوه نصب رو در قسمت نهم ویدیوهای آموزشی ویم توضیح دادم. این لینک صفحه گیتهاب این پلاگین هست.(اگه دوست داشتید بهش ستاره بدید).راهنمایی که نوشتم رو بخونید و بعد راهنما گیت هابش رو بخونید. خیلی کامل هست. صرفا برای شروع، شیوه اجرای اسکریپت بش و پایتون رو اینجا توضیح میدم. برای زبانهای دیگه بعد از خوندن راهنمای من! به راهنمای خودش مراجعه کنید.
بعد از نصب پلاگین برای پایتون با این دستور میتونید اسکریپتتون رو در ویم اجرا کنید:
:AsyncRun -raw python %
که معنای % همون فایلی هست که در ویم باز کردید.
بهتر هست براش کلید میانبر یا شرتکات تعریف کنیم وبذاریمش توی vimrc که راحت باشیم. من F5 رو ترجیح میدم. باید F5 رو برای دستور بالا map کنم.
noremap <F5> :AsyncRun -raw python % <CR>
دستور بالا یک مشکل بزرگ داره! اگر فایل من زبان C بود و دوست داشتم همون F5 رو برای کامپایل زبان C بگذارم یا برای اجرای یک اسکریپت Bash بگذارم تکلیف چیه!؟
باید از autocmd و FileType برای شناخت فایل و اجرای هوشمند دستور بالا استفاده کنم. حالا دستور رو به شکل پایین تغییر میدیم:
:autocmd FileType python :noremap <F5> :AsyncRun -raw python % <CR>
معنای خط بالا این هست که اگر فایل پایتون بود اون دستور رو اجرا کن.
نکته! باید بافر پایتون رو غیرفعال کنیم! برای اینکار این خط رو به vimrc اضافه کنید:
:let $PYTHONUNBUFFERED=1
حالا کار مشابهی هم برای اجرای اسکریپت های بش میکنیم:
:autocmd FileType sh :noremap <F5> :AsyncRun bash % <CR>
با همین روند میتونید برای تمام زبانهای مورد استفادتون دستور کامپایل یا اجرای اسکریپت بنویسید 🙂
حالا ما تمایل داریم که یک پنجره در پایین باز بشه و نتایج رو ببینیم! برای اینکار باید این خط رو به vimrc اضافه کنیم:
:let g:asyncrun_open = 8
برای بستن پنجره پایین میتونید با ctrl+w و دکمه جهت کیبرد روی اون پنجره برید و ببندیدش! من در ویم خودم کلیپ F12 رو برای بستن بافر اضافه کردم:
:map <F12> :bw!<CR>
بعد از اضافه کردن اینها به vimrc میتونید با F5 اسکریپت خودتون رو اجرا کنید. برای فهمیدن جزئیات و توضیحات بیشتر لطفا به صفحه گیت هاب خود پروژه مراجعه کنید.
موفق باشید 🙂
10 thoughts on “چگونه برای کامپایل فایلها یا اجرای اسکریپتها در Vim کلید میانبر ایجاد کنیم؟”
سلام.
ببشخید من تمام کار هایی که گفتید رو انجام دادم ولی بعد از اینکه برای پایتون F5 می زنم همچین اروری می ده:
/bin/bash: line 1: python: command not found
ممنونم
مشکلی که داره اینپوت قبول نمیکنه
و فکوس نمیکنه روی پنجرهای که باز میکنه. یعنی وقتی میزنم بسته بشه فایل اصلی رو میبنده
بقیه موارد خوبه بدون پلاگین هم همچین چیزی داشتم.
ممنون خیلی بدردبخور بود (:
🌹🌹🌹
سلام آقای امیرصمیمی عزیز من طبق آموزش جلو رفتم و کد هایی که فرمودید رو وارد کردم لیکن بعد از run کردن کد ارور command not found رو میده سیستم عامل من اوبونتو ممنون میشم راهنماییم کنید
سلام
این دستور رو در قسمت command ویم اجرا کنید و بگید چه خروجی میده:
AsyncRun echo "hello"
فوقالعاده بود ،واقعاً ازتون ممنونم 🙏🏻🌷❤️
خواهش میکنم🌹🌹