क्या मैं विम में अगली पंक्ति में टिप्पणियों की निरंतरता को अक्षम कर सकता हूं?


65

विम में, अगर मैं एक कोड फ़ाइल में एक टिप्पणी टाइप कर रहा हूं, और मैं हिट करता हूं Enter, तो यह स्वचालित रूप से न्यूलाइन को एक टिप्पणी बना देता है।

उदाहरण के लिए, रूबी फ़ाइल में:

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

आम तौर पर, यह वही है जो मैं चाहता हूं, लेकिन हमेशा नहीं। मैं इस ऑटो-टिप्पणी व्यवहार को अस्थायी रूप से कैसे बंद कर सकता हूं?


अस्थायी रूप से, क्या आप एक ऐसा कमांड चाहते हैं जो इसे एक बार करता है, या कुछ विकल्प सेट करता है जो कुछ कमांड तक चलेगा जब तक आप इसे वापस चालू नहीं करते हैं? संभावित क्रॉस साइट डुप्लिकेट: stackoverflow.com/questions/4896003/…
Ciro Santilli 中心:::

जवाबों:


86

मुझे लगता है कि आप ढूंढ रहे हैं

:set formatoptions-=cro

से :help fo-table:

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

t       Auto-wrap text using textwidth
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.
...

13
आपको बहुत - बहुत धन्यवाद! यह व्यवहार मुझे परेशान कर रहा था - मैं यूनिक्स vi से लिनक्स विम पर आया था। Googlers के लिए: स्थायी उपयोग के लिए , stackoverflow.com/questions/6076592/… को भी देखें और इस लाइन को / etc / vimrc में दर्ज करें:autocmd BufNewFile,BufRead * setlocal formatoptions-=cro
bgStack15

मदद नहीं की; टाइपिंग /**<ESC>oअभी भी अगली पंक्ति में एक स्टार जोड़ता है।
Qix

काम नहीं करता है। z
felwithe

8

अस्थायी रूप से 'पेस्ट' विकल्प सेट करने से आप जो चाहें कर सकते हैं, लेकिन यह बहुत सारी अन्य विशेषताओं को भी निष्क्रिय कर देता है:

:set pasteइसे चालू करने और :set nopasteइसे बंद करने के लिए उपयोग करें । वैकल्पिक रूप से, आप :set paste!इसे टॉगल करने के लिए उपयोग कर सकते हैं ।

यह सभी देखें:

:help 'paste'
:help 'pastetoggle'

(वे आदेश एकल-उद्धरण के साथ टाइप किए गए हैं।)


4
:set pasteइसे चालू करने और :set nopasteइसे बंद करने के लिए
उपयोगकर्ता

2
वैकल्पिक रूप से आप :set paste!इसे ट्राई और FALSE टॉगल करने के लिए उपयोग कर सकते हैं
फेलिप अल्वारेज़

3

मैं गैर-स्वरूपित सादे नई लाइनों के साथ प्रवेश करता हूं <CR>

जब मैं टिप्पणी की गई ब्लॉक में अगली पंक्ति लिखना जारी रखना चाहता हूं तो मैं Oहमेशा की तरह कुंजी का उपयोग करता हूं ।

इसे इस्तेमाल करे:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>

1
आपका क्या मतलब है <CR>? एक विशेष कुंजी?
पीटर मोर्टेंसन

1
सीआर का मतलब गाड़ी वापसी के लिए है। जिन कंप्यूटरों पर मैंने इसका उपयोग किया है, उन्हें Enter कुंजी में मैप किया गया है।
सेबेस्टियन ज्येलंकी

0

मैंने इसे समाप्त कर दिया है:

nnoremap <Leader>o o<Esc>^Da
nnoremap <Leader>O O<Esc>^Da

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


0

यह उत्तर डेबियन और इसके कुछ डेरिवेटिव पर लागू होता है ।

डेबियन डिस्ट्रीब्यूशन पर विम डिफॉल्ट्स अनुचित हैं। वे चलने के /usr/share/vim/vim80/defaults.vimबाद (और!) में /etc/vim/vimrcस्थित होते हैं। विम को अपनी चूक का उपयोग न करने के लिए कहने का एकमात्र तरीका ~/.vimrcयह सुनिश्चित करना है कि भले ही वह खाली हो। स्टार्टअप पर विम से पढ़ने की कोशिश करता है .vimrc, लेकिन अगर फ़ाइल नहीं मिली है तो यह उन चूक को लागू करता है जो बहुत अवांछनीय व्यवहार लाती है जैसे माउस एकीकरण, कॉपी-पेस्ट quirks, टिप्पणी ऑटो-रैप, आदि।

डेबियन पर आप बस चलाकर सब ठीक कर सकते हैं touch ~/.vimrc

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.