محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
سه شنبه, ۲۲ فروردين ۱۳۹۱، ۰۸:۱۹ ق.ظ

replace کردن کلمه ای در تمام فایل های یک پوشه از طریق emacs

برای refactor کردن کد یکی از کارهایی که معمولا انجامش ضروری است تغییر اسم متغییری در کل پروژه است. در emacs چگونه این کار انجام می شود؟ با ابزاری مثل rgrep باید همه چیز را در پوشه ها پیدا کرد و دانه دانه ویرایش کرد؟

روش درست استفاده از (dired (emacs file manager است. در این روش خیلی ساده با استفاده از دستور find-dired همه ی فایل های مربوط به پروژه را لیست می کنید. سپس با m می توانید فایل هایی که مایل به جستجو هستید را mark کنید. البته ابزار با دستور % m می توانید برای mark کردن در صفحه از regex استفاده کنید که سرعت عمل بیشتری دارد . به طور مثال من همه ی فایل ها را می خواهم mark کنم پس در regex مربوطه "." می زنم و همه mark می شوند.

حالا با استفاده از دستور dired-do-query-replace-regexp می توانم دو متغییر بدهم که اولی مقدار جستجو و دومی مقدار تغییر هست. سپس در همه فایل ها نتیجه را بر می گردانند با y می توانم ویرایش هر کدام را تایید کنم و با n هم رد کنم. برای اینکه یک فایل را کلا replace کند می توانم از "!" استفاده کنم. از طرفی اگر خواستم به نتیجه قبلی برگردم "^" به من کمک می کند



نوشته شده توسط محمد افاضاتی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
محمد افاضاتی
محمد افاضاتی برنامه نویس python php دیتابیس های postgresql mongodb و ...

رونوشتی از علاقه مندی هایم برای ماندگار تر شدن!

تبلیغات

طبقه بندی موضوعی

Feedburner RSS

Others

توییتر

replace کردن کلمه ای در تمام فایل های یک پوشه از طریق emacs

سه شنبه, ۲۲ فروردين ۱۳۹۱، ۰۸:۱۹ ق.ظ

برای refactor کردن کد یکی از کارهایی که معمولا انجامش ضروری است تغییر اسم متغییری در کل پروژه است. در emacs چگونه این کار انجام می شود؟ با ابزاری مثل rgrep باید همه چیز را در پوشه ها پیدا کرد و دانه دانه ویرایش کرد؟

روش درست استفاده از (dired (emacs file manager است. در این روش خیلی ساده با استفاده از دستور find-dired همه ی فایل های مربوط به پروژه را لیست می کنید. سپس با m می توانید فایل هایی که مایل به جستجو هستید را mark کنید. البته ابزار با دستور % m می توانید برای mark کردن در صفحه از regex استفاده کنید که سرعت عمل بیشتری دارد . به طور مثال من همه ی فایل ها را می خواهم mark کنم پس در regex مربوطه "." می زنم و همه mark می شوند.

حالا با استفاده از دستور dired-do-query-replace-regexp می توانم دو متغییر بدهم که اولی مقدار جستجو و دومی مقدار تغییر هست. سپس در همه فایل ها نتیجه را بر می گردانند با y می توانم ویرایش هر کدام را تایید کنم و با n هم رد کنم. برای اینکه یک فایل را کلا replace کند می توانم از "!" استفاده کنم. از طرفی اگر خواستم به نتیجه قبلی برگردم "^" به من کمک می کند

موافقین ۱ مخالفین ۰ ۹۱/۰۱/۲۲
محمد افاضاتی regex emacs dired replace ایمکس find-dired

نظرات  (۳)

merci kheli jaleb bod, modati bod ke donbale hamchin chizi bodam
آخه ترشیده emac هم شد ادیتور؟ :)))))
بیام بزم نصفت کنم
ها؟
پاسخ:
بـــــه یوشا :D
پس چی خوبه؟ notepad ? ویندوزی؟ :D
۰۱ شهریور ۹۱ ، ۱۸:۳۷ یوشا آل ایوب
بیا اسلکر شو به جمع بزرگان بپیوند: http://yousha.blog.ir/post/16

ارسال نظر

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