آموزش ویرایشگر vi لینوکس
در این مطلب ، میانبرهای ویرایشگر vi، در لینوکس را بررسی خواهیم کرد که میتوانند توسط مهندسان و توسعه دهندگان DevOps استفاده شود؛ ویرایشگر vi اغلب برای ویرایش فایلها استفاده میشود. با این حال، بر خلاف ویرایشگرهای رابط کاربری گرافیکی، کاربرانی که برای اولین بار ویرایشگر vi را تجربه میکنند، به دلیل نیاز به فشردن کلیدهای مختلف برای کنترل ویرایش، سر در گم میشوند.
میانبرهای ویرایشگر vi برای مبتدیان
در این مطلب، میانبرهای ضروری ویرایشگر vi را که میتوانید در فعالیتهای روزانه لینوکس استفاده کنید، پوشش خواهم داد.
حالتهای ویرایشگر vi
قبل از ورود به میانبرها، باید پنج حالت ویرایشگر Vim را درک کنید.
پنج حالت در ویرایشگر VI وجود دارد.
- حالت Normal
- حالت Insert
- حالت Visual
- حالت Command
- حالت Replace
حالت Normal
وقتی هر فایلی را در ویرایشگر vi باز کنید، به صورت پیش فرض حالت Normal است. در این حالت، میتوانید با استفاده از میانبرهای مختلف، مکان نما را در میان فایل جابه جا کنید.
در ادامه میانبرهایی برای حرکت مکان نما در جهات مختلف آورده شده است. اگر یک عدد به میانبر اضافه کنید، حرکت چند برابر میشود.
میانبر (Shortcut) | توضیحات |
---|---|
h | حرکت یک کاراکتر به چپ (4h چهار کاراکتر را به چپ منتقل میکند) |
j | حرکت یک خط به پایین (4j چهار خط پایین) |
k | حرکت یک خط به بالا (5k پنج خط به بالا) |
l | حرکت یک کاراکتر به راست (8l هشت کاراکتر به راست) |
در ادامه، میانبرهای مرور کلمات را یاد خواهیم گرفت. در اینجا کاراکترهای کوچک و بزرگ کارکردهای متفاوتی دارند.
میانبر (Shortcut) | توضیحات |
---|---|
w | به ابتدای کلمه میرود. W بعد از فضای خالی به ابتدای کلمه بعدی میرود. |
b | به ابتدای کلمه قبل میرود. B قبل از فضای خالی به ابتدای کلمه قبلی میرود. |
e | تا آخر کلمه میرود. E قبل از فضای خالی به انتهای کلمه میرود. |
میانبر بعدی در بیشتر مواقع هنگام کار با فایلها مورد نیاز است.
میانبر (Shortcut) | توضیحات |
---|---|
0 | به ابتدای خط میرود |
$ | به انتهای خط میرود |
حالت Insert
در حالت insert میتوانید فایل را ویرایش کنید. در زیر میانبرهایی برای ویرایش آمده است. باز هم، کاراکترهای کوچک و بزرگ در اینجا کارکردهای متفاوتی دارند.
میانبر (Shortcut) | توضیحات |
---|---|
i | ویرایشگر VI برای درج موارد بیشتر وارد میشود. (I –> برای خط در حالت درج به ابتدای خط میرود) |
a | مکان نما به کاراکتر بعدی در حالت درج حرکت میکند (A - به انتهای خط در حالت درج حرکت میکند) |
o | یک مورد جدید را از موقعیت فعلی مکان نما در حالت insert میکند. (O - یک خط جدید در بالای موقعیت فعلی مکان نما در حالت درج قرار میدهد) |
حالت Visual
حالت بصری انتخاب و تغییر متن در ویرایشگر VI را آسان می کند. برای وارد شدن به حالت بصری کافی است v را وارد کنید.
شما قادر خواهید بود چندین خط را انتخاب کنید.
حالت Command
در حالت فرمان، می توانید دستورات را اجرا کنید و متن را دستکاری کنید. به عنوان مثال، یک متن را در کل فایل پیدا کرده و جایگزین کنید.
برای کار با حالت فرمان باید موارد زیر را بدانید.
میانبر (Shortcut) | توضیحات |
---|---|
s | برای شروع حالت فرمان |
% | تمام خطوط فایل را در نظر می گیرد |
s | برای تعویض |
g/ | تغییر جهانی |
در ادامه مطلب به چند نمونه از حالت فرمان خواهیم پرداخت.
حالت Replace
حالت جایگزینی برای جایگزینی متون موجود در یک سند است.
مکان نما را در اولین کاراکتر یک کار قرار دهید و در حالت نرمال، R را وارد کنید. هنگامی که شروع به تایپ کردید، کلمه جایگزین میشود.
راه اندازی VI Editor Environment
قبل از ورود به میانبرها و دستورات، باید تنظیمات ویرایشگر vi را درک کنید. شما می توانید تمام پارامترهای ویرایشگر vi ضروری را در فایل ~/.vimrc که به طور پیش فرض بارگذاری میشود، تنظیم کنید.
اگر فایل vimrc را ندارید، با دستور زیر آن را ایجاد کنید
touch ~/.vimrc
در زیر پارامترهای رایجی که ممکن است در فایل vimrc نیاز داشته باشید آورده شده است.
set number
set autoindent
set shiftwidth=4
set softtabstop=4
set expandtab
پارامتر set number شماره خط را برای ویرایشگر vi شما تنظیم میکند.
set number
می توانید با اجرای :set nonumber از ویرایشگر، این را به طور موقت set و unset کنید
برای پرش به یک شماره خط خاص، :
به عنوان مثال، 10: شما را به خط شماره دهم میبرد.
set relativenumber
برای آسانتر کردن ناوبری، میتوانید گزینه relativenumber را set کنید. اعداد خطوط را نسبت به موقعیت مکان نما نشان می دهد.
با اجرای :set relativenumber از ویرایشگر، می توانید به طور موقت نسبت number را تنظیم کنید.
برای تنظیم کردن، از :set norelativenumber استفاده کنید
Syntax Highlighting
اگر از ویرایشگر Vim unicolor خسته شده اید، می توانید هایلایت سینتکس را فعال کنید.
vi ~/.vimrc
مقدار زیر را به فایل اضافه کنید:
:syntax on
Cut Copy Paste in Vi Editor
برای کپی و پیست کردن با استفاده از حالت visual مراحل زیر را دنبال کنید.
- با استفاده از ESC + v وارد حالت visual شوید و مکان نما را حرکت دهید تا رشته ای را که می خواهید کپی کنید انتخاب کنید.
- از V بزرگ برای انتخاب کل خط استفاده کنید.
- از d برای کات یا y برای کپی استفاده کنید.
- مکان نما را در محل مورد نظر قرار دهید و برای پیست p را فشار دهید.
حذف خطوط و کلمات
در این بخش، نحوه حذف خطوط و کلمات در ویرایشگر VI آورده شده است.
- مکان نما را روی خطی که می خواهید حذف کنید قرار دهید و dd را فشار دهید تا آن خط حذف شود
- برای حذف تعداد مشخصی از خطوط، می توانید از d10d استفاده کنید. با این کار 10 خطی که از مکان نما شروع می شوند حذف می شود. بر اساس نیاز خود می توانید هر عددی را به جای 10 بدهید.
- برای انتخاب و حذف خطوط خاص، از Shift + V (حالت visual) استفاده کنید و سپس از فلشهای بالا و پایین برای انتخاب استفاده کنید. هنگامی که خطوط را انتخاب کردید، d را برای حذف تمام خطوط انتخاب شده فشار دهید.
برای حذف کلمات، حالت insert (ESC + I) را فعال کنید و می توانید کارهای زیر را انجام دهید.
- Ctrl + w آخرین کلمهای را که مکان نما در آن قرار دارد حذف میکند.
- Ctrl + u تمام کلماتی را که بلافاصله در سمت چپ مکان نما قرار دارند حذف میکند.
Undo و Redo
هنگامی که روی ویرایشگر vi کار میکنید، اغلب باید آن را undo و redo انجام دهید. در اینجا نحوه انجام این کار آمده است.
- Undo: برای لغو آخرین تغییر، u را فشار دهید. اگر اشتباهی مرتکب شدید، کافی است u را فشار دهید تا آن را برگردانید
- Redo: با فشردن کلیدهای Ctrl + r تغییری را که به تازگی لغو کردید دوباره انجام دهید.
جستجو و جایگزینی متون
می توانید با فشار دادن / در حالت insert در میان فایلهای خود جستجو کنید.
به عنوان مثال، اگر میخواهید برای کلمه کلیدی data جستجو کنید، باید موارد زیر را انجام دهید.
/data
برای پیدا کردن رخداد بعدی، فقط n را فشار دهید
نکته: جستجوها به حروف کوچک و بزرگ حساس هستند. اگر میخواهید جستجوی بدون حروف کوچک و بزرگ داشته باشید، باید set ignorecase: را در ویرایشگر تنظیم کنید.
حالت command (ESC + :) را وارد کنید و از دستور زیر برای جایگزینی یک الگو استفاده کنید.
:%s/pattern/replace/g
از دستور زیر برای جایگزینی هر رخداد با یک prompt استفاده کنید. تمام اتفاقات را برجسته می کند. شما میتوانید انتخاب کنید که کدام یک را جایگزین کنید و کدام یک را به همان صورت باقی بگذارید.
:%s/pattern/replace/gc
به حروف بزرگ و کوچک تبدیل کنید
برای هر تبدیل case text، مکان نما را روی خط نگه دارید و از میانبرهای زیر در حالت نرمال (ESC) استفاده کنید.
- برای تبدیل یک خط به حروف بزرگ از gUU استفاده کنید
- برای تبدیل یک خط به حروف کوچک، از guu استفاده کنید
کپی کردن مطالب از یک فایل دیگر در ویرایشگر Vi
این کاری نیست که شما اغلب انجام دهید. با این حال، اگر میخواهید محتوای فایل دیگری را به فایل فعلی که در حال ویرایش آن هستید اضافه کنید، مکان نما را روی خط مورد نظر قرار داده و میتوانید از سینتکس زیر در حالت command استفاده کنید. محتویات فایل مشخص شده از خط بعدی مکان نما کپی میشود.
:r /path/to/file
به عنوان مثال، اگر اطلاعات CPU را در یک فایل موجود کپی کنید، از دستور زیر استفاده می کنید.
:r /proc/cpuinfo
اجرا / کپی مطالب از دستور
شما می توانید سایر دستورات لینوکس را در ویرایشگر در حالت command اجرا کنید (ESC + :)
برای اجرای دستورات از ویرایشگر می توانید از :!
:! pwd
اگر می خواهید خروجی یک دستور در فایل ویرایش کپی شود، می توانید از :r استفاده کنید! < command>. به عنوان مثال، برای دریافت و کپی آدرس IP eth0، می توانید موارد زیر را انجام دهید.
:r! ip addr | grep eth0 | grep inet | awk '{print $2}' | cut -d / -f1
ویندوز را تقسیم کنید
شرایطی وجود دارد که ممکن است بخواهید یک پنجره تقسیم شده برای دسترسی به فایل های دیگر یا ایجاد فایل های جدید داشته باشید.
- تقسیم افقی (Horizontal Split): عبارت زیر را تایپ کنید تا پنجره به صورت افقی تقسیم شود و یک فایل خاص باز شود. اگر فقط از sp: استفاده کنید، پنجره را با فایل فعلی تقسیم میکند.
:sp
تقسیم عمودی (Vertical Split): عبارت زیر را تایپ کنید تا پنجره به صورت عمودی تقسیم شود و یک فایل خاص باز شود. اگر فقط از vs: استفاده کنید، پنجره را با فایل فعلی تقسیم میکند.
:vs
وقتی پنجرههای تقسیم شده متفاوتی دارید، ممکن است بخواهید بین پنجرههای مختلف حرکت کنید.
برای انتقال مکان نما به پنجره بعدی از Ctrl + w و به دنبال آن w استفاده کنید.
راهنمای ویرایشگر Vi
کارهای زیادی وجود دارد که می توانید با ویرایشگر VI انجام دهید.
اگر میخواهید یک کاربر قدرتمند ویرایشگر VI شوید، باید از عملکرد راهنمای VIM استفاده کنید.
vimtutor
این یک آموزش خط فرمان را در ترمینال شما باز می کند. و می توانید از تمام دستورات vi معمولی برای مرور سند راهنما استفاده کنید.
جمعبندی
VI یک ویرایشگر بسیار قدرتمند است.
درک عملکرد کامل و تمام میانبرهای ویرایشگر vi نیازمند زمان و تمرین مداوم است.
من برخی از دستورات، نکات و میانبرهای ویرایشگر vi را توضیح داده ام که در زمان کار با ویرایشگر vi باعث صرفه جویی در زمان می شود.
اگر فکر می کنید نکاتی دارید، لطفا آنها را در قسمت نظرات با ما در میان بگذارید. می تواند به دیگران کمک کند.