2012-05-02 12 views
26

द्वारा मेरे पास जावा में एक तैयार कथन है कि मैं सामने के लिए एक तर्क जोड़ रहा हूं। लंबी कहानी छोटी, मुझे सेट विधियों का एक टन लेना है और 1.vim regex वृद्धि सभी संख्याओं को 1

पर एक खोज करने और सभी नंबरों से मेल खाने के लिए एक त्वरित तरीका चाहते हैं, और फिर उन्हें एक से बढ़ाएं।

उत्तर

38

यह पता लगाया।

%s/\d\+/\=(submatch(0)+1)/g 

http://vim.wikia.com/wiki/Using_an_expression_in_substitute_command

+7

yup। हालांकि, पूरी अभिव्यक्ति के आसपास माता-पिता की आवश्यकता नहीं होनी चाहिए। '\ = सबमिच (0) + 1' चाल चलाना चाहिए। –

10

केवल regex आप जानना चाहते हैं \d है।

:g/\d/exe "normal! \<C-A>" 
+0

आप इस वैश्विक को कैसे बनाते हैं (जैसे 'g'' के लिए 'g' संशोधक)। इसके अलावा, आपको अपने '+' – user606723

+0

@ user606723 से बचने की आवश्यकता है: जी परिभाषा वैश्विक है –

+0

यह संक्षेप में प्रश्न का उत्तर देता है क्योंकि केवल लाइन पर पहला नंबर बढ़ता है (प्रश्न में उल्लिखित पहला तर्क), जबकि स्वीकृत उत्तर हर जगह सभी संख्याओं में वृद्धि करेगा। – Matthew

संबंधित मुद्दे