نقطه ویرگول;

هر از گاهی از هر چیزی

هر از گاهی از هر چیزی

vim یک ادیتور همه کاره

دوشنبه, ۲۷ شهریور ۱۳۹۱، ۰۲:۵۳ ب.ظ
vim یک ادیتور خیلی پیشرفته با امکانات بالاست. برای خیلی ها پیدا کردن یک ادیتور با قابلیت های بالا یه دغدغه ست. ادیتوری که بتونید به راحتی و با سرعت خیلی بالا کاراتون رو باهاش انجام بدید. برای مثال یه فایل sql دارید با ۵۰۰ هزار خط! برای باز کردن این فایل با خیلی از تکست ادیتور ها شما مشکل خواهید داشت. وقتی من این فایل رو با geany باز کردم تقریبن باز نشد چه برسه به اینکه بخام درش تغییراتی بدم. مثلن از خط ۱۵۰ هزار تا ۲۰۰ هزار پاک کنم؟!
نصب vim:
برای این کار می شه از vim استفاده کرد. vim یک ادیتور پیشرفته ست (تقریبن vi ی هستش که کامل شده).
vi در تمامی لینوکس ها به صورت پیش فرض نصب می شه اما ممکنه vim نصب نشده باشه(بسته به توزیعی که استفاده می کنید).
vim در تمام سیستم عامل ها قابل نصب هستش. برای دانلود می تونید به نشانی سایت اصلی vim برید.
برای نصب vim از مخازن در توزیع های دبیان بیس می تونید از این دستور استفاده کنید:
apt-get install vim
تقریبن تمامی دستورات vi در vim هم کار می کنه اما شما در vi خیلی از امکانات مورد نظرتون رو نخواهد داشت. مثل Auto Complete یا syntax highlighter یا ... برای همین ابتدا vim رو نصب کنید و سپس در خط فرمان بنویسید:
vim
ادیتور باز می شه و می تونید شروع کنید به کار.
کار با تب ها:
شما می تونید بنویسید sudo vim و ادیتور رو باز کنید. اما برای باز کردن فایل خاصی می تونید از این دستور استفاده کنید:
vim test.php
اگر نام فایل رو وارد نکردید می تونید با زدن این دستور فایل مورد نظر رو باز کنید:
:tabedit [fileurl]
برای نشون دادن دستورهای موجود (معادل دابل تب در ترمینال) شما می تونید از کلید Ctrl+D استفاده کنید.
برای باز کردن یه فایل جدید در یه تب دیگه می تونید از این دستور استفاده کنید:
:tabnew [fileurl]
برای حرکت بین تب ها می تونید از gt و gT استفاده کنید. توجه کنید که کلیدها رو پشت سر هم می زنید. ینی کلید g رو می زنید و بعد کلید t یا T رو می زنید.
خروج از یک فایل:
برای خارج شدن از یک فایل از q: استفاده کنید. اگر در فایل تغییراتی دادید و می خاید ذخیره نشه می تونید از q!: استفاده کنید.
ذخیره ی فایل:
برای ذخیره ی فایل می تونید از w: استفاده کنید. برای ذخیره و خروج از wq: و برای اعمال اینکار ها از کلید a استفاده کنید. ینی مثلن برای ذخیره کردن تمامی تب ها و خروج می تونید از wqa: استفاده کنید.
بازگردانی و تکرار (redo و undo):
به جای Ctrl+z می تونید از کلید u استفاده کنید و برای redo از کلید Ctrl+r استفاده کنید.
نوشتن در فایل:
برای وارد شدن به حالت نوشتاری می تونید کلید i یا a رو بزنید. فرقشون اینه که اولی قبل از نشانگر شروع می کنه به تایپ و دومی بعد از نشانگر
با کلید o یا O می تونید در هر سطری که هستید به سطر بعد یا قبل برید و در حالت نوشتار قرار بگیرید.
کپی - پیست :
برای کپی کردن یه خط می تونید از کلید yy استفاده کنید و برای پیست کردن از کلید p استفاده کنید.
اگر بخواید یه بخشی از یک خط رو کپی کنید باید به این صورت عمل کنید:
ابتدا کرسر رو می برید به ابتدای محلی که کپی می خاید بکنید. بعد کلید v رو می زنید و وارد حالت visual می شید و با کلید های جلو و عقب مقداری رو که می خاید سلکت می کنید و بعد کلید y رو می زنید. بعد هر جایی خواستید پیست کنید کلید p رو می زنید.
برای کپی کردن ۱۰ خط از محل فعلی به این صورت عمل کنید:
y10y
اگر می خاید از خط ۱۰ تا ۳۰ رو کپی کنید می تونید به خط ۱۰ برید و به این روش عمل کنید:
y30G
به حروف کوچیک و بزرگ دقت کنید
حرکت در صفحه:
برای رفتن به خط ۳۰ کافیه به اینکارو بکنید:
30G
برای اسکرول تاپ از Ctrl+y و برای اسکرول دان از Ctrl+e استفاده کنید
پاک کردن:
برای پاک کردن یک کاراکتر می تونید از کلید x یا X استفاده کنید. فرقشون اینه که یکی قبل از نشانگر رو پاک می کنه و یکی بعد از نشانگر رو.
برای پاک کردن یک خط کافیه از dd استفاده کنید.
حالا می خاید از محل نشانگر ۱۰ خط رو پاک کنید. چیکار باید بکنید؟
d10d
حالا برای پاک کردن خط ۱۰ تا ۵۰ چه می کنید؟
d50G
فکر می کنم کم کم متوجه شدید که از G به عنوان اشاره به شماره ی خط استفاده می شه در تمامی دستورات vim.
جستجو:
برای جستجو در فایل می تونید از / استفاده کنید و برای رفتن به نتیجه ی بعدی از کلید n یا N استفاده کنید.
می خاید به جای test از test1 استفاده کنید و همه ی testها رو به test1 تبدیل کنید. برای replace می تونید اینطوری عمل کنید:
%s/test/test1/g
توجه کنید که می تونید به جای / از @ یا | یا علامت های دیگه استفاده کنید ولی دقت کنید که هر سه تاش باید یکی باشن
ینی میتونید دستور بالا رو به این صورت هم بنویسید:
%s@test@test1@g
یا به این صورت:
%s|test|test1|g
دستورات vim خیلی بیشتر و کامل تر از این حرف هاست و ما سعی می کنیم در بخش های بعدی هم یه سری دستورات دیگه رو آماده کنیم براتون. ولی خودتون خیلی راحت می تونید با یه سرچ به نتیجه برسید.
احتمالن در ابتدا برای هایلایت کردن و تب ایندنت دچار مشکل بشید. برای همین یه سری تنظیمات ساده رو بهتون می گم که باید در شاخه ی home در فایل .vimrc اضافه کنید:
syntax on
set cindent
set smartindent
set autoindent
set noexpandtab
set tabstop=4
set shiftwidth=4
set number
set pastetoggle=
syntax enable
set background=dark
colorscheme default
filetype on
شاید تنها بخشی که نیاز به توضیح داشته باشه pastetoggle هستش. در vim وقتی چن خط رو از جای دیگه کپی و پیست می کنید هر خط به اندازه ی خط قبلی تب می خوره و جلو می ره و کدتون به هم می ریزه. برای همین وقتی می خواید از جای دیگه paste کنید می تونید کلید F2 رو بزنید و بعد paste کنید تا کدتون نیاز به ویرایش زیادی نداشته باشه.
بازم اگه سوالی داشتید میتونید زیر همین بخش بپرسید و تا بتونم جواب می دم بهتون.
دوستان خوبمون در سایت لینوکس ریویو هم یه پست خوب در این مورد دارن:
  • آموزش vi

  • همچنین برای اطلاعات بیشتر می تونید به این صفحات می تونید مراجعه کنید :
    http://www.worldtimzone.com/res/vi.html
    http://www.tuxfiles.org/linuxhelp/vimcheat.html
    همچنین ویکی خود سایت vim
    http://vim.wikia.com/wiki/Vim_Tips_Wiki
    موفق باشید
    موافقین ۰ مخالفین ۰ ۹۱/۰۶/۲۷
    مرتضی فتحی

    ادیتور

    vim

    texteditor

    نظرات  (۴)

    «ابتدا کرسر رو می برید به ابتدای محلی که کپی می خاید بکنید. بعد کلید v رو می زنید و وارد حالت visual می شید. بعد شیفت رو می گیرید و با کلید های جلو و عقب مقداری رو که می خاید سلکت می کنید»
    توی حالت visual احتیاجی به گرفتن شیفت نیست.
    درسته. حق با شماست
    ممنون از تذکر
    اصلاح می شه
    سلام،
    phpdevelopers که رفت هوا ازش بک آپ داری لااقل؟!
    این مطالب که هستن همش بک آپ اونه دیگه عزیزم :)

    ارسال نظر

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی