ویم: تفاوت بین نسخه‌ها

از ویکی فارسی اوبونتو
پرش به: ناوبری، جستجو
جز (نصب)
 
(۹۸ نسخه‌ٔ میانی ویرایش شده توسط ۵ کاربر نشان داده نشده)
سطر ۱: سطر ۱:
 
[[پرونده:Vimlogo.svg|128px|thumb|left|نشان ویرایشگر متن ویم]]
 
[[پرونده:Vimlogo.svg|128px|thumb|left|نشان ویرایشگر متن ویم]]
 +
'''ویم''' (به انگلیسی Vim مخفّف Vi IMproved به معنای [[Vi|وی‌ آی]] بهبود یافته)، یک [[Text Editor|ویرایشگر متن]] [[Free Software|آزاد]]، سبک، برای برنامه‌نویس‌ها،  و سازگار با [[وی‌آی]] است.
  
'''ویم''' (به انگلیسی Vim مخفّف Vi IMproved به معنای [[Vi|وی]] بهبود یافته)، یک [[Text Editor|ویرایشگر متن]] سبک، قدرتمند، [[Free Software|آزاد]] و سازگار با [[vi|وی]] است.
+
__TOC__
 +
{{الگو:clear}}
 +
== ویژگی‌ها ==
 +
* سبک
 +
* سریع
 +
* در دسترس (روی بیشتر [[Distro|توزیع‌ها]]‌ به صورت پیش‌فرض نصب است)
 +
 
 +
== نصب ==
 +
برای نصب این [[Software|نرم افزار]]، از فرمان زیر استفاده کنید:
 +
{{bc|$ sudo apt install vim}}
 +
 
 +
برای نصب محیط گرافیکی ویم، و یکسری امکانات دیگر نظیر مدیریت clipboard فرمان زیر را اجرا کنید:
 +
{{bc|$ sudo apt install vim-gtk3}}
 +
 
 +
== کاربرد ==
 +
 
 +
=== گشودن پرونده و شاخه ===
 +
{| class="wikitable sortable"
 +
! class="unsortable"| میانبر
 +
! class="unsortable"| کاربرد
 +
|-
 +
|  <code dir="ltr">vim FILE</code> || گشودن پرونده یا ساخت پروندهٔ تازه
 +
|-
 +
|  <code dir="ltr">vim DIR</code> ||  گشودن شاخهٔ مورد نظر
 +
|-
 +
|}
 +
 
 +
برای نمونه فرمان زیر شاخهٔ جاری را با مدیر پروندهٔ ویم می‌گشاید.
 +
{{bc|$ vim  . }}
 +
 
 +
----
 +
 
 +
ویم دارای چند حالت کاری است. اصطلاحا ویم یک ویرایشگر modal است که همه کارهای ویرایشی در آن در یکی از این حالت‌ها انجام می‌گیرد.  '''معمولی'''، '''درج''' و '''بصری''' حالت‌های اصلی در ویم هستند.
 +
 
 +
در هرکجا برای وارد شدن به حالت معمولی، کافی است [[Esc Key|دکمهٔ فرار]] یا کلید ترکیبی  {{ic| Ctrl + [}}  را بزنید.
 +
پس از اجرا ویم در این حالت قرار می‌گیرد.
 +
 
 +
[[پرونده:Vim modes.png|240px|thumb|left|حالت‌های کاری در ویم]]
 +
{{الگو:clear}}
 +
 
 +
=== حرکت مکان‌نما در حالت دستور ===
 +
{| class="wikitable sortable"
 +
! class="unsortable"| میانبر
 +
! class="unsortable"| کاربرد
 +
|-
 +
|  <code>h</code> || رفتن به چپ
 +
|-
 +
|  <code>j</code> || رفتن به خط بعدی (jump)
 +
|-
 +
|  <code>7j</code> || ۷ خط به پایین رفتن
 +
|-
 +
|  <code>k</code> || رفتن به خط پیشین
 +
|-
 +
|  <code>l</code> || رفتن به راست
 +
|-
 +
|
 +
|-
 +
|  <code>w</code> || رفتن به واژهٔ پسین (word)
 +
|-
 +
|  <code>W</code> || رفتن به واژهٔ کامل پسین (Word)
 +
|-
 +
|  <code>b</code> || رفتن به واژهٔ پیشین (back)
 +
|-
 +
|  <code>B</code> || رفتن به واژهٔ کامل پیشین (Back)
 +
|-
 +
|  <code>e</code> || رفتن به انتهای واژه (end)
 +
|-
 +
|  <code>E</code> || رفتن به انتهای واژهٔ کامل (End)
 +
|-
 +
|
 +
|-
 +
|  <code>0</code> || رفتن به شروع خط
 +
|-
 +
|  <code>^</code> || رفتن به نخستین نویسهٔ خط
 +
|-
 +
|  <code>$</code> || رفتن به انتهای خط
 +
|-
 +
|  <code>gg</code> || رفتن به نخستین خط میانگیر (go)
 +
|-
 +
|  <code>G</code> || رفتن به آخرین خط میانگیر (Go)
 +
|-
 +
| <code>37gg</code>, <code>37G</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="unsortable"| میانبر
 +
! class="unsortable"| کاربرد
 +
|-
 +
|  <code>y</code> || فرستادن متن انتخابی به حافظه (yank)
 +
|-
 +
|  <code>yw</code> || فرستادن واژهٔ جاری به حافظه (yank word)
 +
|-
 +
|  <code>y3w</code> || فرستادن ۳ واژه از واژهٔ جاری به حافظه (yank 3 words)
 +
|-
 +
|  <code>y10w</code> || فرستادن ۱۰ واژه از واژهٔ جاری به حافظه (yank 10 words)
 +
|-
 +
|  <code>yW</code> || فرستادن واژهٔ کامل جاری به حافظه (yank Word)
 +
|-
 +
|  <code>y3W</code> || فرستادن ۳ واژهٔ کامل از واژهٔ کامل جاری به حافظه (yank 3 Words)
 +
|-
 +
|  <code>yy</code> || فرستادن خط جاری به حافظه
 +
|-
 +
|  <code>y3y</code> || فرستادن ۳ خط از خط جاری مکان‌نما به حافظه
 +
|-
 +
|
 +
|-
 +
|  <code>x</code> || حذف نویسهٔ زیر مکان‌نما و فرستادن به حافظه
 +
|-
 +
|  <code>dw</code> || حذف یک واژه و فرستادن به حافظه (delete word)
 +
|-
 +
|  <code>d3w</code> || حذف ۳ واژه و فرستادن به حافظه (delete 3 words)
 +
|-
 +
|  <code>d10w</code> || حذف ۱۰ واژه و فرستادن به حافظه (delete 10 words)
 +
|-
 +
|  <code>dW</code> || حذف یک واژهٔ کامل و فرستادن به حافظه (delete Word)
 +
|-
 +
|  <code>d3W</code> || حذف ۳ واژهٔ کامل و فرستادن به حافظه (delete 3 Words)
 +
|-
 +
|  <code>dd</code> || حذف یک خط و فرستادن به حافظه
 +
|-
 +
|  <code>d3d</code> || حذف ۳ خط و فرستادن به حافظه
 +
|-
 +
|
 +
|-
 +
|  <code>d0</code> || حذف تا ابتدای خط و فرستادن به حافظه
 +
|-
 +
|  <code>^d</code> || حذف تا نخستین نویسهٔ خط و فرستادن به حافظه
 +
|-
 +
|  <code>$d</code> || حذف تا انتخای خط و فرستادن به حافظه
 +
|-
 +
|  <code>dG</code> || حذف تا آخرین خط پرونده و فرستادن به حافظه
 +
|-
 +
|  <code>d20G</code> || حدف تا خط شمارهٔ ۲۰ و فرستادن به حافظه
 +
|-
 +
|
 +
|-
 +
|  <code>p</code> || جای‌گذاری از حافظه پس از مکان‌نما
 +
|-
 +
|  <code>P</code> || جای‌گذاری از حافظه پیش از مکان‌نما
 +
|-
 +
|}
  
 +
----
  
== ویژگی‌ها ==
+
=== جست‌وجو و ایجاد تغییر متن===
* سبک
+
{| class="wikitable sortable"
* سریع
+
! class="unsortable"| میانبر
* در دسترس (روی بیشتر [[توزیع]] ها به صورت پیش‌فرض نصب است)
+
! class="unsortable"| کاربرد
 +
|-
 +
|  <code>*</code> || جست‌وجو برای واژهٔ زیر مکان نما به پیش
 +
|-
 +
|  <code>#</code> || جست‌وجو برای واژهٔ زیر مکان نما به پس
 +
|-
 +
|  <code>/</code> || جست‌وجوی سریع متن دلخواه در میانگیر
 +
|-
 +
|  <code>n</code> || رفتن به یافتهٔ پسین (next)
 +
|-
 +
|  <code>N</code> || رفتن به یافتهٔ پیشین
 +
|-
 +
|  <code dir="ltr">:s/old/new/g</code> || جایگزینی واژه در خط جاری
 +
|-
 +
|  <code dir="ltr">:%s/old/new/g</code> || جایگزینی واژه در تمام میانگیر
 +
|-
 +
|  <code dir="ltr">:%s/old/new/gc</code> || جایگزینی واژه در تمام میانگیر، با تأیید
 +
|-
 +
|}
 +
 
 +
----
 +
 
 +
=== ویرایش ===
 +
{| class="wikitable sortable"
 +
! class="unsortable"| میانبر
 +
! class="unsortable"| کاربرد
 +
|-
 +
|  <code>u</code> || برگردان (undo)
 +
|-
 +
|  <code dir="ltr">^r</code> || از نو (redo)
 +
|-
 +
|  <code>r</code> || جایگزینی تک‌نویسهٔ زیر مکان‌نما (replace)
 +
|-
 +
|  <code>J</code> || آوردن خطّ زیرین به انتهای خطّ جاری (Join)
 +
|-
 +
|  <code>cw</code> || تعویض واژهٔ جاری (change word)
 +
|-
 +
|  <code>c3w</code> || تعویض ۳ واژه از واژهٔ جاری (change 3 words)
 +
|-
 +
|  <code>cW</code> || تعویض واژهٔ جاری (change Word)
 +
|-
 +
|  <code>cc</code> || تعویض خط جاری
 +
|-
 +
|  <code>c0</code> || تعویض تا ابتدای خط جاری
 +
|-
 +
|  <code>c20G</code> || تعویض تا خط شمارهٔ ۲۰
 +
|-
 +
|  <code>.</code> || تکرار دستور پیشین
 +
|-
 +
|}
 +
 
 +
----
 +
 
 +
=== ذخیره و خروج ===
 +
{| class="wikitable sortable"
 +
! class="unsortable"| میانبر
 +
! class="unsortable"| کاربرد
 +
|-
 +
|  <code dir="ltr">:w</code> || نوشتن در پرونده (write)
 +
|-
 +
|  <code dir="ltr">:wq</code> || ذخیره و خروج (write quit)
 +
|-
 +
|  <code dir="ltr">:x</code> || ذخیره و خروج (write quit)
 +
|-
 +
|  <code dir="ltr">ZZ</code> || ذخیره و خروج (write quit)
 +
|-
 +
|  <code dir="ltr">:qall</code> || خروج از همهٔ میانگیرها
 +
|-
 +
|  <code dir="ltr">:q!</code> || خروج بدون ذخیره (quit)
 +
|-
 +
|  <code dir="ltr">:e!</code> || بار کردن دوبارهٔ میانگیر
 +
|-
 +
|}
 +
 
 +
== دیگر ویژگی‌ها ==
 +
 
 +
=== پشتیبانی از موشی ===
 +
برای پشتیبانی از [[Mouse|موشی]]، از دستور زیر استفاده کنید:
 +
 
 +
{{bc|
 +
:set mouse{{=}}a
 +
}}
 +
 
 +
=== پشتیبانی فارسی ===
 +
برای پشتیبانی از زبان‌های دوجهته در ویم، از دستور زیر استفاده کنید:
 +
{{bc|:set termbidi}}
 +
 
 +
=== کپی بین ویم و حافظه کلیپبورد سیستم‌عامل===
 +
برای  فعال‌سازی این ویژگی تنظیم زیر را به تنظیمات ویم بیفزایید. البته پیشتر باید از امکان این امر مطمئن شوید.
 +
 
 +
{{
 +
bc|
 +
set clipboard{{=}}unnamedplus
 +
}}
 +
 
 +
به این ترتیب قسمتی از متن که درون میانگیر ویم قرار بگیرد در کیلپبورد سیستم‌عامل هم در دسترس خواهد بود و مقادیر موجود در کلیپبورد امکان استفاده در میانگیر ویم را دارند.
 +
 
 +
{{
 +
bc|
 +
$ vim --version
 +
+clipboard        +keymap            +printer          +vertsplit
 +
+ex_extra          +mouse_netterm    +syntax            +xterm_clipboard
 +
}}
 +
 
 +
عبارت {{ic| +clipboard}} نشانگر فعال‌بودن امکانات کلیپبورد است. این ویژگی با نصب بستهٔ گرافیکی ویم مهیا می‌شود.
 +
 
 +
 
 +
{{نکته| توجه داشته باشید برای استفاده از این ویژگی روی شیوه‌نامه ssh، باید تنظیم Enables X11 forwarding فعال شده باشد. }}
 +
 
 +
=== اجرای برنامه‌های پوسته ===
 +
ویم می‌تواند برنامه‌های [[پوسته]] را درون خودش و بدون بسته شدن اجرا کند.
 +
 
 +
{{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|
 +
:below term
 +
}}
 +
 
 +
چند کلید میانبر در این حالت
 +
 
 +
* جابه جایی بین میانگیرها با کلید ترکیبی <code>ctrl + w</code>
 +
* فعال سازی اسکرول با <code>ctrl + w</code> و <code>shift + n</code>
 +
* خروج با فشردن i
 +
 
 +
===تخم مرغ شانسی===
 +
 
 +
شکلک خنده در ویم
 +
{{bc|
 +
:smile
 +
}}
 +
 
 +
== تنظیمات ویم ==
 +
تنظیمات ویم در پروندهٔ {{ic|.vimrc}} در خانه ذخیره می‌شود.
 +
 
 +
با فرمان زیر پرونده را ایجاد یا باز کنید و تنظیمات خود را در آن قرار دهید.
 +
{{bc|$ vim  ~/.vimrc}}
 +
 
 +
{{نکته| در فایل vimrc. نباید : را در شروع تنظیم قرار داد. }}
 +
 
 +
 
 +
=== نمونه ===
 +
پروندهٔ زیر یک نمونه از vimrc. است.
 +
 
 +
== ویم در مرورگر ==
 +
  
=نصب=
+
با نصب افزونهٔ '''vim-vixen''' یا سایر افزونه‌های مشابه می‌توانید میانبرهای ویم را در فایرفاکس استفاده کنید.
برای نصب این [[Software|نرم افزار]]، در [[USC|مرکز نرم افزاری اوبونتو]] جست‌وجو کرده یا از دستور زیر استفاده کنید:
 
<pre language="bash"> $ sudo apt install vim</pre>
 
  
برای نصب محیط گرافیکی ویم، بدین صورت عمل کنید:
+
[https://addons.mozilla.org/en-US/firefox/addon/vim-vixen پیوند به افزونهٔ vim-vixen ]
<pre languag="bash"> $ sudo apt install vim-gtk3 </pre>
 
  
=کاربرد=
+
== راهنما ==
برای گشودن پروندهٔ مورد نظر با استفاده از ویم، از این دستور استفاده می‌شود:
+
برای مطالعهٔ جزئیات بیش‌تر و راهنمای این برنامه، می‌توان [[Man Page|صفحهٔ راهنما]] را مشاهده کرده یا از انتخاب {{ic|--help}} در [[CLI|خط فرمان]] استفاده کرد:
<pre languag="bash"> $ vim FILE</pre>
 
  
ویم دارای سه حالت ''دستور''، ''درج'' و ''بصری'' است. در هرکجا برای وارد شدن به حالت دستور، کافی است [[Esc Key|دکمهٔ فرار]] را بزنید.
+
{{bc|
 +
$ man vim
 +
$ vim --help
 +
}}
  
می‌توانید از فرمان‌های زیر در حالت دستور استفاده کنید.:
+
== آموزش ==
== حرکت مکان‌نما ==
 
  h = رفتن به چپ
 
  j = رفتن به پایین
 
  k = رفتن به بالا
 
  l = رفتن به راست
 
 
 
  w = رفتن به واژهٔ پسین (word)
 
  b = رفتن به واژهٔ پیشین (back)
 
  e = رفتن به انتهای واژه (end)
 
  W = رفتن به واژهٔ کامل پسین (Word)
 
  B = رفتن به واژهٔ کامل پیشین (Back)
 
  E = رفتن به انتهای واژهٔ کامل (End)
 
 
 
  0 = رفتن به ابتدای خط
 
  ^ = رفتن به نخستین نویسهٔ خط
 
  $ = رفتن به انتهای خط
 
  G = رفتن به آخرین خط پرونده (Go)
 
  20G = رفتن به خط شمارهٔ ۲۰
 
  <code>'</code><code>'</code> = بازگشت به آخرین مکان پیش از زدن دستور پیشین
 
  
== برش و جای‌گذاری ==
+
برای آموزش  کار با ویم از {{ic|vimtutor}} که به همراه ویم نصب شده است، استفاده کنید.
  y = فرستادن متن انتخابی به حافظه (yank)
+
{{bc|$ vimtutor}}
  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 = جای‌گذاری از حافظه پیش از مکان‌نما
 
  
== رفتن به حالت‌های دیگر ==
+
== پیوند به بیرون ==
  i = ورود به حالت درج پیش از مکان‌نما (insert)
 
  I =  ورود به حالت درج در ابتدای خط فعلی
 
  a = ورود به حالت درج پس از مکان‌نما
 
  A = ورود به حالت درج در انتهای خط فعلی
 
  o = ایجاد یک خط در پایین خط جاری و ورود به حالت درج در ابتدای خط جدید (open)
 
  O = ایجاد یک خط در بالای خط جاری و ورود به حالت درج در ابتدای خط جدید (open)
 
  v = ورود به حالت بصری (visual)
 
  V = ورود به حالت بصری خطّی
 
  ^v = ورود به حالت بصری بلوکی
 
  
== جست‌وجو ==
+
[https://www.vim.org پایگاه وب ویم]
  * = جست‌وجو برای واژهٔ زیر مکان نما
 
  / = جست‌وجوی سریع متن دلخواه در پرونده
 
  n = رفتن به یافتهٔ پسین (next)
 
  N = رفتن به یافتهٔ پیشین
 
  :s/old/new/g = جایگرینی واژه در خط جاری
 
  :%s/old/new/g = جایگرینی واژه در تمام پرونده
 
  :%s/old/new/gc =  جایگرینی واژه در تمام پرونده، با تأیید
 
  
== ویرایش ==
+
[https://vim.sexy درباره ویم ]
  u = برگردان (undo)
 
  ^r = از نو (redo)
 
  r = جایگزینی تک‌نویسهٔ زیر مکان‌نما (replace)
 
  J = آوردن خطّ زیرین به انتهای خطّ جاری (Join)
 
  cw = تعویض واژهٔ جاری (change word)
 
  c3w = تعویض ۳ واژه از واژهٔ جاری (change 3 words)
 
  cW = تعویض واژهٔ جاری (change Word)
 
  cc = تعویض خط جاری
 
  c0 = تعویض تا ابتدای خط جاری
 
  c20G = تویض تا خط شمارهٔ ۲۰
 
  . = تکرار دستور پیشین
 
  
== ذخیره و خروج ==
+
[https://vim.rtorr.com خلاصه دستورهای ویم ]
:w = نوشن در پرونده (write)
 
:wq = ذخیره و خروج (write quit)
 
:q! = خروج بدون ذخیره (quit)
 
:e! = بارگزاری مجدد صفحه
 
  
= پشتیبانی فارسی =
+
[https://amirsamimi.ir/vim ویدیوهای آموزش فارسی ویم]
برای یپشتیبانی از زبان‌های دوجهته در ویم، می‌توان از دستور زیر استفاده کرد:
 
<pre> set termbidi </pre>
 
  
 +
[https://jadi.net/2020/05/vim-prat-3 ادیتور ویم برای برنامه نویسی]
  
= آموزش =
+
[https://vim-bootstrap.com تولید vimrc]
برای آموزش  کار با ویم می‌توانید از <code>vimtutor</code> که به همراه ویم نصب شده است، استفاده کنید.
 
<pre languag="bash"> $ vimtutor</pre>
 
  
= پیوند به بیرون =
+
[https://vimawesome.com فهرستی جالب از افزونه‌های ویم]
[https://vim.rtorr.com/ خلاصه دستور‌های ویم ] <br/>
 
[https://amirsamimi.ir/vim/ ویدیو های آموزش فارسی ویم]
 
  
 
[[رده:ویرایشگر متن]]
 
[[رده:ویرایشگر متن]]

نسخهٔ کنونی تا ‏۲۲ اردیبهشت ۱۴۰۴، ساعت ۱۲:۴۲

نشان ویرایشگر متن ویم

ویم (به انگلیسی Vim مخفّف Vi IMproved به معنای وی‌ آی بهبود یافته)، یک ویرایشگر متن آزاد، سبک، برای برنامه‌نویس‌ها، و سازگار با وی‌آی است.


ویژگی‌ها

  • سبک
  • سریع
  • در دسترس (روی بیشتر توزیع‌ها‌ به صورت پیش‌فرض نصب است)

نصب

برای نصب این نرم افزار، از فرمان زیر استفاده کنید:

$ sudo apt install vim

برای نصب محیط گرافیکی ویم، و یکسری امکانات دیگر نظیر مدیریت clipboard فرمان زیر را اجرا کنید:

$ sudo apt install vim-gtk3

کاربرد

گشودن پرونده و شاخه

میانبر کاربرد
vim FILE گشودن پرونده یا ساخت پروندهٔ تازه
vim DIR گشودن شاخهٔ مورد نظر

برای نمونه فرمان زیر شاخهٔ جاری را با مدیر پروندهٔ ویم می‌گشاید.

$ vim  . 

ویم دارای چند حالت کاری است. اصطلاحا ویم یک ویرایشگر modal است که همه کارهای ویرایشی در آن در یکی از این حالت‌ها انجام می‌گیرد. معمولی، درج و بصری حالت‌های اصلی در ویم هستند.

در هرکجا برای وارد شدن به حالت معمولی، کافی است دکمهٔ فرار یا کلید ترکیبی 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)
:x ذخیره و خروج (write quit)
ZZ ذخیره و خروج (write quit)
:qall خروج از همهٔ میانگیرها
:q! خروج بدون ذخیره (quit)
:e! بار کردن دوبارهٔ میانگیر

دیگر ویژگی‌ها

پشتیبانی از موشی

برای پشتیبانی از موشی، از دستور زیر استفاده کنید:


:set mouse=a

پشتیبانی فارسی

برای پشتیبانی از زبان‌های دوجهته در ویم، از دستور زیر استفاده کنید:

:set termbidi

کپی بین ویم و حافظه کلیپبورد سیستم‌عامل

برای فعال‌سازی این ویژگی تنظیم زیر را به تنظیمات ویم بیفزایید. البته پیشتر باید از امکان این امر مطمئن شوید.


set clipboard=unnamedplus

به این ترتیب قسمتی از متن که درون میانگیر ویم قرار بگیرد در کیلپبورد سیستم‌عامل هم در دسترس خواهد بود و مقادیر موجود در کلیپبورد امکان استفاده در میانگیر ویم را دارند.


$ vim --version
+clipboard         +keymap            +printer           +vertsplit
+ex_extra          +mouse_netterm     +syntax            +xterm_clipboard

عبارت +clipboard نشانگر فعال‌بودن امکانات کلیپبورد است. این ویژگی با نصب بستهٔ گرافیکی ویم مهیا می‌شود.


نکته: توجه داشته باشید برای استفاده از این ویژگی روی شیوه‌نامه ssh، باید تنظیم Enables X11 forwarding فعال شده باشد.

اجرای برنامه‌های پوسته

ویم می‌تواند برنامه‌های پوسته را درون خودش و بدون بسته شدن اجرا کند.


:! 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

تخم مرغ شانسی

شکلک خنده در ویم

:smile

تنظیمات ویم

تنظیمات ویم در پروندهٔ .vimrc در خانه ذخیره می‌شود.

با فرمان زیر پرونده را ایجاد یا باز کنید و تنظیمات خود را در آن قرار دهید.

$ vim  ~/.vimrc


نکته: در فایل vimrc. نباید : را در شروع تنظیم قرار داد.


نمونه

پروندهٔ زیر یک نمونه از vimrc. است.

ویم در مرورگر

با نصب افزونهٔ vim-vixen یا سایر افزونه‌های مشابه می‌توانید میانبرهای ویم را در فایرفاکس استفاده کنید.

پیوند به افزونهٔ vim-vixen

راهنما

برای مطالعهٔ جزئیات بیش‌تر و راهنمای این برنامه، می‌توان صفحهٔ راهنما را مشاهده کرده یا از انتخاب --help در خط فرمان استفاده کرد:


$ man vim
$ vim --help

آموزش

برای آموزش کار با ویم از vimtutor که به همراه ویم نصب شده است، استفاده کنید.

$ vimtutor

پیوند به بیرون

پایگاه وب ویم

درباره ویم

خلاصه دستورهای ویم

ویدیوهای آموزش فارسی ویم

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

تولید vimrc

فهرستی جالب از افزونه‌های ویم