سؤال

لا اعلم شيئا عن تعبيرات همة. لدي foldexpr همة التي تأتي مع ملف بناء الجملة من أجل ملفات xdebug أثر. التعبير القائمة يبدو مثل هذا:

foldexpr=strlen(substitute(substitute(substitute(substitute(getline(v:lnum),'^TR.*$','',''),'\\s>=>','->',\"g\"),'^\\s.\\{20\\}\\(\\s\\+\\)\\?->.*$','\\1',''),'\\s\\s','\',\"g\"))-2

وهذا يعمل موافق لملفات التتبع الافتراضية، والتي تبدو مثل هذا:

0.0974    3908596     -> GenericDispatcher->dispatch() /home/tomw/source/public_html/main.php:49
0.0975    3908676       -> ReflectionClass->getMethods() /home/tomw/source/presentation/framework/routing/GenericDispatcher.php:59
0.0975    3910532       -> ReflectionFunctionAbstract->getName() /home/tomw/source/presentation/framework/routing/GenericDispatcher.php:60

وغيرها.

ولكن، إذا قمت بتكوين Xdebug لإظهار دلتا ذاكرة في التتبع ملفات التتبع في نهاية المطاف مثل هذا (لاحظ عمود إضافي مع دلتا الذاكرة، على سبيل المثال +80):

0.0964    3908336      +84     -> GenericDispatcher->dispatch() /home/tomw/source/public_html/main.php:49
0.0965    3908416      +80       -> ReflectionClass->getMethods() /home/tomw/source/presentation/framework/routing/GenericDispatcher.php:59
0.0965    3910272    +1856       -> ReflectionFunctionAbstract->getName() /home/tomw/source/presentation/framework/routing/GenericDispatcher.php:60 

ويمكن لأحد أن يقول لي كيفية تعديل التعبير الأصلي بحيث يعمل للطي بشكل صحيح في المثال الثاني؟ لا أستطيع أن رئيس ولا ذيل لها.

والشكر

هل كانت مفيدة؟

المحلول

والجزء الذي يقرأ

'^\\s.\\{20\\}\\(\\s\\+\\)\\?->.*$'

وبالبحث عن بداية خط [^]، ثم 1 الفضاء [\\s]، ثم أي حرف لمدة 20 التكرار [.\\{20\\}]، ثم اختياريا واحد أو مسافات تذكر في وقت لاحق [\\(\\s\\+\\)\\?]، وأخيرا سهم بالإضافة إلى أي شيء آخر إلى نهاية السطر [->.*$]. إذا كنت تسير دائما إلى استخدام عمود إضافي، وأود أن مجرد تغيير البحث 20 شخصية إلى 30، كما يلي:

'^\\s.\\{30\\}\\(\\s\\+\\)\\?->.*$'

وخلاف ذلك، قد حاولت مجموعة، مثل هذا:

'^\\s.\\{20,30\\}\\(\\s\\+\\)\\?->.*$'

وأنا لم تختبر في الواقع أي من هذه، لذلك قد تضطر إلى قرص الأرقام قليلا، ولكن هذا يجب ان تحصل على انك بدأته نحو وجود لها العمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top