इंटेलिज आइडिया में, एक सुविधा है। मान लें कि मैंने अपने कोड में कहीं भी एक चर myCamelCase
का उपयोग किया है। फिर यदि मैं mCC
टाइप करता हूं और Ctrl - या कुछ ऐसे महत्वपूर्ण संयोजन दर्ज करें, तो यह myCamelCase
तक फैलता है। क्या विम में कुछ समान है?विम में कैमलकेस विस्तार इंटेलिज आइडिया की तरह?
उत्तर
ठीक है, मुझे दो बार जवाब देने के लिए क्षमा करें, लेकिन चूंकि मेरा पहला प्रयास बिंदु से चूक गया, तो मुझे एक और जाना होगा। यह मैंने सोचा जितना जटिल है, लेकिन संभवतः उतना ही जटिल नहीं है जितना मैंने इसे बनाया है (!)।
अब यह सभी मिलान करने वाले चर नामों का सुझाव देने के लिए संशोधित किया गया है।
सबसे पहले, यहाँ 'myCamelCase' स्ट्रिंग से 'एमसीसी' संक्षिप्त नाम उत्पन्न करने के लिए एक समारोह है:
function! Camel_Initials(camel)
let first_char = matchstr(a:camel,"^.")
let other_char = substitute(a:camel,"\\U","","g")
return first_char . other_char
endfunction
अब, यहाँ एक समारोह है कि एक संक्षिप्त नाम ('एमसीसी') लेता है और स्कैन करता है मौजूदा बफर (वर्तमान पंक्ति से पीछे) "शब्द" के लिए जो इस संक्षेप में है। सभी मैचों की एक सूची लौटा दिया जाता है:
function! Expand_Camel_Initials(abbrev)
let winview=winsaveview()
let candidate=a:abbrev
let matches=[]
try
let resline = line(".")
while resline >= 1
let sstr = '\<' . matchstr(a:abbrev,"^.") . '[a-zA-Z]*\>'
keepjumps let resline=search(sstr,"bW")
let candidate=expand("<cword>")
if candidate != a:abbrev && Camel_Initials(candidate) == a:abbrev
call add(matches, candidate)
endif
endwhile
finally
call winrestview(winview)
if len(matches) == 0
echo "No expansion found"
endif
return sort(candidate)
endtry
endfunction
इसके बाद, यहाँ एक कस्टम-पूरा होने के समारोह है कि कर्सर के तहत शब्द पढ़ता है और मैचों ऊपर कार्यों द्वारा दिया पता चलता है:
function! Camel_Complete(findstart, base)
if a:findstart
let line = getline('.')
let start = col('.') - 1
while start > 0 && line[start - 1] =~ '[A-Za-z_]'
let start -= 1
endwhile
return start
else
return Expand_Camel_Initials(a:base)
endif
endfunction
setlocal completefunc=Camel_Complete
का उपयोग करें: इस का उपयोग करने के लिए, आप "completefunc" को परिभाषित करना होगा सम्मिलित मोड पूरा होने, प्रकार Ctrl-Xctrl-U, लेकिन मैं आम तौर पर करने के लिए CTRL-एल इस नक्शा:
inoremap <c-l> <c-x><c-u>
अपने vimrc में इस कोड के साथ आप खोजना चाहिए जो लिखने से mCC
द्वारा पीछा किया CTRL-L अपेक्षित प्रतिस्थापन करेगा। यदि कोई मिलान विस्तार नहीं मिलता है, तो संक्षेप अपरिवर्तित है।
कोड पानी-तंग नहीं है, लेकिन यह परीक्षण किए गए सभी साधारण मामलों में काम करता है। आशा करता हूँ की ये काम करेगा। अगर मुझे कुछ भी स्पष्ट करने की ज़रूरत है तो मुझे बताएं।
विम में vim-abolish नामक एक प्लगइन है। ऊंट मामले में विस्तार के लिए मानचित्र crc
का उपयोग करें।
- 1. टॉमकैट इंटेलिज आइडिया: रिमोट तैनाती
- 2. इंटेलिज आइडिया - ग्रहण स्क्रैपबुक समतुल्य
- 3. बैश के लिए इंटेलिज आइडिया की समापन शैली
- 4. टेक्स्ट फ़ाइल के साथ इंटेलिज आइडिया समस्या
- 5. इंटेलिज आइडिया 12 जीडब्ल्यूटी आवेदन युद्ध
- 6. प्रोजेवार्ड इंटेलिज आइडिया में कैसे काम करता है?
- 7. इंटेलिज आइडिया प्रोजेक्ट्स के लिए ग्रहण का उपयोग
- 8. इंटेलिज आइडिया में स्कैला कोड कैसे चलाएं 10
- 9. आइडिया इंटेलिज़
- 10. इंटेलिज-विचार: अक्षर कुंजी की ऑटो-दोहराव
- 11. इंटेलिज की त्वरित पहुंच इंटेलिज
- 12. रिलीज बिल्डिंग निर्यात - इंटेलिज आइडिया के माध्यम से फ्लेक्स
- 13. इंटेलिज-आइडिया पर टॉमकैट के माध्यम से जीडब्ल्यूटी ऐप 10
- 14. क्या मैं इंटेलिज आइडिया का उपयोग कर ग्रीनफुट के लिए विकसित कर सकता हूं?
- 15. इंटेलिज आइडिया में किसी अन्य व्यक्ति द्वारा कक्षा को प्रतिस्थापित करने का कोई तरीका है?
- 16. इंटेलिज
- 17. मैं कैसे इकाई परीक्षण कैशिंग की तरह एक कार्यान्वयन विस्तार
- 18. एंड्रॉइड विस्तार योग्य ग्रिड व्यू Google छवियों की तरह
- 19. इंटेलिज,
- 20. विम: ग्रहण की तरह Ctrl-बैकस्पेस और Ctrl-डेल
- 21. इंटेलिज
- 22. इंटेलिज
- 23. इंटेलिज
- 24. स्वरूपण आउटपुट ताकि इंटेलिज आइडिया दो ग्रंथों के लिए भिन्नता दिखाता है
- 25. जेटब्रेन इंटेलिज में गिट
- 26. इंटेलिज आइडिया: कैरेट विकल्प पर तत्व के उपयोग को हाइलाइट करें। रंग बदलें
- 27. एंड्रॉइड में ग्रिड की तरह Pinterest
- 28. इंटेलिज आइडिया किस लॉन्च के साथ लॉन्च करने के लिए उपयोग करता है?
- 29. क्या विम में रीशेर्पर की "विस्तार चयन" सुविधा का अनुकरण करने का कोई तरीका है?
- 30. की तरह में वाइल्डकार्ड
कमाल! मेरे द्वारा यही कहा जा सकता है। फिर भी मैं आपको और अधिक पूछने के लिए लालची/आलसी हूं। यदि एक से अधिक संभावित विस्तार हैं: उदा। myCamelCase myCamelCart, आखिरी एक चुना जाता है। इसके बजाय, क्या इसे विम में Ctrl-P कीवर्ड पूर्णता की तरह व्यवहार करने के लिए बनाया जा सकता है? फिर, कमाल! – dharm0us
मुझे खुशी है कि यह काम किया! एकाधिक मैचों को संभालना केवल समाधानों की एक सूची वापस करने के लिए Expand_Camel_Initials() प्राप्त करने का विषय होना चाहिए और उसके बाद आप 'fullfunc' को सेट करने के लिए सेट करना होगा ताकि आप तब तक चुन सकें। मैं कोशिश करूंगा और इस सप्ताह के अंत में इसे देख लूंगा। –
ठीक है, यह दर्दनाक नहीं था जैसा मैंने सोचा था ... मैंने अपना जवाब संपादित कर लिया है और अब यह आपकी इच्छा के अनुसार काम करना चाहिए। अगर आपको कोई समस्या है तो मुझे बताएं (मुझे इसका परीक्षण करने का मौका नहीं मिला है)। –