ویم: تفاوت بین نسخهها
جز (←حرکت مکاننما) |
(←حرکت مکاننما در حالت دستور) |
||
(۲۸ نسخهٔ میانی ویرایش شده توسط ۳ کاربر نشان داده نشده) | |||
سطر ۱: | سطر ۱: | ||
[[پرونده:Vimlogo.svg|128px|thumb|left|نشان ویرایشگر متن ویم]] | [[پرونده:Vimlogo.svg|128px|thumb|left|نشان ویرایشگر متن ویم]] | ||
− | '''ویم''' (به انگلیسی Vim مخفّف Vi IMproved به معنای [[Vi|وی آی]] بهبود یافته)، یک [[Text Editor|ویرایشگر متن]] | + | '''ویم''' (به انگلیسی Vim مخفّف Vi IMproved به معنای [[Vi|وی آی]] بهبود یافته)، یک [[Text Editor|ویرایشگر متن]] [[Free Software|آزاد]]، سبک، برای برنامهنویسها، و سازگار با [[ویآی]] است. |
__TOC__ | __TOC__ | ||
سطر ۱۷: | سطر ۱۷: | ||
== کاربرد == | == کاربرد == | ||
− | |||
− | |||
− | + | === گشودن پرونده و شاخه === | |
− | + | {| class="wikitable sortable" | |
+ | ! class="unsortable"| میانبر | ||
+ | ! class="unsortable"| کاربرد | ||
+ | |- | ||
+ | | <code dir="ltr">vim FILE</code> || گشودن پرونده یا ساخت پروندهٔ تازه | ||
+ | |- | ||
+ | | <code dir="ltr">vim DIR</code> || گشودن شاخهٔ مورد نظر | ||
+ | |- | ||
+ | |} | ||
+ | |||
برای نمونه فرمان زیر شاخهٔ جاری را با مدیر پروندهٔ ویم میگشاید. | برای نمونه فرمان زیر شاخهٔ جاری را با مدیر پروندهٔ ویم میگشاید. | ||
{{bc|$ vim . }} | {{bc|$ vim . }} | ||
− | + | ---- | |
− | از | + | ویم دارای سه حالت '''دستور'''، '''درج''' و '''بصری''' است. در هرکجا برای وارد شدن به حالت دستور، کافی است [[Esc Key|دکمهٔ فرار]] یا کلید ترکیبی <code> ] + Ctrl </code> را بزنید. |
− | === حرکت مکاننما === | + | پس از اجرا ویم در حالت دستور قرار میگیرد. |
+ | |||
+ | === حرکت مکاننما در حالت دستور === | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! class="unsortable"| میانبر | ! class="unsortable"| میانبر | ||
سطر ۶۶: | سطر ۷۵: | ||
|- | |- | ||
| <code>gg</code> || رفتن به نخستین خط میانگیر (go) | | <code>gg</code> || رفتن به نخستین خط میانگیر (go) | ||
+ | |- | ||
+ | | <code>G</code> || رفتن به آخرین خط میانگیر (Go) | ||
|- | |- | ||
| <code>37gg</code>, <code>37G</code> || رفتن به خط ۳۷ میانگیر | | <code>37gg</code>, <code>37G</code> || رفتن به خط ۳۷ میانگیر | ||
− | |||
− | |||
|- | |- | ||
| <code>}</code> || رفتن به ابتدای بند | | <code>}</code> || رفتن به ابتدای بند | ||
سطر ۷۷: | سطر ۸۶: | ||
| <code>'</code><code>'</code> || بازگشت به آخرین مکان پیش از زدن دستور پیشین | | <code>'</code><code>'</code> || بازگشت به آخرین مکان پیش از زدن دستور پیشین | ||
|- | |- | ||
+ | | <code>gd</code> || رفتن به تعریف یک تابع(go to definition) | ||
+ | |- | ||
+ | | <code>ctrl + o</code> || بازگشت به نقطهٔ پیشین | ||
+ | |- | ||
+ | | <code>ctrl + i</code> || رفتن به نقطهٔ پسین | ||
+ | |- | ||
+ | | <code>gt</code> || رفتن به زبانه(تب) پیشین | ||
+ | |- | ||
+ | | <code>gT</code> || رفتن به زبانه پسین | ||
|} | |} | ||
+ | |||
+ | === نشانهگذاری mark === | ||
+ | در ویم میتوان از نشانهگذاری قسمتهای مختلف پرونده هم استفاده کرد. به این شکل که مکان نما را به نقطهٔ دلخواه در متن منتقل کنید و با فشردن کلید m نشانهگذاری فعال کنید. پس از آن یکی دیگر از کلید را به عنوان یادآور آن نشانه وارد کنید. | ||
+ | برای نمونه با زدن ma نقطهٔ مورد نظر با حرف a نشانهگذاری میشود. | ||
+ | حالا پس از انتقال مکاننما به نقاط دیگر متن برای بازگشت به نقطهٔ نشان گذاری شده با a کلیدهای <code>a`</code> را میزنیم. | ||
+ | |||
+ | === رفتن به حالتهای دیگر === | ||
+ | {| class="wikitable sortable" | ||
+ | ! class="unsortable"| میانبر | ||
+ | ! class="unsortable"| کاربرد | ||
+ | |- | ||
+ | | <code>i</code> || ورود به حالت درج پیش از مکاننما (insert) | ||
+ | |- | ||
+ | | <code>I</code> || ورود به حالت درج در ابتدای خط فعلی | ||
+ | |- | ||
+ | | <code>a</code> || ورود به حالت درج پس از مکاننما | ||
+ | |- | ||
+ | | <code>A</code> || ورود به حالت درج در انتهای خط فعلی | ||
+ | |- | ||
+ | | <code>o</code> || ایجاد یک خط در پایین خط جاری و ورود به حالت درج در ابتدای خط جدید (open) | ||
+ | |- | ||
+ | | <code>O</code> || ایجاد یک خط در بالای خط جاری و ورود به حالت درج در ابتدای خط جدید (open) | ||
+ | |- | ||
+ | | <code>v</code> || ورود به حالت بصری (visual) | ||
+ | |- | ||
+ | | <code>V</code> || ورود به حالت بصری خطّی | ||
+ | |- | ||
+ | | <code dir="ltr">^v</code> || ورود به حالت بصری بلوکی | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ---- | ||
=== برش و جایگذاری === | === برش و جایگذاری === | ||
سطر ۱۳۸: | سطر ۱۸۸: | ||
|} | |} | ||
− | + | ---- | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === جستوجو === | + | === جستوجو و ایجاد تغییر متن=== |
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! class="unsortable"| میانبر | ! class="unsortable"| میانبر | ||
سطر ۱۸۵: | سطر ۲۱۲: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | ---- | ||
=== ویرایش === | === ویرایش === | ||
سطر ۲۱۴: | سطر ۲۴۳: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | ---- | ||
=== ذخیره و خروج === | === ذخیره و خروج === | ||
سطر ۲۲۳: | سطر ۲۵۴: | ||
|- | |- | ||
| <code dir="ltr">:wq</code> || ذخیره و خروج (write quit) | | <code dir="ltr">:wq</code> || ذخیره و خروج (write quit) | ||
+ | |- | ||
+ | | <code dir="ltr">ZZ</code> || ذخیره و خروج (write quit) | ||
+ | |- | ||
+ | | <code dir="ltr">:qall</code> || خروج از همهٔ میانگیرها | ||
|- | |- | ||
| <code dir="ltr">:q!</code> || خروج بدون ذخیره (quit) | | <code dir="ltr">:q!</code> || خروج بدون ذخیره (quit) | ||
سطر ۲۳۰: | سطر ۲۶۵: | ||
|} | |} | ||
− | == پشتیبانی فارسی == | + | == دیگر ویژگیها == |
+ | |||
+ | === پشتیبانی از موشی === | ||
+ | برای پشتیبانی از [[Mouse|موشی]]، از دستور زیر استفاده کنید: | ||
+ | |||
+ | {{bc| | ||
+ | :set mouse{{=}}a | ||
+ | }} | ||
+ | |||
+ | === پشتیبانی فارسی === | ||
برای پشتیبانی از زبانهای دوجهته در ویم، از دستور زیر استفاده کنید: | برای پشتیبانی از زبانهای دوجهته در ویم، از دستور زیر استفاده کنید: | ||
{{bc|:set termbidi}} | {{bc|:set termbidi}} | ||
− | + | === اجرای برنامههای پوسته === | |
− | == | + | ویم میتواند برنامههای [[پوسته]] را درون خودش و بدون بسته شدن اجرا کند. |
− | |||
{{bc| | {{bc| | ||
− | : | + | :! ls |
+ | :! /usr/bin/bash | ||
}} | }} | ||
− | == | + | === ذخیرهٔ پرونده با sudo === |
− | + | زمانی که یک پرونده با دسترسیهای محدود(برای نمونه {{ic| /etc/apt/sources.list.d/system.sources}}) را با کاربر معمولی ویرایش کنید امکان ذخیرهٔ آن نیست. | |
− | با فرمان زیر پرونده را | + | میتوان با اجرای فرمان زیر و با به کارگیری sudo پرونده را ذخیره کرد. |
− | |||
+ | {{bc| | ||
+ | :w !sudo tee % | ||
+ | }} | ||
− | == | + | === جابهجایی بین میانگیرها=== |
+ | برای جا بهجایی بین میانگیرها کلیدهای <code>ctrl + w</code> را میزنیم. | ||
+ | برای تغییر مکان میانگیر نخست با <code>ctrl + w</code> یک میانگیر را فعال میکنیم و با کلید <code>shift + hjlk</code> مکان میانگیر را تغییر میدهیم. یا اینکه با تکرار <code>ctrl + w</code> بین آنها جابه جا میشویم. | ||
+ | در صورت فعال بودن [[موشی]] به سادگی با فشردن کلیک میتوان این کار را انجام داد. | ||
− | میتوانید در ویم شبیهساز پایانه را اجرا کند. | + | === شبیهساز پایانه === |
+ | میتوانید در ویم [[شبیهساز پایانه]] را اجرا کند. | ||
{{bc| | {{bc| | ||
:below term | :below term | ||
سطر ۲۵۸: | سطر ۳۰۸: | ||
چند کلید میانبر در این حالت | چند کلید میانبر در این حالت | ||
− | * جابه جایی بین میانگیرها با کلید ترکیبی ctrl + w | + | * جابه جایی بین میانگیرها با کلید ترکیبی <code>ctrl + w</code> |
− | * فعال سازی اسکرول با ctrl + w و shift + n | + | * فعال سازی اسکرول با <code>ctrl + w</code> و <code>shift + n</code> |
* خروج با فشردن i | * خروج با فشردن i | ||
+ | |||
+ | == تنظیمات ویم == | ||
+ | تنظیمات ویم در پروندهٔ {{ic|.vimrc}} در خانه ذخیره میشود. | ||
+ | |||
+ | با فرمان زیر پرونده را ایجاد یا باز کنید و تنظیمات خود را در آن قرار دهید. | ||
+ | {{bc|$ vim ~/.vimrc}} | ||
+ | |||
+ | {{نکته| در فایل vimrc. نباید : را در شروع تنظیم قرار داد. }} | ||
+ | |||
+ | |||
+ | === نمونه === | ||
+ | پروندهٔ زیر یک نمونه از vimrc. است. | ||
== ویم در مرورگر == | == ویم در مرورگر == |
نسخهٔ کنونی تا ۱۰ مهر ۱۴۰۳، ساعت ۱۶:۱۴
ویم (به انگلیسی Vim مخفّف Vi IMproved به معنای وی آی بهبود یافته)، یک ویرایشگر متن آزاد، سبک، برای برنامهنویسها، و سازگار با ویآی است.
محتویات
ویژگیها
- سبک
- سریع
- در دسترس (روی بیشتر توزیعها به صورت پیشفرض نصب است)
نصب
برای نصب این نرم افزار، از فرمان زیر استفاده کنید:
$ sudo apt install vim
برای نصب محیط گرافیکی ویم، بدین صورت عمل کنید:
$ sudo apt install gvim
کاربرد
گشودن پرونده و شاخه
میانبر | کاربرد |
---|---|
vim FILE |
گشودن پرونده یا ساخت پروندهٔ تازه |
vim DIR |
گشودن شاخهٔ مورد نظر |
برای نمونه فرمان زیر شاخهٔ جاری را با مدیر پروندهٔ ویم میگشاید.
$ vim .
ویم دارای سه حالت دستور، درج و بصری است. در هرکجا برای وارد شدن به حالت دستور، کافی است دکمهٔ فرار یا کلید ترکیبی ] + Ctrl
را بزنید.
پس از اجرا ویم در حالت دستور قرار میگیرد.
حرکت مکاننما در حالت دستور
میانبر | کاربرد |
---|---|
h |
رفتن به چپ |
j |
رفتن به خط بعدی (jump) |
7j |
۷ خط به پایین رفتن |
k |
رفتن به خط پیشین |
l |
رفتن به راست |
w |
رفتن به واژهٔ پسین (word) |
W |
رفتن به واژهٔ کامل پسین (Word) |
b |
رفتن به واژهٔ پیشین (back) |
B |
رفتن به واژهٔ کامل پیشین (Back) |
e |
رفتن به انتهای واژه (end) |
E |
رفتن به انتهای واژهٔ کامل (End) |
0 |
رفتن به شروع خط |
^ |
رفتن به نخستین نویسهٔ خط |
$ |
رفتن به انتهای خط |
gg |
رفتن به نخستین خط میانگیر (go) |
G |
رفتن به آخرین خط میانگیر (Go) |
37gg , 37G |
رفتن به خط ۳۷ میانگیر |
} |
رفتن به ابتدای بند |
{ |
رفتن به پایان بند |
' ' |
بازگشت به آخرین مکان پیش از زدن دستور پیشین |
gd |
رفتن به تعریف یک تابع(go to definition) |
ctrl + o |
بازگشت به نقطهٔ پیشین |
ctrl + i |
رفتن به نقطهٔ پسین |
gt |
رفتن به زبانه(تب) پیشین |
gT |
رفتن به زبانه پسین |
نشانهگذاری mark
در ویم میتوان از نشانهگذاری قسمتهای مختلف پرونده هم استفاده کرد. به این شکل که مکان نما را به نقطهٔ دلخواه در متن منتقل کنید و با فشردن کلید m نشانهگذاری فعال کنید. پس از آن یکی دیگر از کلید را به عنوان یادآور آن نشانه وارد کنید.
برای نمونه با زدن ma نقطهٔ مورد نظر با حرف a نشانهگذاری میشود.
حالا پس از انتقال مکاننما به نقاط دیگر متن برای بازگشت به نقطهٔ نشان گذاری شده با a کلیدهای a`
را میزنیم.
رفتن به حالتهای دیگر
میانبر | کاربرد |
---|---|
i |
ورود به حالت درج پیش از مکاننما (insert) |
I |
ورود به حالت درج در ابتدای خط فعلی |
a |
ورود به حالت درج پس از مکاننما |
A |
ورود به حالت درج در انتهای خط فعلی |
o |
ایجاد یک خط در پایین خط جاری و ورود به حالت درج در ابتدای خط جدید (open) |
O |
ایجاد یک خط در بالای خط جاری و ورود به حالت درج در ابتدای خط جدید (open) |
v |
ورود به حالت بصری (visual) |
V |
ورود به حالت بصری خطّی |
^v |
ورود به حالت بصری بلوکی |
برش و جایگذاری
میانبر | کاربرد |
---|---|
y |
فرستادن متن انتخابی به حافظه (yank) |
yw |
فرستادن واژهٔ جاری به حافظه (yank word) |
y3w |
فرستادن ۳ واژه از واژهٔ جاری به حافظه (yank 3 words) |
y10w |
فرستادن ۱۰ واژه از واژهٔ جاری به حافظه (yank 10 words) |
yW |
فرستادن واژهٔ کامل جاری به حافظه (yank Word) |
y3W |
فرستادن ۳ واژهٔ کامل از واژهٔ کامل جاری به حافظه (yank 3 Words) |
yy |
فرستادن خط جاری به حافظه |
y3y |
فرستادن ۳ خط از خط جاری مکاننما به حافظه |
x |
حذف نویسهٔ زیر مکاننما و فرستادن به حافظه |
dw |
حذف یک واژه و فرستادن به حافظه (delete word) |
d3w |
حذف ۳ واژه و فرستادن به حافظه (delete 3 words) |
d10w |
حذف ۱۰ واژه و فرستادن به حافظه (delete 10 words) |
dW |
حذف یک واژهٔ کامل و فرستادن به حافظه (delete Word) |
d3W |
حذف ۳ واژهٔ کامل و فرستادن به حافظه (delete 3 Words) |
dd |
حذف یک خط و فرستادن به حافظه |
d3d |
حذف ۳ خط و فرستادن به حافظه |
d0 |
حذف تا ابتدای خط و فرستادن به حافظه |
^d |
حذف تا نخستین نویسهٔ خط و فرستادن به حافظه |
$d |
حذف تا انتخای خط و فرستادن به حافظه |
dG |
حذف تا آخرین خط پرونده و فرستادن به حافظه |
d20G |
حدف تا خط شمارهٔ ۲۰ و فرستادن به حافظه |
p |
جایگذاری از حافظه پس از مکاننما |
P |
جایگذاری از حافظه پیش از مکاننما |
جستوجو و ایجاد تغییر متن
میانبر | کاربرد |
---|---|
* |
جستوجو برای واژهٔ زیر مکان نما به پیش |
# |
جستوجو برای واژهٔ زیر مکان نما به پس |
/ |
جستوجوی سریع متن دلخواه در میانگیر |
n |
رفتن به یافتهٔ پسین (next) |
N |
رفتن به یافتهٔ پیشین |
:s/old/new/g |
جایگزینی واژه در خط جاری |
:%s/old/new/g |
جایگزینی واژه در تمام میانگیر |
:%s/old/new/gc |
جایگزینی واژه در تمام میانگیر، با تأیید |
ویرایش
میانبر | کاربرد |
---|---|
u |
برگردان (undo) |
^r |
از نو (redo) |
r |
جایگزینی تکنویسهٔ زیر مکاننما (replace) |
J |
آوردن خطّ زیرین به انتهای خطّ جاری (Join) |
cw |
تعویض واژهٔ جاری (change word) |
c3w |
تعویض ۳ واژه از واژهٔ جاری (change 3 words) |
cW |
تعویض واژهٔ جاری (change Word) |
cc |
تعویض خط جاری |
c0 |
تعویض تا ابتدای خط جاری |
c20G |
تعویض تا خط شمارهٔ ۲۰ |
. |
تکرار دستور پیشین |
ذخیره و خروج
میانبر | کاربرد |
---|---|
:w |
نوشتن در پرونده (write) |
:wq |
ذخیره و خروج (write quit) |
ZZ |
ذخیره و خروج (write quit) |
:qall |
خروج از همهٔ میانگیرها |
:q! |
خروج بدون ذخیره (quit) |
:e! |
بار کردن دوبارهٔ میانگیر |
دیگر ویژگیها
پشتیبانی از موشی
برای پشتیبانی از موشی، از دستور زیر استفاده کنید:
:set mouse=a
پشتیبانی فارسی
برای پشتیبانی از زبانهای دوجهته در ویم، از دستور زیر استفاده کنید:
:set termbidi
اجرای برنامههای پوسته
ویم میتواند برنامههای پوسته را درون خودش و بدون بسته شدن اجرا کند.
:! ls :! /usr/bin/bash
ذخیرهٔ پرونده با sudo
زمانی که یک پرونده با دسترسیهای محدود(برای نمونه
/etc/apt/sources.list.d/system.sources
) را با کاربر معمولی ویرایش کنید امکان ذخیرهٔ آن نیست.
میتوان با اجرای فرمان زیر و با به کارگیری sudo پرونده را ذخیره کرد.
:w !sudo tee %
جابهجایی بین میانگیرها
برای جا بهجایی بین میانگیرها کلیدهای ctrl + w
را میزنیم.
برای تغییر مکان میانگیر نخست با ctrl + w
یک میانگیر را فعال میکنیم و با کلید shift + hjlk
مکان میانگیر را تغییر میدهیم. یا اینکه با تکرار ctrl + w
بین آنها جابه جا میشویم.
در صورت فعال بودن موشی به سادگی با فشردن کلیک میتوان این کار را انجام داد.
شبیهساز پایانه
میتوانید در ویم شبیهساز پایانه را اجرا کند.
:below term
چند کلید میانبر در این حالت
- جابه جایی بین میانگیرها با کلید ترکیبی
ctrl + w
- فعال سازی اسکرول با
ctrl + w
وshift + n
- خروج با فشردن i
تنظیمات ویم
تنظیمات ویم در پروندهٔ
.vimrc
در خانه ذخیره میشود.
با فرمان زیر پرونده را ایجاد یا باز کنید و تنظیمات خود را در آن قرار دهید.
$ vim ~/.vimrc
نمونه
پروندهٔ زیر یک نمونه از vimrc. است.
ویم در مرورگر
با نصب افزونهٔ vim-vixen میانبرهای ویم را در فایرفاکس استفاده کنید.
آموزش
برای آموزش کار با ویم از
vimtutor
که به همراه ویم نصب شده است، استفاده کنید.
$ vimtutor