vim लाइन रैप इंडेंट के साथ


20

Vim / gvim इस तरह लंबी लाइनें लपेटेगा:

000000000000000000000000000000000000|
00000000000000                      |
    11111111111111111111111111111111|
111111111111111111                  |
    22222222222222222222222222222222|
222222222222222222                  |
        3333333333333333333333333333|
3333333333333333333333              |

क्या इस तरह से उन लाइनों को लपेटने के लिए विम प्राप्त करने का एक तरीका है:

000000000000000000000000000000000000|
 00000000000000                     |
    11111111111111111111111111111111|
     111111111111111111             |
    22222222222222222222222222222222|
     222222222222222222             |
        3333333333333333333333333333|
         3333333333333333333333     |

मैं चाहता हूं कि लिपटे हुए रेखा को उस अतीत के इंडेंट से शुरू करना चाहिए जहां उस लाइन की शुरुआत हुई थी। (बस स्पष्ट होने के लिए, मैं रैप के बारे में बात कर रहा हूं, पाठ्यपुस्तक नहीं।)

मैं चाहता हूं कि उस लाइन के रैपिंग में लाइन के इंडेंटेशन पर विचार किया जाए ताकि लिपटे हुए लाइनों द्वारा कोड संरचना छिपी न रहे।

जवाबों:


17

अद्यतन: यह कार्यक्षमता ATE.४.३३ though में उतरा, हालांकि आप or.४.३४४ या बाद में चाहते हैं


तो जाहिरा तौर पर यह विम के लिए एक पैच की आवश्यकता है । 2007 में वापस से वेक्लेव स्मिलॉयर द्वारा एक पैच है । मैंने फेडोरा 11 से विम 7.2.148 के साथ काम करने के लिए पैच को अपडेट किया, लेकिन यह काम करना प्रतीत होता है।


1
जैसा कि फेडोरा ने विम को अपडेट जारी किया है, मैं पैच अपडेट कर रहा हूं। नवीनतम के लिए retracile.net/wiki/VimBreakIndent देखें ।
रेट्रो

बोनस किसी को इंगित करता है जो मैकविम के साथ काम करने का तरीका बता सकता है।
डोनट

पैच कहाँ है? यही कारण है कि साइट किसी भी से नहीं जुड़ते हैं मैं देख सकता हूँ
PUK

@puk: क्षमा करें, एक प्रमुख सॉफ़्टवेयर अपग्रेड ने कुछ लिंक स्थानों को बदल दिया था। मैंने अब उन्हें ठीक कर दिया है।
पूर्वव्यापी

1
आज (25 जून, 2014) तक विखंडित पैच आधिकारिक तौर पर विम 7.4 का हिस्सा है - यह पैच 338 और 345 द्वारा जोड़ा गया है।
हेप्टाइट

14

अपने .vimrc में:

set wrap               " soft-wrap lines

" requires +linebreak compile-time option (not in the 'tiny' and 'small' builds); check your :version
set showbreak=----->   " prefix for soft-wrapped lines (no actual line break character)
"set linebreak          " soft-wrap lines only at certain characters (see :help breakat)

" If you like line numbers, you may want this instead:
"set number
"set showbreak=------>\  " line up soft-wrap prefix with the line numbers
"set cpoptions+=n        " start soft-wrap lines (and any prefix) in the line-number area

या :set showbreak=----->किसी भी सत्र में टाइप करें ।

संदर्भ के लिए, मेरे शोध पथ (विम 6.2): :help 'wrap'-> :help 'linebreak'-> (( :help 'showbreak'-> :help 'cpoptions', :help 'breakat')


बहुत अच्छा है, लेकिन वास्तव में मेरा मतलब नहीं है। आपने इसे मेरे इरादे की तुलना में थोड़ा अधिक लिया, इसलिए मेरी गलती है। मैं देखूंगा कि क्या मैं स्पष्ट कर सकता हूं।
रेट्रासील

1

आपके प्रश्न का हल आपके दो मापदंडों को निर्धारित करने में प्राप्त किया जा सकता है vimrc:

समान इंडेंटेशन वाली लाइनों को तोड़ने के लिए: set breakindent

और नरम लिपटे लाइनों इंडेंटिंग के लिए एक स्थान: let &showbreak=' '

यह इस तरह काम करेगा:

111111111111111|
 11111111111111|
 11111         |
222222222222222|
 222222222222  |
333333333333333|
 33333         |

0

आप जिस सही उत्तर की तलाश कर रहे हैं, वह नहीं है, लेकिन यहाँ मैं क्या कर रहा हूँ कि मुझे उचित इंडेंटेशन की कमी नहीं है।

सबसे पहले, नथनैल केन के इंडेंट गाइड (वैकल्पिक) को डाउनलोड करें क्योंकि यह बेहतर इंगित करता है कि आप किस इंडेंटेशन स्तर पर हैं, यहां तक ​​कि उस बिंदु पर जहां आप केवल 2 स्थान होने के लिए टैबविथ सेट कर सकते हैं!

दूसरा, वर्ड रैप को टॉगल करने के लिए एक महत्वपूर्ण संयोजन को मैप करें। मेरे पास 'रैप' के लिए 'आर' के लिए मेरा सेट है ('डब्ल्यू' बचत के लिए है)

:noremap <leader>r :set nowrap! <CR>

तब मेरे पास हमेशा वर्ड रैप ऑफ होता है, क्योंकि यह अधिक सौंदर्यवादी रूप से मनभावन है, और मुझे जल्दी से इस पर टॉगल करना है अगर मुझे लाइन को संपादित करने की आवश्यकता है।


0

बेईमानी "वर्कअराउंड" मैं वर्तमान में उपयोग करता हूं, उपसर्ग में एक निश्चित लेकिन बड़ा इंडेंटेशन है। यह अच्छा लग रहा है, जब तक कि यह निश्चित इंडेंटेशन लिपटे लाइन के इंडेंटेशन से बड़ा है, जो कि ज्यादातर समय होता है।

" 'showbreak'   : string to put before wrapped screen lines
set sbr=\ \ \ \ \ \ \ \ \ \ \ \ \ \|\ 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.