ویرایشگر های vi و vim از اون برنامههایی هستن که نمی تونم باهاشون کنار بیام.
از بد حادثه ویرایشگر پیشفرض virsh هم vi هست :-|
قاعدتاً باید ویرایشگر پیشفرض ترجیحی کاربر رو از توی متغیر محلی EDITOR بخونه یا بشه اون رو به داخل برنامه پاس داد. حتی توی man خودش توصیه کرده اوّل از متغیر VISUAL استفاده بشه و اگر نشد از متغیر EDITOR. ولی من نتونستم، برای همین رفتم سراغ یه راه حل دیگه. این راه حل به این شکل هست که قبل از دستور virsh همون متغیر محلی رو تنظیم کنیم یعنی به شکل زیر:
EDITOR=emacs virsh
این جواب میده، ولی برای اینکه هر بار نوشتن این یه خورده برای ماها سخته و از طرفی راهحلی مثل استفاده از alias داریم میریم سراغش یعنی یه alias به شکل زیر مینویسیم براش:
alias virsh=”EDITOR=emacs virsh ”
خب این خیلی بهتر شد، ولی هنوز یه جای کار میلنگه!! emacs به شکل گرافیکی اجرا خواهد شد!! خب اگه شما هم مثل من دوست ندارید میتونید از آپشن
–no-window-system
استفاده کنید یعنی به شکل زیر
alias virsh=”EDITOR=emacs –no-window-system virsh”
ولی یه خبر بد! این alias اجرا نمیشه! به خاطر همین آپشنی که زدیم!! برای حلش یه اسکریپت با محتویات
#!/bin/bash
emacs –no-window-system $1
نوشته و اون رو در مسیری که درون متغیر محلی PATH وجود داشته باشه با اسم pemacs ذخیره میکنیم. البته یادمون باشه که بتونه اجرا بشه. دوباره میریم سراغ alias و اون رو به شکل زیر تغییر میدیم.
alias virsh=”EDITOR=pemacs virsh”
ترمینال رو دوباره اجرا کنیم (یا بر حسب شرایط محیط کاربریتون کاری کنید که alias جدید شناخته بشه) و دستور virsh رو اجرا کرده و تستش میکنیم. باید کار بکنه!!
نکته: اگر توی اسکریپت pemacs عبارت
$1
رو فراموش کنید هنگام اجرای دستور edit از طریق virsh همیشه یه فایل جدید رو ویرایش خواهید کرد و فکر نمیکنم هدفتون این باشه! پس قبل از استفاده یک بار دیگه کدتون رو چک کنید.
Vahit