
ویرایشگر vi ، یک ویرایشگر قدرتمند و سبک برای فایلهای متنی در سیستم عامل لینوکس است. و در بسیاری از نسخههای لینوکس به طور پیشفرض نصب گردیده است. در ابتدا، کار کردن با این ادیتور به نظر سخت و گیجکننده به نظر میرسد. در صورتی که مدتی به روش کار کردن با آن آشنا شوید، از تواناییهای این ویرایشگر لذت خواهید برد. به علت کم حجم و سبک بودن، این ادیتور، برای تنظیم و تغییر کانفیگ ماشینهای لینوکس از راه دور استفاده میشود. نسخهی پیشرفتهتر این ویرایشگر به نام VIM یا Vi IMproved است. از ویژگیهای این ویرایشگر موارد زیر را میتوان بیان نمود:
- ویرایشگر vi بر روی اکثر توزیع های لینوکس نصب گردیده است.
- این ویرایشگر بر روی نسخههای مختلف یونیکس نیز استفاده میشود.
- ویرایشگری قدرتمند و سبک میباشد.
- بر خلاف ظاهر اولیه، یک ادیتور کاربر پسند، مخصوصا برای کاربران حرفهای میباشد.
شروع کار با Vi
برای شروع کار با ویرایشگر vi در صفحهی ترمینال لینوکس دستور vi را وارد میکنیم. ساختار دستور vi به صورت زیر است:
1 2 3 |
kazemian@upgradeit:~$ vi File-Name |
مثلا برای ویرایش فایل test.txt دستور زیر را در ترمینال وارد مینماییم. در صورتی که فایل test.txt وجود نداشته باشد، یک فایل با مقدار صفر ایجاد میگردد.
1 2 3 |
kazemian@upgradeit:~$ vi test.txt |
با اجرای دستور فوق صفحهی ویرایشگر باز میشود. هر خط از ویرایشگر که هنوز استفاده نشده باشد با کاراکتر ~ نشان داده میشود. در صورتی که در هر سطری کاراکتر فاصله یا کاراکتر TAB و یا نوشتهی متنی قرار داشته باشد علامت ~ یا Tilde حذف میگردد.

حالتها یا مدهای مختلف vi
vi دارای سه حالت یا مد میباشد:
- مد دستور یا Command mode
- مد ویرایش، درج یا Insert mode
- مد آخرین خط یا Last Line mode
.
مد دستور یا Command mode
وقتی ویرایشگر vi اجرا میشود، وارد مد دستور میگردد. در این مد، هر کلیدی که فشار داده شود، به عنوان یک دستور دیده میگردد. برای رفتن، به مد ویرایش، یا به مد last line، باید در مد دستور باشیم. توجه داشته باشید که ویرایشگر vi، حروف بزرگ و کوچک برای آن فرق میکند و اصطلاحا Case Sensitive است.
برای سوییچ به مدها از کلیدهای زیر استفاده میگردد:
کلید i | برای رفتن به مد ویرایش یا Insert mode استفاده میگردد. |
کلید [:] | برای رفتن به مد آخرین خط و یا Last Line mode استفاده میگردد. |
کلید ESC | برای خارج شدن از دو مد Insert و مد Last Line mode و رفتن به مد دستور استفاده میگردد. |
هر موقع که شک داشتیم در چه مدی قرار داریم، با زدن ESC در مد دستور قرار میگیریم.
حرکت در چهار جهت در فایل متنی
کلید j | برای حرکت نشانگر، به اندارهی یک خط، رو به پایین |
کلید k | برای حرکت نشانگر، به اندارهی یک خط، رو به بالا |
کلید l | برای حرکت نشانگر، به اندازهی یک کاراکتر، رو به راست |
کلید h | برای حرکت نشانگر، به اندازهی یک کاراکتر، رو به چپ |
برای اینکه هر عمل متناظر به فشردن یک کلید به تعداد دلخواه تکرار شود، قبل از کاراکتر، عدد مورد نظر را قرار میدهیم. مثلا برای اینکه حرکت نشانگر پنج خط رو به پایین حرکت نماید، عبارت 5j را تایپ میکنیم.
علاوه بر کلیدهای ذکر شده از کلیدهای جهتدار نیز برای حرکت در جهتهای اصلی در مد دستور، میتوانیم استفاده نماییم.
راههای دیگر پیمایش در یک فایل متنی
0 یا I | انتقال کرسر به ابتدای خط |
$ | انتقال کرسر به انتهای خط |
w | انتقال کرسر به کلمهی بعد |
b | انتقال کرسر به کلمهی قبل |
) | انتقال کرسر به ابتدای جملهی جاری |
) | انتقال کرسر به ابتدای جملهی بعدی |
{ | انتقال کرسر به پاراگراف بعد |
} | انتقال کرسر به پاراگراف قبل |
[[ | انتقال کرسر به قسمت بعد |
]] | انتقال کرسر به قسمت قبل |
1G | انتقال کرسر به خط اول فایل |
G | انتقال کرسر به خط انتهایی فایل |
nG | انتقال کرسر به n امین خط فایل |
مد ویرایش یا درج Insert mode
در مد درج یا ویرایش، عملیات ایجاد و تغییر متن را در فایل انجام میدهیم. برای ورود به حالت ویرایش، کرسر را با کلیدهای ذکر شده و یا کلیدهای جهت دار به خط و مکان مورد نظر برده، سپس کلید i را فشار میدهیم.

کلیدهای درج و اضافه کردن متن در فایل
کلید i | متن را از قبل از مکان کرسر وارد میکند. |
کلید I | متن را از ابتدای خط جاری وارد می کند. |
کلید u | جهت undo کردن تغییرات. |
کلید a | برای ایجاد متن بعد از کاراکتر جاری |
کلید A | برای ایجاد متن بعد از اخرین کاراکتر خط جاری |
کلید o | ایجاد یک خط بعد از خط جاری |
کلید O | ایجاد یک خط قبل از خط جاری |
کلیدهای تغییر متن
کلید r | جایگزین کردن کاراکتر جاری با کاراکتر تایپ شده |
کلید cc | پاک کردن متن خط جاری و ورود به حالت درج |
کلید s | جایگزین کردن کاراکتر جاری با کاراکتر تایپ شده و ورود به حالت درج |
کلیدهای حذف متن
کلید D | حذف کاراکتر از محل کرسر تا انتهای خط |
کلید dd | برای حذف خط جاری |
کلید ndd | پاک کردن n خط از خط جاری |
کلید x | برای پاک کردن کاراکتر کرسر |
کلید X | برای پاک کردن کاراکتر قبل از کرسر |
کلیدهای copy and past
کلید yy | برای کپی کردن خط جاری |
کلید p | برای past کردن یک خط بعد از محل کرسر |
کلید P | برای past کردن یک خط قبل از محل کرسر |
کلید yw | برای کپی کردن کلمهی جاری کرسر |
مد آخرین خط یا Last Line mode
در مد آخرین خط، با زدن کلید [:] در مد دستور، کرسر به خط انتهایی vi رفته و منتظر دریافت دستور میشود. شما، میتوانید عملیاتی مثل ذخیرهسازی تغییرات، خروج از برنامه و یا کپی را انجام دهید برای اجرای عملیات مختلف در این حالت از علايم زیر استفاده مینماییم:
کلید w: | برای ذخیرهی تغییرات در فایل |
کلید q: | برای خروج از برنامه در صورتی که هیچ تغییری در آن صورت نپذیرفته باشد. |
کلید !q: | جهت خروج از برنامه با صرف نظر از تمام تغییرات صورت گرفته پر فایل. |
کلید wq: | جهت ذخیره کردن تغییرات و خروج از برنامه. راه دیگر ذخیرهی تغییرات و خروج، تایپ حروف ZZ در مد دستور میباشد. |
کلید w: | جهت ذخیره کردن تغییرات. اگر می خواهیم تغییرات در فایل دیگری ذخیره گردد از دستور w: filename2 استفاده میکنیم. |
سلام خیلی ممنون عالی بود و کاربردی