آشنایی با ویرایشگر Vi در لینوکس

ویرایشگر vi

ویرایشگر vi ، یک ویرایشگر قدرتمند و سبک برای فایل‌های متنی در سیستم عامل لینوکس است. و در بسیاری از نسخه‌های لینوکس به طور پیش‌فرض نصب گردیده است. در ابتدا، کار کردن با این ادیتور به نظر سخت و گیج‌کننده به نظر می‌رسد. در صورتی که مدتی به روش کار کردن با آن آشنا شوید، از توانایی‌های این ویرایشگر لذت خواهید برد. به علت کم حجم و سبک بودن، این ادیتور، برای تنظیم و تغییر کانفیگ ماشین‌های لینوکس از راه دور استفاده می‌شود. نسخه‌ی پیشرفته‌تر این ویرایشگر به نام VIM یا Vi IMproved است. از ویژگی‌های این ویرایشگر موارد زیر را می‌توان بیان نمود:

  • ویرایشگر vi بر روی اکثر توزیع های لینوکس نصب گردیده است.
  • این ویرایشگر بر روی نسخه‌های مختلف یونیکس نیز استفاده می‌شود.
  • ویرایشگری قدرتمند و سبک می‌باشد.
  • بر خلاف ظاهر اولیه، یک ادیتور کاربر پسند، مخصوصا برای کاربران حرفه‌ای می‌باشد.

شروع کار با Vi

برای شروع کار با ویرایشگر vi در صفحه‌ی ترمینال لینوکس دستور vi را وارد می‌کنیم. ساختار دستور vi به صورت زیر است:

مثلا برای ویرایش فایل test.txt دستور زیر را در ترمینال وارد می‌نماییم. در صورتی که فایل test.txt وجود نداشته باشد، یک فایل با مقدار صفر ایجاد می‌گردد.

با اجرای دستور فوق صفحه‌ی ویرایشگر باز می‌شود. هر خط از ویرایشگر که هنوز استفاده نشده باشد با کاراکتر ~ نشان داده می‌شود. در صورتی که در هر سطری کاراکتر فاصله یا کاراکتر TAB و یا نوشته‌ی متنی قرار داشته باشد علامت ~ یا Tilde حذف می‌گردد.

ادینور vi

حالت‌ها یا مدهای مختلف 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 را فشار می‌دهیم.

ادیتور vi

کلیدهای درج و اضافه کردن متن در فایل

کلید 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 استفاده می‌کنیم.

این پست دارای یک نظر است

  1. آرمان

    سلام خیلی ممنون عالی بود و کاربردی

دیدگاهتان را بنویسید