اطلاعیه

Collapse
No announcement yet.

نصب و راه اندازی ادیتور متن vi/vim

Collapse
X
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • نصب و راه اندازی ادیتور متن vi/vim

    ادیتور vi اولین ادیتور متنی full screen بود که برای unix نوشته شد البته سعی شد که نرم افزاری کوچک و ساده باشد همچنین میتواند با ادیتورهای متنی گرافیکی مانند notepad++ و gedit و ... رقابت کند. برای استفاده از vi ابتدا باید 3 mode که این نرم افزار قدرتمند اجرا میکند را بدانیم تا بتوانیم درباره مراحل عملکرد این ادیتور یاد بگیریم.

    توجه داشته باشید اکثر توزیع های linux جدید گونه ای از vi را استفاده میکنند که با نام vim یا (vi improved) شناخته میشوند که ابزارهای بیشتری را نسبت به vi اورجینال پشتیبانی میکند. به همین دلیل در طول این آموزش ما از vi و vim به صورت یکی در میان استفاده میکنیم. اگر در توزیع شما vim نصب نبود شما به شیوه زیر میتوانید آنرا نصب کنید.

    در ubuntu و امثال آن :
    کد PHP:
    aptitude update && aptitude install vim 
    در توزیع های redhat :
    کد PHP:
    yum update && yum install vim 
    در openSUSE :
    کد PHP:
    zypper update && zypper install vim 

    همچنین توصیه میشود مطالعه کنید :
    نحوه ذخیره یک فایل در ادیتور Vi / Vim در لینوکس
    نحوه خارج شدن از یک فایل در ادیتور Vi / Vim در سیستم عامل لینوکس
    نحوه نصب Vim 8.0 بر روی Linux بعد از 10 سال
    12 نوع از بهترین ادیتورهای (gui + cli) در سال 2015


    چرا باید vi را یاد بگیریم ؟

    دو دلیل مهم برای یادگیری vi وجود دارد :

    1 - vi همیشه در دسترس هست. (مهم نیست چه توزیعی از لینوکس داشته باشید) از آنجایی که POSIX به آن نیاز دارد.

    2 - vi میزان قابل توجهی از resource های سیستم را مصرف نمیکند و به ما اجازه میدهد که هر task قابل تصوری را بدون برداشتن انگشتانمان از روی کیبرد اجرا کنیم.

    علاوه بر این vi یک راهنمایی داخلی بسیار گسترده دارد که از طریق دستور help: بعد از اجرای vi میتوانید راهنما را ببینید.

    این راهنمای داخلی شامل اطلاعات بیشتری نسبت به صفحه man vi یا man vim میباشد :

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim1.png
مشاهده: 1
حجم: 87.9 کیلو بایت


    لود یا لانچ کردن vi :

    برای وارد شدن به محیط vi در command line دستور vi را تایپ کنید :

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim2.png
مشاهده: 1
حجم: 12.2 کیلو بایت

    سپس حرف "i" را از روی کیبرد فشار دهید تا به مد insert وارد شوید سپس میتوانید شروع به تایپ کردن نمایید. راه دیگر برای وارد شدن به محیط vi/m استفاده از دستور زیر میباشد :
    کد PHP:
    # vi filename 
    ستور بالا یک بافر جدید به نام filename باز میکند که بعدا میتوانید آن را در دیسک ذخیره کنید.


    توضیح مدهای vi :

    1 - در مد کامند vi به کاربر این اجازه را میدهد که یک فایل را مشاهده کند و همچنین دستورات vi را وارد کند که این دستورات ترکیب یک یا چندین حرف و case-sensitive (حساس به حروف بزرگ و کوچک) و اختصاری هستند. اغلب در ابتدای همه آنها میتوانیم یک عدد استفاده کنیم که این عدد نمایشگر تعداد دفعات تکرار آن دستور میباشد.

    برای مثال yy (یا Y) کل خط جاری را کپی میکند در حالی که 3yy (یا 3Y) خط جاری (خطی که نمایشگر موس اول آن است) به همراه دوخط بعدی (کلا 3 خط پشت سر هم) را کپی میکند. ما همیشه میتوانیم با فشردن کلید ESC وارد مد command بشویم.

    این حقیقت که در mode کامند، کلید های کیبرد به جای اینکه به عنوان حرف های یک متن استفاده شوند به عنوان دستورات محیط vi لحاظ میشوند مبتدیان را سر در گم میکند.

    2 - در مد ex ما میتوانیم فایل ها را دستکاری و تغییر دهیم. (ذخیره فایل جاری و راه اندازی در برنامه های دیگر)

    برای وارد شدن به این مد ما باید یک colon (:) در مد کامند تایپ کنیم که بلافاصله بعد از آن نام کامند ex-mode که نیاز است استفاده شود میآوریم بعد از ان vi به صورت اتوماتیک به مد کامند برمیگردد.

    3 - در مد insert (حرف "i" برای وارد شدن به این مد استفاده میشود) ما به سادگی میتوانیم متن وارد کنیم. اکثر کلید های keystrokes در کیبرد در محیط vi استفاده میشوند. مثلا کلید ESC که از مد insert خارج و به مد کامند برمیگرداند.

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim3.png
مشاهده: 1
حجم: 2.4 کیلو بایت


    دستورات vi :

    جدول زیر لیستی از دستورات رایج vi را نمایش میدهد. کامند های ویرایش فایل با استفاده از نشانه های زیر که به کامندها اضافه میشوند معنا پیدا میکند. برای مثال !b:.q> که بدون ذخیره کردن تغییرات در فایل خارج میشود.

    کامند h یا جهت چپ (left arrow) :
    یک کاراکتر به چپ میرود.

    کامند j یا جهت پایین (down arrow) :
    یک خط پایین میرود.

    کامند k یا جهت بالا (up arrow) :
    یک خط بالا میرود.

    کامند l یا جهت راست (right arrow) :
    یک کاراکتر به راست میرود.

    کامند H (اچ بزرگ) :
    به بالای صفحه میرود.

    کامند L (ال بزرگ) :
    به پایین صفحه میرود.

    کامند G (جی بزرگ) :
    به آخر فایل میرود.

    کامند W (دبلیو بزرگ) :
    یک کلمه به راست میرود.

    کامند b :
    یک کلمه به چپ میرود.

    عدد 0 (zero) :
    به ابتدای خط جاری میرود مانند دکمه home عمل میکند.

    علامت ^ :
    به اولین کاراکتر خط جاری میرود که کاراکتر خالی نباشد. (مثلا کاراکتر space)

    علامت $ :
    به پایان خط جاری میرود. مانند دکمه end عمل میکند.

    کلید ctrl + B :
    یک صفحه (page) به عقب برمیگردد.

    کلید ctrl + F :
    یک صفحه (page) به جلو میرود.

    کلید i :
    برای وارد کردن متن در موقعیت جاری نشانه گر موس.

    کلید I (آی بزرگ) :
    وارد کردن متن در ابتدای خط جاری

    کلید J (جی بزرگ) :
    وارد کردن متن در خط بعد از خط جاری

    کلید a :
    اضافه کردن بعد از موقعیت جاری نشانه گر

    کلید o (اوی کوچک) :
    ایجاد یک خط خالی بعد از خط جاری

    کلید O (اوی بزرگ) :
    ایجاد یک خط خالی قبل از خط جاری

    کلید r :
    جایگزینی کاراکتر در موقعیت جاری نشانه گر موس

    کلید R (آر بزرگ) :
    owerwrite در موقعیت جاری نشانه گر موس

    کلید x :
    حذف کاراکتر در موقعیت جاری نشانه گر موس

    کلید X ()ایکس بزرگ) :
    حذف کاراکتر بلافاصله بعد از موقعیت جاری موقعیت موس (به سمت چپ)

    کلید dd :
    cut کردن کل خط جاری (برای past بعدی)

    کلید D (دی بزرگ) :
    cut کردن از موقعیت جاری نشانه گر تا پایان خط (این کامند برابر با $d میباشد)

    کلید yx :
    تعداد درستی از کاراکتر ها کلمات یا خط ها را از موقعیت جاری نمایشگر کپی میکند.

    کلید yy یا Y :
    کل خط جاری را کپی میکند.

    کلید p (پی کوچک) :
    بعد از موقعیت جاری نشانه گر موس (خط بعد) paste میکند.

    کلید P (پی بزرگ) :
    قبل از موقعیت جاری نشانه گر موس (خط قبل) paste میکند.

    کلید . (نقطه) :
    آخرین دستور را تکرار میکند.

    کلید u (یو کوچک) :
    آخرین دستور را undo میکند. (غیرفعال میکند)

    کلید U (یو بزرگ) :
    آخرین دستور در آخرین خط را غیرفعال (undo) میکند. این گزینه تا زمانی کار میکند که نشانه گر هنوز در آن خط باشد.

    کلید n :
    پیدا کردن match بعدی در یک سرچ

    کلید N :
    پیدا کردن matche قبلی در یک سرچ

    (n :) :
    زمانی که چندین فایل برای ویرایش مشخص شده باشند با این دستور فایل بعدی لود میشود.

    (e file:) :
    load فایل در موقعیت فایل جاری

    (r file:) :
    وارد کردن محتوای فایل بعد از موقعیت جاری نشانه گر (خط بعد)

    (q :) :
    خارج شدن از فایل بدون ذخیره کردن تغییرات

    (W file:) :
    write کردن بافر جاری به فایل. برای افزودن به یک فایل موجود از .w >> file: استفاده میکنیم.

    (wq :) :
    ذخیره کردن محتوای فایل جاری و خروج از فایل که میتوانید به جای آن از !x و یا ZZ بزرگ استفاده کنید.

    (r! command:) :
    اجرا کردن کامند و وارد کردن خروجی کامند در متن فایل بعد از موقعیت جاری نشانه گر (خط بعد)



    آپشن های vi :

    گزینه های زیر را میتوانیم به صورت دستی در زمانی که vim در حال اجراست را تنظیم کنیم. (ما باید آنها را در فایل vimrc./~ اضافه کنیم) :
    کد PHP:
    # echo set number >> ~/.vimrc
    # echo syntax on >> ~/.vimrc
    # echo set tabstop=4 >> ~/.vimrc
    # echo set autoindent >> ~/.vimrc 
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim4.png
مشاهده: 1
حجم: 5.2 کیلو بایت


    set number :
    نمایش تعداد خط زمانی که vi یک فایل موجود یا فایل جدید را باز میکند.

    syntax on :
    این گزینه syntax highlighting را به منظور ایجاد code و خوانا تر کردن فایل های کانفیگی فعال میکند. (برای انواع فرمت های فایل)

    set tabstop=4 :
    سایز فاصله در فایل را 4 space تنظیم میکند. (مقدار پیش فرض برابر 8 میباشد)

    set autoindent :
    در کدهای برنامه نویسی autoindent برای زیباتر کردن کدها اعمال میشود.



    جستجو و جایگزینی :

    vi قابلیت این را دارد که بر اساس جستجوی مورد نظر نشانه گر موس را به موقعیت خاصی انتقال دهد. (روی یک خط مجزا یا سرتاسر یک فایل) همچنین میتواند جابه جایی متنی با و یا بدون تایید کاربر را اجرا کند :

    a ) جستجو کردن درون یک خط :
    دستور f یک خط را سرچ میکند و نشانه گر موس را به کاراکتر مورد نظر در خط جاری انتقال میدهد. برای مثال دستور fh نشانه گر موس را به حرف "h" موجود در خط جاری انتقال میدهد و زمانی که شما Enter بزنید کاراکتر h (اچ) highlight خواهد شد.

    برای مثال تصویر زیر نمونه ایست بعد از زدن کامند f4 :

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim5.png
مشاهده: 1
حجم: 2.7 کیلو بایت


    b ) جستجو در کل فایل :
    برای این کار از دستور / (اسلچ) که بلافاصله بعد از آن کلمه یا عبارت مورد نظر برای سرچ را باید تایپ کنیم و برای پیدا کردن تکرار های سرچ مورد نظر در کل فایل از کلید "n" و یا برای یک سرچ جدید کلید یا دستور "N" را استفاده میکنیم. نمونه زیر نتیجه جستجوی Jane/ میباشد :

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim6.png
مشاهده: 1
حجم: 11.3 کیلو بایت


    c ) در vi دستوری برای انجام عملیات جابه جایی در کل خطوط یک فایل استفاده میشود که شبیه به دستور sed میباشد. برای تغییر کلمه old به young در سرتاسر فایل باید دستور زیر را وارد کنید :
    کد PHP:
    :%s/old/young/
    دقت کنید که در ابتدای دستور از : (دو نقطه) استفاده کنید :

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim7.png
مشاهده: 1
حجم: 3.8 کیلو بایت


    دو نقطه (:) شروع کننده کامند ex میباشد.
    s در این مورد برای substitution (جایگزینی) میباشد.
    ٪ معنای میانبری است از خط اول تا خط آخر که این رنج را میتوانیم به صورت دستی تغییر دهیم مثلا از خط 2 تا خط 10 که باید با n,m مشخص گردد که یعنی از خط n تا خط m

    کلمه old در مثال بالا هم patern جستجو میباشد و این درحالیست که young متن جایگزین میباشد.
    حرف g نمایشگر این است که این جایگزینی باید روی تمامی string های جستجو شده در فایل اعمال شود.
    حرف c در انتهای کامند اضافه می شود تا قبل از هر چایگزینی برای تایید از کاربر سوال پرسیده شود.
    کد PHP:
    :%s/old/young/gc 
    قبل از جایگزینی کلمه اصلی با کلمه جدید vi/m پیغام زیر را به ما نمایش خواهد داد :
    کد PHP:
    replace with gabriel (y/n/a/q/l/^E/^Y)? 
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim8.png
مشاهده: 1
حجم: 4.2 کیلو بایت

    y : یعنی yes و جایگزینی را انجام میدهد.
    n : یعنی no و این جایگزینی جاری را لغو کرده و سراغ بعدی میرود
    a : یعنی all و جایگزینی را برای تمامی عبارات پیدا شده در کل متن اعمال میکند.
    q : یعنی ESC و به معنای لغو جایگزینی میباشد.
    l : (ال کوچک) یعنی جایگزینی را اجرا کند و سپس خارج شود. (برای آخرین جایگزینی استفاده میشود)
    E^ : یعنی Ctrl+e صفحه را به سمت پایین scroll میدهد تا محتوای مورد نظر برای جایگزینی را نمایش دهد.
    Y^ : یعنی Ctrl+y صفحه را به سمت بالا scroll میدهد تا محتوای مورد نظر برای جایگزینی را نمایش دهد.


    ویرایش چندین فایل در یک زمان :

    ابتدا برای باز کردن فایل file1 , file2 , file3 با دستور vim کامند زیر را اجرا میکنیم :
    کد PHP:
    # vim file1 file2 file3 
    ابتدا file1 توسط vim باز خواهد شد. برای سویچ کردن به فایل بعدی (file2) ما باید از دستور n: استفاده کنیم اگر خواستیم به فایل قبل برگردیم N: را تایپ میکنیم.

    به منظور سویچ از file1 به file3 :

    a ) دستور buffers : لیستی از فایل هایی که در حال حاضر باز هستند و قرار است edit شوند نمایش میدهد :
    کد PHP:
    :buffers 
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: linux-zone.org-forumsvi-vim9.png
مشاهده: 1
حجم: 5.0 کیلو بایت


    b ) دستور 3 buffre : (بدون نوشتن s در انتهای بافر) file3 را باز خواهد کرد تا شما بتوانید تغییرات را در آن اعمال کنید.

    در تصویر بالا علامت # (مربع(pound)) نشانه گر این است که فایل در حال حاضر باز میباشد اما در background است.
    علامت (a%) نمایشگر فایلی میباشد که قبلا باز و edit شده است و از طرف دیگر یک فضای خالی بعد از شماره فایل (3 در مثال بالا) نمایشگر این است که فایل هنوز باز نشده است.


    بافرهای موقتی vi :

    برای copy کردن جمعی از خط های پشت سر هم (برای مثال 4 خط) درون یک بافر موقتی به نام a (که مربوط به یک فایل نباشد) و قرار دادن آن خط ها در بخش دیگری از فایل در زمان دیگری و در بخش vi جاری ما باید :

    1 - کلید ESC را فشار داده تا مطمین شویم در مد کامند vi هستیم.
    2 - نشانه گر موس را روی اولین خطی از متن که میخواهیم کپی شود قرار دهیم.
    3 - دستور a4yy را برای کپی کردن خط جاری و 3 خط پشت سر آن (جمعا 4 خط) به یک بافر با نام a استفاده میکنیم. ما میتوانیم به ویرایش فایلمان ادامه دهیم و نیازی نیست که خطوط کپی شده را به سرعت در مکان دیگر past کنیم.
    4 - زمانی که به مکان مورد نظر برای past کردن خطوط کپی شده رسیدیم قبل از دستور p کوچک یا P بزرگ از a استفاده میکنیم (ap یا aP) تا خطوط کپی شده در بافر a را در این مکان past کنیم.

    ap : خطوط copy شده درون بافر a را بعد از خط جاری که نشانه گر موس در آن است past میکند.
    aP : خطوط copy شده درون بافر a را قبل از خط جاری که نشانه گر موس در آن است past میکند.

    اگر خواستید میتوانید مراحل بالا را برای past کردن محتوای بافر a در جاهای گوناگون دیگری در فایل مان تکرار کنیم. یک بافر موقتی همانطور که در بخش بالا در مورد آن صحبت کردیم مانند بافر a با بسته شدن پنجره جاری از بین میرود.

    اگر ترفندهایی دیگری در ادیتور قدرتمند vi/m میشناسید خوشحال میشیم شما هم به اشتراک بگذارید.


    موفق باشید
    محمد هابیلی

    ویرایش توسط Habili : http://linux-zone.org/forums/member/5-habili در ساعت 06-29-2017, 08:56 PM
    کانال تلگرام : https://telegram.me/linuxzone
    گروه فیس بوک : https://www.facebook.com/groups/linux.zone
    گوگل پلاس : https://plus.google.com/communities/...85817219667474
    گروه لینکدین : https://www.linkedin.com/groups/13521922
    پروفایل تویتر : https://twitter.com/Mohammad_Habili
    پروفایل اینستاگرام : https://www.instagram.com/mohammad_habili

  • #2
    اگر همزمان چندین فایل متنی را با vi/vim باز کردید برای سوئیچ کردن بین فایل ها در vi میتوانید از دستور :tabn استفاده کنید.
    سال 95 :: دانسته هایمان را به اشتراک میگذاریم
    رویاهای خودت رو دنبال کن

    Comment

    پردازش ...
    X