2010-11-21 13 views
6

मैंने हाल ही में एक्लिप्स से विम तक स्विच किया है। मैं इसे प्यार कर रहा हूँ। ऐसे कुछ हैंगअप हैं जिन पर मैं काम कर रहा हूं, लेकिन जिन लोगों में मुझे बहुत परेशानी हो रही है उनमें से एक है PHP डॉक टिप्पणियां। ग्रहण में मैं टाइप कर सकते हैं:विम: इंडेंट स्क्रिप्ट के भीतर से टेक्स्ट को कैसे बदलें

/** [enter] 

और अगली पंक्ति ऑटो

* 

से भरना होगा तो मैं होगा:

/** 
* [comment goes here] 

वहाँ इस तरह कुछ भी है कि अगर मैं सोच रहा हूँ विम के लिए ऐसा लगता है कि कमांड चलाकर दस्तावेज़ टिप्पणियों को स्वत: उत्पन्न करने के लिए कुछ प्लगइन्स हैं, लेकिन मैं इसे टाइप करना चाहता हूं क्योंकि मैं टाइप कर रहा हूं।

मैं PHP इंडेंट स्क्रिप्ट (http://www.vim.org/scripts/script.php?script_id=1120) के साथ खेल रहा था और मुझे यह पहचानने के लिए मिला कि यह एक डॉक्टर टिप्पणी ब्लॉक के अंदर कब है, लेकिन मैं यह नहीं समझ सकता कि इसे वास्तव में टेक्स्ट को बदलने और इसे जोड़ने के लिए कैसे प्राप्त किया जाए "*" ब्लॉक के अंदर प्रवेश करते समय मारने के बाद।

मैं कोशिश की है कि मैं क्या देखा है अन्य प्लग-इन करते हैं:

let @z = ' * ' 
put! z 

यह भी कोशिश की:

exe 'normal!' '"zgp' 

लेकिन कोई भाग्य। क्या यह इंडेंट स्क्रिप्ट से संभव नहीं है, और यदि नहीं, तो मैं वास्तव में एक टिप्पणी टिप्पणी ब्लॉक को पहचानने के लिए विम कैसे प्राप्त करूं और तदनुसार कार्य कर रहा हूं जब मैं टाइप कर रहा हूं?

किसी भी मदद की सराहना की जाएगी!

उत्तर

2

इंडेंटेशन फ़ाइलों के साथ गड़बड़ करने की कोई आवश्यकता नहीं है। विम का formatoptions यह आपके लिए और विभिन्न भाषाओं में (केवल PHP नहीं) करेगा।

आप r अपने formatoptions में शामिल किया है सुनिश्चित करें:

:setlocal fo+=r "to set 
:set fo? "to query 

आप में इस शामिल कर सकते हैं अपने .vimrc या .vim/ftplugin/php.vim में (आप बस PHP के लिए इस सक्रिय करने के लिए चाहते हैं)।

formatoptions और फ़ाइल प्रकार प्लगइन्स बारे में अधिक जानकारी के लिए देखें:

+1

यह जाने का सही तरीका है। एक बहुत ही व्यापक उत्तर के तेज़ सारांश के रूप में, मैं कहूंगा कि 'vimrc में' set fo + = r' जोड़ें। –

+1

इस के लिए धन्यवाद ... बहुत अच्छा काम करता है – andrew

+0

अजीब, यह काम करता है जब मेरे पास सभी प्लगइन्स अक्षम होते हैं और मैं f + + r सेट करता हूं, लेकिन जब स्टॉक PHP इंडेंट स्क्रिप्ट (कोई संशोधन नहीं) का उपयोग करते हैं और मैं fo + = r सेट करता हूं, तो यह नहीं करता है काम नहीं करता के लिए सेट? == "qrowcb" ... कोई विचार? क्या कोई और सेटिंग है जो इसे अक्षम कर सकती है? – andrew

1

क्या आपके वीमआरसी में नीचे दिया गया कोड जोड़ना चाहते हैं जो आप चाहते हैं?

autocmd BufNewFile,BufRead *.php setlocal formatoptions+=r formatoptions+=o 
autocmd BufNewFile,BufRead *.php setlocal comments=s1:/*,mb:*,ex:*/,://,:# 

मैं वर्तमान में काफी को समझ नहीं सकता यह <!-- ---> अधिभावी टिप्पणी है, जो ऐसा करता है बिना काम करने के लिए कैसे। अर्थात। यह <!-- --> टिप्पणियों के साथ ऑटो इंडेंटिंग तोड़ देगा।

संपादित करें। जॉन्सवेब के वितरण के रूप में ://,:# से comments जोड़ा गया।

+0

'comments' आपूर्ति' php द्वारा स्वचालित रूप से स्थापित किया जाना चाहिए। vim 'इंडेंटेशन स्क्रिप्ट। ' टिप्पणियां HTML वाक्यविन्यास का हिस्सा हैं। – Johnsyweb

+0

@ जॉन्सवेवे हां, लेकिन उपरोक्त स्निपेट ओवरराइट करता है कि 'टिप्पणियां = ...' कर कर। अगर मैंने 'टिप्पणियां + = ...' की बजाय, */* */शैली टिप्पणियां ठीक से काम नहीं करती हैं --- मुझे यकीन नहीं है कि क्यों। – dennycrane

+0

मेरे लिए बाहर काम करता है: 'टिप्पणियां = एस 1:/*, एमबी: *, पूर्व: * /,: //, # ' – Johnsyweb

0

अपने vimrc को यह जोड़ने का प्रयास करें:

let g:PHP_autoformatcomment=1 

मैं किसी Mac हूँ और यह डिफ़ॉल्ट रूप से सक्षम किया जा रहा है। कार्य वास्तव में आपने कैसे कहा।

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