-
- 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:
برای نمایش لیست فایلهای باز.
کپی و جایگذاری پیشرفته
- کپی چند خط به بافر خاص:
"ayy
a
کپی میکند. - جایگذاری از بافر خاص:
"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
اعمال کنید.
نظر خود را اینجا بنویسید