سؤال

ولدي ملف نصي باش الذي يبدأ مع تعريف وظيفة، مثل هذا:

#!/bin/bash
# .....
# .....
function test {
...
...
}
...
...

وأنا استخدم همة 7.2، وأكون قد وضعت g:sh_fold_enabled=1 بحيث يتم تمكين قابلة للطي مع باش. والمشكلة هي أن للطي من اختبار وظيفة لم ينته بشكل صحيح، أي أنه يستمر حتى نهاية الملف. يبدو شيئا من هذا القبيل:

#!/bin/bash
# .....
# .....
+-- 550 lines: function test {----------------------------------------
~
~

وظيفة في حد ذاته هو مجرد عن 40 سطرا، وأريد شيئا وكيس مثل هذا ( "صور" ويقول أكثر من الكلمات thousend، يقولون ...):

#!/bin/bash
# .....
# .....
+-- 40 lines: function test {----------------------------------------
...
...
...
~
~

لا أحد يعرف حل جيد لهذه المشكلة؟

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

المحلول

ولقد فعلت بعض البحوث، وجدت وسيلة لعلاج هذه المشكلة: لإيقاف همة من للطي وظائف حتى نهاية الملف، كان لي أن أضيف تخطي-بيان الى المنطقة بناء الجملة من أجل shExpr (في sh.vim الملف، عادة ما توضع في مكان ما مثل /usr/share/vim/vim70/syntax/):

syn region shExpr ... start="{" skip="^function.*\_s\={" end="}" ...

وهذا التغيير يتوقف ملف جملة من التفكير في أن { و} ينتمي إلى مجموعة shExpr، عندما تنتمي في الواقع إلى مجموعة وظيفة. أو هكذا فهمت، على أية حال.

ملحوظة: يعمل هذا الإصلاح فقط من أجل بناء الجملة التالي:

function test
{
....
}

وليس لذلك:

function test {
....
}

وهناك حل سريع وقذرة لعلة الماضي هو إزالة shExpr من الكتلةshFunctionList.

نصائح أخرى

وينبغي أن مجرد العمل، ولكن يبدو أن هناك خطأ في ملف بناء الجملة. المنطقة أضعاف يبدأ فعلا في كلمة "وظيفة" ويحاول الاستمرار في إغلاق '} "، ولكن تسليط الضوء على' {...}" تحيط المنطقة خلال إغلاق '}' واستمر أضعاف على البحث عن آخر واحدة. إذا قمت بإضافة آخر '}' ترون في هذا العمل:

function test {
    ...
}
}

ويبدو أن هناك حلا أسهل على رديت .

وعلى حد تعبير الكاتب في آخر:

<اقتباس فقرة>   

والخيارات I نستخدمها هي:

syntax=enable

filetype=sh

foldmethod=syntax

let g:sh_fold_enabled=3

g:is_sh=1
     

وتحرير: الحل

     

وهمة -u NONE -c 'السماح ز: sh_fold_enabled = 7' -c ': تعيين بشركة = جملة "-c' سي   على 'file.sh

وز: sh_fold_enabled = 4 ويبدو أن الاتفاق عليه على مستوى أضعاف في المناقشة. يعمل هذا الحل تماما بالنسبة لي. لم يكن لديك لتحرير الملف بناء الجملة.

وتحرير: ز: sh_fold_enabled = 5 هو في الواقع حق واحد. ليس 4. أيضا، كما أظهر الملصق على رديت، يجب أن تذهب تلك الأوامر قبل أي مكان آخر في vimrc، عدا الإضافات.

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