घुंघराले ब्रेस खोलने से पहले मैं गलती से कोई ब्रेक स्पेस कैसे बना सकता हूं?


20

मुझे पता है कि यह एक अजीब सवाल है, और यह भी इसे पोस्ट करने के लिए सही मंच नहीं हो सकता है। लेकिन यह कई सालों से एक समस्या है।

समय-समय पर, एक महीने में एक बार कहते हैं, जब मैं प्रोग्राम करता हूं, तो घुंघराले ब्रेस खोलने से पहले , मैं नियमित स्थान के बजाय नो-ब्रेक स्पेस पेश करता हूं ।

ऐसा तब होता है जब मैं लिख रहा होता हूं () {

यह रहस्यमय लिंट कीड़े की ओर जाता है। CSS क्लॉस जो लागू नहीं होते हैं। जब तक मुझे याद है यह हो सकता है।

जहाँ तक मुझे पता है, यह केवल व्यर्थ में होता है, लेकिन चूंकि यह मेरा मुख्य संपादक है, इसलिए यह शायद अन्य सॉफ़्टवेयर में कभी नहीं हुआ होगा। लेकिन मेरी पिछली नौकरियों में मेरे किसी भी सहकर्मी को कभी भी यह समस्या नहीं हुई, फिर भी वे मेरे जैसे ही कीबोर्ड लेआउट का उपयोग करते हैं। मैं हालांकि नियमित रूप से विम का उपयोग करने वाला एकमात्र व्यक्ति हूं, इसलिए मैं यहां पोस्ट करने के बावजूद ...

यह मेरे लिए कम से कम ubuntu 14.04, 16.04, और मैक ओएस एक्स में हुआ।

:set list इसे प्रकट नहीं करता है।

मैं एक फ्रेंच-कैनेडियन कीबोर्ड लेआउट का उपयोग कर रहा हूं, जिसका अर्थ है कि ब्रेस चरित्र को alt + `दबाकर किया जाता है

मैं इस समस्या के कारण बहुत थक गया हूँ, यह पर्याप्त है कि मैं इसके बारे में भूलता रहूँ।

यदि आप मुझे यह नहीं बता सकते हैं कि ऐसा क्यों होता है, तो किसी प्रकार के स्पष्ट तरीके से उस चरित्र को उजागर करने के लिए किसी प्रकार का विन्यास एक उपयुक्त उत्तर होगा और वास्तव में इस समस्या के साथ मदद करेगा।


माइकल की सलाह के अनुसार आप अपनी कीबाइंडिंग को बदल सकते हैं: superuser.com/a/142573
user12125

इस तरह बकवास है कि मैंने आखिरकार स्वीडिश से अमेरिकी तक अपने लेआउट को स्थायी रूप से बदल दिया। मैं शायद अपने फनी å, ä और ö अक्षरों को टाइप करने की तुलना में अंग्रेजी + सी + पर्ल + बैश + विम टाइप करने में अधिक समय बिताता हूं। वे आसानी से एक रचना कुंजी का उपयोग कर उत्पादित कर रहे हैं।
पाइप

जवाबों:


24

अन्य लोगों ने पहले से ही काम के इर्द-गिर्द उपलब्ध करा दिया है, लेकिन ऐसा क्यों होता है, इस कारण से मुझे लगता है कि आप गलती से Alt+ दबा रहे हैं Space

मैं अपने आप को 105-कुंजी फिनिश कीबोर्ड लेआउट के साथ Xubuntu का उपयोग कर रहा हूं, इसलिए मेरे लिए, टाइपिंग का {अर्थ है AltGr+ दबाएं 7। मैं सिर्फ xfce4 टर्मिनल में एक त्वरित परीक्षण (bash कमांड लाइन पर) किया था, और दबाने AltGr+ Spaceवास्तव में एक-ब्रेक स्पेस (U + 00A0) पैदा करता है।

मुझे यकीन है कि क्या हो रहा है कि आप Altब्रेस टाइप करने की प्रत्याशा में कुंजी दबा रहे हैं , और कभी-कभी ऐसा होता है इससे पहले कि आप वास्तव में स्पेस बार दबाएं, एक गैर-ब्रेकिंग स्पेस का उत्पादन करें। और जब से यह एक सामान्य स्थान के समान दिखता है, तो आपको एहसास नहीं होता कि यह रहस्यमय तरीके से टूटने से पहले हुआ है, जिससे आपको यह नोटिस करना मुश्किल हो रहा है और इस तरह उस आदत को अनजान करना भी मुश्किल है।


ऊह मैं कल काम पर यह कोशिश करने जा रहा हूँ। मैं हमेशा अपने घुंघराले ब्रेस से पहले एक जगह रखता हूं, यह समझ में आता है कि मैं समय-समय पर शिफ्ट कुंजी पर अपनी उंगली रखूंगा!
सरुमनतई

2
@Sarumanatee: लिनक्स पर आप वास्तव में nbsp चरित्र को पूरी तरह से अक्षम कर सकते हैं। शायद उबंटू का कीबोर्ड मैनेजर भी इसके लिए एक विकल्प है। यदि नहीं, तो आप कीबोर्ड मैप को स्वयं ट्यून कर सकते हैं (यह एक लाइन हटाने की बात है, मेरे सिस्टम में कीमैप होगा /usr/share/X11/xkb/symbols/us) कॉलिंग setxkbmap usया अपनी पसंद की भाषा के बाद
unperson325680

@progo हाँ। मैं अभी मैकोस पर हूं, और मेरे कीबोर्ड के सबसे निचले-बाएं डिफ़ॉल्ट रूप से "fn" है, जो मेरा मानना ​​है कि पूरी तरह से गूंगा है, के बाद से कीबोर्ड लेआउट को ठीक करने के लिए Karabiner का उपयोग करें। आपने मुझे वहां जांच करने के लिए प्रेरित किया, और सभी गैर-ब्रेकिंग स्पेस को सामान्य स्थान पर बदलने का एक विकल्प है
सरुमनाते

और वह विकल्प @Ilmari Karonen के सुझाव की पुष्टि करता है, क्योंकि karabiner विकल्प nbsp: आदेश + विकल्प, और विकल्प + शिफ्ट + स्पेस बनाने के लिए कमांड प्रदर्शित करता है। हालांकि यह पता चला है, यह वास्तव में अंत में सब से संबंधित नहीं था!
सरूमानते

इल्मरी करोनन सही हैं, इसलिए यह स्पष्टीकरण के बारे में नहीं है, बल्कि मेरे काम करने का वर्णन करने के लिए है। मैंने गैर-ब्रेकिंग स्पेस को त्रुटि हाइलाइटिंग समूह से जोड़ते हुए एक सिंटैक्स मैच जोड़ा है, ताकि यह साधारण स्थान से अलग दिखाई दे। वही नरम हाइफ़न और गैर-ब्रेकिंग हाइफ़न के लिए जाता है (जो दो अलग-अलग हाइलाइट समूहों से जुड़े होते हैं क्योंकि मैं कभी-कभी इन सभी को जानबूझकर पाठ में कोड के विपरीत उपयोग करता हूं)।
19

19

आप एक ऑटोकॉमैंड जोड़ सकते हैं जो विशेष फ़ाइल प्रकारों को बचाने पर नियमित रूप से गैर-ब्रेकिंग रिक्त स्थान को बदल देता है, जैसे। कुछ इस तरह से अपने vimrc में डालकर:

augroup RemoveSpaces
  autocmd!
  autocmd BufWritePre *.css silent! :%s/\%u00A0/ /g
augroup end

आप इसे अधिक फ़ाइल प्रकारों को जोड़कर या एक निशान सेट करके बदल सकते हैं और बदले हुए ऑपरेशन के बाद इसे वापस कर सकते हैं अन्यथा आपको अंतिम पंक्ति के प्रारंभ होने का प्रस्ताव दिया जाएगा जहां प्रतिस्थापन किया गया है।


ओह, यह बहुत चालाक है। मुझे लगता है कि वास्तव में अक्सर ऐसा नहीं होता है, और यह बहुत कम कष्टप्रद है क्योंकि यह समय डिबगिंग चीजों को खर्च करने की तुलना में बहुत कष्टप्रद नहीं है!
सरुमनाते

13

'listchars'विकल्प के लिए एक साधन बनाने के लिए प्रदान करता है 'list'प्रदर्शन नॉन-ब्रेकिंग रिक्त स्थान। यह डिफ़ॉल्ट रूप से सेट नहीं है, इसलिए आप इसे जोड़ना चाहते हैं।

set listchars+=nbsp:‗

जो वास्तव में मदद करता है। मुझे लगता है कि मैं यह पता लगाने की कोशिश करूँगा कि हर समय nbsp चार बार कैसे हाइलाइट किया जाता है, कोशिश करने और इसे पकड़ने के लिए जैसा कि मैं इसे टाइप कर रहा हूं: ओ
सरुमनाते

2
@Sarumanatee यदि आप अपनी vimrcइच्छा के अनुसार लाइन जोड़ते हैं , तो वास्तव में, उन्हें टाइप करते समय उन्हें हाइलाइट करें।
तुम्बलर 41

1

हाँ, यह शायद alt + space है, मेरे लिए बहुत कुछ होता है जब मैं पाइप ऑपरेटर का उपयोग करता हूं:

cat xyz.txt | grep abc

यदि आप बहुत अधिक ऊँचाई पकड़ते हैं, तो यह पाइप और बैश के बाद एक नॉन ब्रेकिंग स्पेस बनाएगा और "grep" कमांड को खोजने की कोशिश करेगा और फिर आपको बताएगा कि grep नहीं मिला है ..

macos पर कीमैप को बदलने के लिए कुछ ट्रिक थी, इसलिए हर बार जब आप एक नॉन-ब्रेकिंग स्पेस डालते हैं, तो यह एक नियमित रूप से परिवर्तित / बदल जाएगा। जहाँ तक मुझे याद है, कीमैप पूरे कीबोर्ड के लिए बदल दिया जाता है, इसलिए यह आपकी समस्या को सभी अनुप्रयोगों में ठीक कर देता है।


alt + space का विम से कोई लेना देना नहीं है। डिफ़ॉल्ट रूप में (जैसे: कोई उपयोगकर्ता मैपिंग नहीं), अधिकांश सिस्टम पर alt + space कुछ एस्केप उत्पन्न करेगा जिसमें एक Esc होगा, जो Vim में इन्सर्ट मोड से बाहर निकल जाएगा। और यह एक मुक्केबाज़ी है। गैर-विराम योग्य स्थान आपके सिस्टम पर कुछ इनपुट बस या इनपुट प्रबंधक का परिणाम है, विम / Gvim इसे कभी नहीं देखता है।
grochmal
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.