-
- 09 شهریور 1404
- سیستم عامل لینوکس
دستور vi یک ویرایشگر متنی قدرتمند در لینوکس است که برای ویرایش سریع فایلها استفاده میشود. این ابزار با حالتهای دستور، درج و خط فرمان کار میکند و امکاناتی مانند کپی، حذف، جستجو و جایگزینی متن را فراهم میکند.
مقدمه
vi یک ویرایشگر متنی قدرتمند و سبک است که به صورت پیشفرض در اکثر توزیعهای لینوکس و سیستمهای یونیکسی وجود دارد. این ویرایشگر به دلیل سادگی، سرعت و قابلیتهای گستردهاش، یکی از ابزارهای محبوب توسعهدهندگان و مدیران سیستم است. نسخه بهبودیافته آن، vim (Vi IMproved)، امکانات بیشتری ارائه میدهد، اما در این مقاله به بررسی دستورات پایه و پیشرفته vi میپردازیم که در هر دو نسخه قابل استفاده است.
این مقاله به شما کمک میکند تا با نحوه استفاده از vi، حالتهای مختلف آن، دستورات رایج و نکات کاربردی آشنا شوید.
شروع کار با vi
برای باز کردن یک فایل با vi، از دستور زیر در ترمینال استفاده کنید:
vi filename
- اگر فایل
filenameوجود داشته باشد،viآن را باز میکند. - اگر فایل وجود نداشته باشد، یک فایل جدید با آن نام ایجاد میشود.
نکته: در بسیاری از سیستمها، تایپ
viدر واقعvimرا اجرا میکند، زیراvimجایگزینviشده است.
حالتهای vi
vi دارای سه حالت اصلی است که درک آنها برای کار با این ویرایشگر ضروری است:
-
حالت دستور (Command Mode):
- حالت پیشفرض هنگام باز کردن
vi. - در این حالت، میتوانید دستورات ویرایشی مانند کپی، حذف، یا جابجایی را اجرا کنید.
- برای بازگشت به این حالت از هر حالت دیگر، کلید
Escرا فشار دهید.
- حالت پیشفرض هنگام باز کردن
-
حالت درج (Insert Mode):
- در این حالت میتوانید متن را تایپ یا ویرایش کنید.
- برای ورود به این حالت، از کلیدهایی مانند
i،aیاoاستفاده کنید.
-
حالت خط فرمان (Command-Line Mode):
- با تایپ
:در حالت دستور، وارد این حالت میشوید. - برای اجرای دستوراتی مانند ذخیره فایل، خروج یا جستجو استفاده میشود.
- با تایپ
دستورات پایه در vi
ورود به حالت درج
| دستور | توضیح |
|---|---|
i |
شروع درج متن قبل از مکاننما |
I |
شروع درج متن در ابتدای خط |
a |
شروع درج متن بعد از مکاننما |
A |
شروع درج متن در انتهای خط |
o |
اضافه کردن خط جدید زیر خط فعلی |
O |
اضافه کردن خط جدید بالای خط فعلی |
حرکت در فایل (حالت دستور)
| دستور | توضیح |
|---|---|
h |
حرکت مکاننما به چپ |
j |
حرکت مکاننما به پایین |
k |
حرکت مکاننما به بالا |
l |
حرکت مکاننما به راست |
w |
پرش به ابتدای کلمه بعدی |
b |
پرش به ابتدای کلمه قبلی |
0 |
حرکت به ابتدای خط |
$ |
حرکت به انتهای خط |
gg |
رفتن به ابتدای فایل |
G |
رفتن به انتهای فایل |
:n |
رفتن به خط شماره n (مثال: :10 برای خط ۱۰) |
ویرایش متن
| دستور | توضیح |
|---|---|
x |
حذف کاراکتر زیر مکاننما |
dd |
حذف خط فعلی |
ndd |
حذف n خط از خط فعلی (مثال: 3dd برای حذف ۳ خط) |
yy |
کپی خط فعلی |
nyy |
کپی n خط (مثال: 2yy برای کپی ۲ خط) |
p |
جایگذاری (paste) محتوای کپیشده بعد از مکاننما |
P |
جایگذاری محتوای کپیشده قبل از مکاننما |
u |
لغو آخرین تغییر (undo) |
Ctrl+r |
بازگرداندن تغییر لغو شده (redo) |
ذخیره و خروج
| دستور | توضیح |
|---|---|
:w |
ذخیره فایل |
:q |
خروج از vi (اگر تغییری اعمال نشده باشد) |
:wq |
ذخیره و خروج |
:q! |
خروج بدون ذخیره تغییرات |
:w filename |
ذخیره فایل با نامی جدید |
دستورات پیشرفته
جستجو و جایگزینی
-
جستجو:
- برای جستجوی یک عبارت:
/phraseو سپسEnter. برای رفتن به نتیجه بعدی،nو برای قبلی،N. - برای جستجوی معکوس:
?phrase.
- برای جستجوی یک عبارت:
-
جایگزینی:
-
جایگزینی یک عبارت در کل فایل:
:%s/old/new/gمثال:
:%s/foo/bar/gکلمهfooرا باbarجایگزین میکند. -
جایگزینی با تأیید:
:%s/old/new/gcبرای هر جایگزینی از شما تأیید میخواهد.
-
کار با چندین فایل
- باز کردن چندین فایل:
vi file1 file2 file3 - جابجایی بین فایلها:
- n: برای فایل بعدی.
p:برای فایل قبلی.ls:برای نمایش لیست فایلهای باز.
کپی و جایگذاری پیشرفته
- کپی چند خط به بافر خاص:
این خط را به بافر"ayyaکپی میکند. - جایگذاری از بافر خاص:
"ap
تنظیمات موقت
- نمایش شماره خطوط:
:set number - غیرفعال کردن شماره خطوط:
:set nonumber - فعال کردن برجستهسازی نحو (syntax highlighting):
:syntax on
نکات کاربردی
- ذخیره خودکار: برای جلوگیری از از دست رفتن تغییرات، به طور مرتب با
:wفایل را ذخیره کنید. - استفاده از .vimrc: میتوانید تنظیمات دلخواه خود (مانند شماره خطوط یا برجستهسازی نحو) را در فایل
~/.vimrcذخیره کنید.
مثال:set number syntax on set tabstop=4 - یادگیری سریعتر: از دستور
vimtutorدر ترمینال استفاده کنید تا آموزش تعاملیvimرا تجربه کنید. - حالتهای بصری (Visual Mode):
- با
vوارد حالت بصری شوید، متن را انتخاب کنید و سپس باyکپی یاdحذف کنید. - برای انتخاب خطوط کامل، از
Vاستفاده کنید.
- با
تفاوت vi و vim
viنسخه اصلی و سادهتر است.vimامکانات بیشتری مانند برجستهسازی نحو، پشتیبانی از ماوس، و افزونهها ارائه میدهد.- اکثر دستورات
viدرvimنیز کار میکنند، اماvimقابلیتهای پیشرفتهتری دارد.
نتیجهگیری
vi یک ابزار قدرتمند و انعطافپذیر است که با یادگیری آن میتوانید به سرعت فایلهای متنی را در محیط لینوکس ویرایش کنید. اگرچه در ابتدا ممکن است پیچیده به نظر آید، اما با تمرین و استفاده از دستورات پایه و پیشرفته، میتوانید به راحتی از آن استفاده کنید. برای تسلط بیشتر، پیشنهاد میکنیم با vimtutor شروع کنید و تنظیمات شخصی خود را در ~/.vimrc اعمال کنید.
نظر خود را اینجا بنویسید