urxvt-selection-autotransform(1) RXVT-UNICODE urxvt-selection-autotransform(1)

selection-autotransform - تبدیل خودکار متن انتخاب‌شده

این افزونه به شما امکان می‌دهد هر زمان که متنی انتخاب شد، تبدیل‌های خودکاری را روی متن انتخاب‌شده انجام دهید.

سازوکار آن با مشخص کردن قطعه‌کدهای perl (که کاربردی‌ترین آن‌ها یک عملگر تکی "s///" است) به عنوان منابع (resources) انجام می‌شود که $_ را تغییر می‌دهند:

URxvt.selection-autotransform.0: transform
URxvt.selection-autotransform.1: transform
...

برای نمونه، دستور زیر متن‌های انتخاب‌شده به صورت "filename:number" را که اغلب در پیام‌های کامپایلر دیده می‌شوند، به vi +$filename $word تبدیل می‌کند:

URxvt.selection-autotransform.0: s/^([^:[:space:]]+):(\\d+):?$/vi +$2 \\Q$1\\E\\x0d/

و این مثال همان الگو را مطابقت می‌دهد، اما آن را با دستورهای vi جایگزین می‌کند که می‌توانید مستقیماً در ویرایشگر خود (مثلاً vi :) جای‌گذاری (paste) کنید:

URxvt.selection-autotransform.0: s/^([^:[:space:]]+(\\d+):?$/:e \\Q$1\\E\\x0d:$2\\x0d/

البته می‌توان آن را متناسب با نیازها و ویرایشگر خود شخصی‌سازی کرد :)

برای تعمیم مثال بالا به پیام‌های خطای معمولی perl (مانند «XXX at FILENAME line YYY.»)، به راه‌حلی اندکی جامع‌تر نیاز دارید:

URxvt.selection.pattern-0: ( at .*? line \\d+[,.])
URxvt.selection-autotransform.0: s/^ at (.*?) line (\\d+)[,.]$/:e \\Q$1\E\\x0d:$2\\x0d/

خط اول به کد انتخاب متن اعلان می‌کند که بخش ثابت هر پیام خطا را به عنوان الگوی انتخاب در نظر بگیرد، و خط دوم پیام را برای بارگذاری فایل به دستورهای vi تبدیل می‌کند.

2025-10-24 9.31