मैं Xcode 8 में डिलीट-लाइन कीबोर्ड शॉर्टकट कैसे बनाऊं? Xcode 3 समाधान अब काम नहीं करते हैं


80

इसके पिछले संस्करणों में Xcodeवर्तमान लाइन को हटाने के लिए एक महत्वपूर्ण बाइंडिंग बनाना संभव था। अलग-अलग समाधान थे और वे यहां उदाहरण के लिए वर्णित हैं:

Xcode: डिलीट लाइन हॉट-की

Xcode डुप्लिकेट / डिलीट लाइन

http://bigdiver.wordpress.com/2009/09/11/configure-homeend-key-bidings-on-mac-os-x/

http://www.betadesigns.co.uk/Blog/2010/02/03/custom-xcode-shortcuts/

सभी समाधानों में इन फ़ाइलों में से एक को संशोधित करना शामिल है:

~ / पुस्तकालय / आवेदन समर्थन / Xcode / कुंजी बाइंडिंग / *। pbxkeys
~ / पुस्तकालय / KeyBindings / DefaultKeyBinding.dict
~ / पुस्तकालय / KeyBindings / PBKeyBinding.dict

मौजूदा शॉर्टकट के लिए एक अच्छा संसाधन में Xcode 4है http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html । हटाने के संबंध में कई सूचीबद्ध हैं, लेकिन "डिलीट लाइन" के लिए कोई भी नहीं।

लेकिन, ये समाधान तब से काम नहीं कर रहे हैं Xcode 4

अद्यतन : मुद्दा अभी भी के रूप में ही हैXcode 5.1.1

अद्यतन : मुद्दा अभी भी के रूप में ही हैXcode 6.1 GM Seed 2

अद्यतन : अभी भी 26 अप्रैल 2016 के रूप में Xcode संस्करण 7.3 (7D175) पर लागू होता है

अद्यतन : छह साल बाद Xcode 8.3 में एक अंतर्निहित समाधान है। नीचे उत्तर देखें।


इस बीच में मैं के साथ एक कुंजीपटल मैक्रो बनाने का फैसला किया keyboardmaestro.com
कालस

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

जवाबों:


71

लगता है Xcode 8.3 ने आखिरकार हटा दिया लाइन कमांड :)

डिफ़ॉल्ट रूप से, कोई कीबोर्ड शॉर्टकट इसे नहीं सौंपा गया है, इसलिए आपको अपने आप को इसमें जोड़ना होगा:

  1. ओपन Xcode > प्राथमिकताएं > कुंजी बाइंडिंग
  2. निम्न को खोजें Delete Line
  3. कुंजी कॉलम में एक कीबोर्ड शॉर्टकट जोड़ें

Xcode कुंजी बाइंडिंग


1
वाह! अच्छा पकड़ा! कभी नहीं सोचा था कि ऐसा कभी होगा!
कालस

क्या किसी को पता चला है कि और क्या बदल सकता है?
कालस

1
@ क्लास मुझे भी यार, कभी सोचा नहीं था ये देखेगा! मैंने Xcode 8.2.1 और Xcode 8.3.2 IDETextKeyBindingSet.plistफ़ाइलों के बीच एक अंतर चलाया और केवल पाया गया परिवर्तन यह डिलीट लाइन कमांड ऊपर था :(
पाउलो मटोस

@FelixTurner क्या आपने अभी तक नए Xcode बीटा 2 के साथ प्रयास किया है?
पाउलो मटोस

3
मुझे Xocde 9 बीटा में वर्कअराउंड मिला । कृपया मेरा जवाब नीचे देखें। stackoverflow.com/a/45868495/1287336
Wooseong Kim

95

यहाँ और वहाँ बहुत खोज के बाद, मैं निम्नलिखित समाधान पर आया:

controlकुंजी दबाकर रखें, और फिर दबाएँ AKK

(नोट: दूसरी Kखाली लाइन को हटाता है)।

दरअसल यह दो कमांड्स का संयोजन है: Move to Beginning of Paragraph& Delete to End of Paragraph। तुम भी / सेट अन्य प्रमुख (रों) का उपयोग करें और यह भी उपयोग कर सकते हैं अन्य आदेश (रों) उदाहरण के लिए / सेट / परिवर्तन कुंजी बाइंडिंग सकता है Move to Beginning of Lineऔर Delete to End of Line। मैंने उपरोक्त (डिफ़ॉल्ट) कुंजी बाइंडिंग का उपयोग किया क्योंकि वे मेरे अनुकूल थे।

संपादित करें:

एक से अधिक लगातार लाइनों को हटाने के लिए , पहले controlकुंजी दबाए रखें और फिर दबाएं A(बस पैराग्राफ / लाइन की शुरुआत में जाने के लिए), फिर तब Kतक दबाएं रखें जब तक कि सभी लाइनें हट न जाएं (यह कर्सर के रूप में रहता है शुरुवात)।

बस कार्य को आसान बनाने के लिए (मेरे लिए), मैंने पैराग्राफ के आरंभ / अंत में जाने के commandDलिए Delete to End of Paragraphऔर home/ के endलिए निर्धारित किया है ।


2
अच्छा समाधान है, लेकिन मैं वास्तव में एक ही शॉर्टकट के लिए देख रहा हूँ। यदि मैं TextWrangler में 5 पंक्तियों को हटाना चाहता हूँ उदाहरण के लिए यह केवल पाँच बार cmd-d दबा रहा है। विस्मयकारी रूप से पर्याप्त cmd-d का उपयोग Xcode में नहीं किया गया है ...
कलास

@ कालस, कृपया मेरा अद्यतन उत्तर देखें। यह वह नहीं हो सकता है जो आप उम्मीद कर रहे हैं, फिर भी इसका एक अच्छा समाधान है।
वासु

जैसे ही आपके उत्तर में कुछ वृद्धि होती है, मैं इसे स्वीकार करता हूं क्योंकि Xcode 4 में यह जल्द ही कभी भी शामिल नहीं होगा।
कालस

xCode भयानक है! - एंड्रॉयड स्टूडियो का उपयोग कर एंड्रॉयड डेवलपर।
M'hamed

वर्तमान लाइन को हटाने के लिए सबसे लंबे समय तक शॉर्टकट कभी CTRL + A + K + K देखते हैं
18:25 पर canbax

59

समझ गया! यह 4.5 के माध्यम से XCode 4.3 में काम करता है और इसके लिए कोई अतिरिक्त एप्लिकेशन की आवश्यकता नहीं है और XCode विशिष्ट है।

यह समाधान मूल रूप से यहाँ वर्णित डुप्लिकेट लाइन कमांड के समान है :

प्लिस्ट फाइल को एडिट करें

यह /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist पर है

ध्यान दें कि:

  • जुड़ा हुआ जवाब इसके लिए XCode का उपयोग करने का सुझाव देता है, लेकिन मुझे लगता है कि यह XCode को क्रैश करता है
  • यह मार्ग लायन के लिए है - यह अन्य OS संस्करणों के लिए भिन्न हो सकता है
  • इस फ़ाइल को संपादित करने के लिए आपको सूडो या परिवर्तन की अनुमति देनी पड़ सकती है
  • संपादन से पहले XCode को बंद करें

एक नया <dict>तत्व जोड़ें

इस पाठ को केवल <dict>इस फ़ाइल के निचले भाग के करीब जोड़ें

    <key>Custom</key>
    <dict>
      <key>Delete Current Line In One Hit</key>
      <string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string> 
    </dict>

ध्यान दें कि:

  • यह मौजूदा के अंदर है <dict>इसलिए इसके </dict></plist>बाद है
  • यह स्ट्रिंग में तीन प्रमुख क्रियाओं को "डिलीट करेंट लाइन इन वन हिट" नाम की कार्रवाई से जोड़ता है। मैंने सही संयोजन पाने के लिए यहां विभिन्न विकल्पों के साथ खेला। उदाहरण के लिए, यदि आप MoveToBeginningOfLine की कोशिश करते हैं, तो इसके विपरीत के बजाय deleteToEndOfLine को हटा दें, फिर इसे खाली लाइनों पर उपयोग करने से लाइन और पूरी अगली लाइन हट जाएगी । जो अप्रिय है

इसे सहेजें और XCode खोलें

XCode में एक नया कुंजी बाइंडिंग जोड़ें

लिंक किए गए उत्तर में इसके लिए स्क्रीनशॉट देखें या ऐसा करें:

  1. XCode प्राथमिकताएं खोलें
  2. कुंजी बाइंडिंग का चयन करें
  3. सभी पर क्लिक करें
  4. सिक्सर बॉक्स में "हटाएं" टाइप करें और "एक हिट में करंट लाइन हटाएं" के लिए खोजें
  5. अपने नए बंधन जोड़ें।

यह यह करना चाहिए लेकिन एक चेतावनी के लिए। मैं नए बंधन को बचाने के लिए XCode कभी नहीं कर सका । यहाँ एक ही समस्या का वर्णन किया गया है, हालांकि मेरे हलके बदलाव में थोड़ी भिन्नता थी:

  1. डिफ़ॉल्ट बाइंडिंग का डुप्लिकेट बनाएं (बाइंडिंग विंडो के नीचे बाईं ओर + बटन दबाएं और डुप्लिकेट बनाएं)
  2. डुप्लिकेट में नया बंधन सेट करें
  3. वरीयता संवाद बंद करें (यह भिन्नता है!)
  4. प्राथमिकताओं को फिर से खोलें और पुराने डुप्लिकेट का नया डुप्लिकेट बनाएं और पुराने डुप्लिकेट को हटा दें।

क्या एक रिगारामोल, एह? लेकिन यह काम करता है। अब मैंने शेर पर XCode 4.3 में संपूर्ण वर्तमान लाइन को हटाने के लिए Ctrl + D मैप किया है।


अद्यतन: एक सीमा जो मुझे इस समाधान से चिड़चिड़ाने के लिए आई है, वह यह है कि यह एक समय में केवल एक पंक्ति को हटाती है, भले ही आपके पास बहुत कुछ हो। मेरी प्राकृतिक प्रवृत्ति 3 लाइनों का चयन करने और ctrl + D को हिट करने और उन सभी को पोंछने की है - लेकिन ऐसा नहीं है।
Rhubarb

ध्यान दें कि यदि आप XCode का नया संस्करण स्थापित करते हैं तो इसे संरक्षित नहीं किया जाएगा जबकि आपके सामान्य कुंजी बंधन अनुकूलन होंगे। (मैं पुराने XCode.app का नाम बदलकर और नए को नए सिरे से स्थापित करके "अपग्रेड" करता हूं)। वास्तविक कुंजी बाइंडिंग ~ / लाइब्रेरी में हैं ... इसलिए उन्हें संरक्षित किया जाता है, लेकिन यह नई प्रविष्टि नहीं है
Rhubarb

हाँ, यह Xcode 5 में काम करता है और कुंजी बाइंडिंग को बचाता है ताकि दूसरों को सोचने के लिए प्रोत्साहित किया जा सके कि यह परेशान करने लायक है :)
RedYeti

@ रुर्ब उन पंक्तियों में चयनित पाठ को एक साथ कई पंक्तियों को हटाने के लिए और सिर्फ शॉर्टकट मारकर केवल delete:कमांड अनुक्रम के सामने एक जोड़ दें delete:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph::। यदि आप इसे अपने उत्तर में संपादित करते हैं तो बहुत अच्छा होगा।
मैक् लोपेज़ साज़ेन

2
यह Xcode 6.2 (6C86e) में काम करता है, और मुझे कुंजी बाइंडिंग को Xcode "सेव" करने के लिए वर्कअराउंड की भी आवश्यकता नहीं थी। वाह! :)
विल हिंस

16

मुझे Xcode 9 के लिए अस्थायी वर्कअराउंड मिला ।

खोलें Xcode / सामग्री / Frameworks / IDEKit.framework / संसाधन / IDETextK eyBindingSet.plist और नीचे पंक्तियाँ जोड़ें।

यह उस कार्रवाई की नकल करता है जो सीमित समर्थन के साथ Xcode 8 में होती है। यह केवल एक लाइन को हटा सकता है लेकिन मैं किसी तरह संतुष्ट हूं। मुझे उम्मीद है कि इसे जल्द ही ठीक कर लिया जाएगा।

<key>Customized</key>
<dict>
    <key>Delete Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, moveDown:, deleteBackward:</string>
</dict>

Xcode को पुनरारंभ करने के बाद, आप Key Bindingsनीचे की तरह कस्टमाइज़्ड आइटम देख सकते हैं ।

यहाँ छवि विवरण दर्ज करें

इसे बांधें और उपयोग करें!

संपादित करें) मुझे लगता है कि एक नीचे मूल एक से बेहतर है।

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>

2
Xcode 9 यहाँ पर सही उत्तर। यह Xcode 9 संस्करण 9.0 (9A235)
uspython

यह Xcode 9 में क्यों टूट गया? यह मेरे लिए थोड़े काम आया। मुझे एक अनुकूलित कुंजी जोड़ने के बजाय मौजूदा हटाए गए लाइन स्ट्रिंग मान के लिए मान बदलना पड़ा।
अलेक्जेंडर स्मिथ

13

मैं BetterTouchTool का उपयोग करता हूं , यह बहुत अच्छा है:

यहाँ छवि विवरण दर्ज करें


अच्छा विकल्प, प्लिस्ट को हमेशा अच्छे से न बदलें। और खोई हुई सेटिंग को आसान करें। Apple Apple इसे उपयुक्त बनाएगा।
अल्बर्ट। क्यू

समस्या को हल करने के लिए बहुत अच्छा विकल्प। दुर्भाग्य से एक परमाणु कार्रवाई नहीं है इसलिए यदि आप पूर्ववत करना चाहते हैं, तो आपको दो बार सीएमडी जेड (दो हटाए गए) को दबाना होगा। इसके अलावा विंडो मैनेजर इसमें उपयोगी है (मैं तमाशा भी सुझाऊंगा)।
रुडोल्फ रियल

1
बीटीटी एक कमाल का उपकरण है। साथ ही यह विधि भविष्य के लिए पर्याप्त प्रमाण है जब तक कि Apple के पास वे कार्य हैं जिन्हें आप करने के लिए जोड़ सकते हैं।
सुपरडूंगटैंगो

1
मैंने BTT का उपयोग करने पर विचार नहीं किया था (जैसा कि मैं पहले से ही उपयोग कर रहा हूं!) ऐप के अंदर कुछ संपादित करने से बहुत बेहतर है। साथ ही आप मशीनों के बीच कॉन्फिगर्स को सिंक कर सकते हैं, जो मुझे चाहिए।
21

9

Rhubarb का उत्तर सही है और काम करता है, लेकिन एक बात यह है कि plist फ़ाइल में अधिक सरल कमांड है। Rhubarb के सभी निर्देशों का पालन करें लेकिन

के बजाय

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>

नीचे उपयोग करें

<string>selectLine:, delete:</string>

यह अधिक स्पष्ट है और खराबी की किसी भी संभावना को दूर फेंक देता है।

मैं इसे एक टिप्पणी के रूप में लिखना चाहता हूं, लेकिन मेरी "प्रतिष्ठा" मुझे ऐसा करने की अनुमति नहीं देती है।


इस उत्तर के साथ अपने समाधान को मिलाने से समस्या हल हो जाती है। धन्यवाद वास्तव में
marcelosalloum

8

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

  1. सबसे पहले Xcode-> प्राथमिकताएं खोलें

  2. कुंजी Bindigs का चयन करें

  3. खोज अनुच्छेद हटाएं

  4. अपने पैराग्राफ़ में डिलीट पैराग्राफ़ बदलें

यहाँ छवि विवरण दर्ज करें


मुझे नहीं पता कि अन्य लोग इस सरल समाधान का उपयोग क्यों नहीं कर रहे हैं। कृपया इसे वोट करें क्योंकि अन्य बहुत अधिक जटिल हैं। यह एक ऐसा भी है कि आप इसे कैसे कर सकते हैं: एक महत्वपूर्ण बंधन के माध्यम से
चेकलिस्ट

Delete ParagraphXcode संस्करण 9.0 (9A235) में कुछ भी निष्पादित नहीं होता है । क्या आपने Xcode 9 में इसका परीक्षण किया था?
वूसॉन्ग किम

2

यदि आप एक कीबोर्ड मेस्ट्रो उपयोगकर्ता हैं, तो बस एक मैक्रो बनाएं जो निम्न कार्य करता है:

  • कमान लेफ्ट एरो
  • शिफ्ट डाउन एरो
  • हटाएं

मैंने इसे कमांड-डी को सौंपा, और इसे केवल Xcode में उपलब्ध कराया।


मैं बेहतर टच टूल का उपयोग कर रहा हूं और आपको इसे उसी रूप में असाइन करने में सक्षम होना चाहिए।
abc123

1

ऐसा लगता है कि XCode अब एक तानाशाही बनाम बनाम एक फ़ाइल का उपयोग करता है, और नया प्रारूप एक कुंजी बंधन में कई कमांड जोड़ने का समर्थन नहीं करता है। वहाँ भी करने के लिए या तो बाइंड करने के लिए कस्टम आदेशों को जोड़ने के लिए एक तरीका प्रतीत नहीं होता है। एक ही तरीका है कि मैं कुछ काम कर पाने के लिए मिल गया है एक प्रमुख के रूप में अलग कार्रवाईयों के लिए बाध्यकारी सेट करके है ^Dके लिए deleteToEndOfLine:है, तो ^Lके लिए moveToBeginningOfLine:, आप दे ^L+^Dआप संयुक्त प्रभावी बनाने के लिए।


इसे संभालने के लिए पहले से ही कुछ चूक हैं। ^ "लाइन के अंत तक हटाएं" के लिए, "लाइन की शुरुआत के लिए हटाएं" के लिए cmd-delete करें।
कालस

नियमित (ग्लोबल) कीबाइंडिंग.डिक्ट फ़ाइल में हम अलग-अलग कमांड को एक अरै में रखते हैं, और वह काम करता है।
मैकयूसर

1

यदि आपको अन्य ऐप्स में उस कुंजी बाइंडिंग से कोई आपत्ति नहीं है, तो आप इसे सामान्य कोको की कुंजी बाइंडिंग में सेट करने का प्रयास कर सकते हैं। इसका एक स्पष्टीकरण है।


2
मैंने पहले से ही यह कोशिश की, लेकिन वैश्विक कुंजी बाइंडिंग XCode 4 में काम नहीं करती है। मैंने उन्हें टेक्स्टमेट में परीक्षण किया और वे वहां काम करते हैं। इसलिए मैंने सही संशोधन किया।
कालस

1

ऐसा लगता है जैसे यह अब नहीं किया जा सकता है ... अगर मैं गलत हूं तो मुझे सुधारने के लिए स्वतंत्र महसूस करें ... लेकिन यहां मेरा नया समाधान है ...

xcode प्राथमिकताओं पर जाएं, फिर कुंजी बाइंडिंग टैब। डिफ़ॉल्ट सेट को डुप्लिकेट करें, ताकि जब आप सुझाव दें कि मैं कुछ तोड़ता हूं तो आप मुझे पागल कर देंगे।

2 कुंजियाँ खोजें जो आसन्न हैं और आपके द्वारा उपयोग की जाने वाली किसी भी कमांड के लिए उपयोग नहीं की जाती हैं ... ";", "" "शायद। (मैं नई फ़ाइल के लिए कमांड n का उपयोग नहीं करता हूं, इसलिए मैंने n, m को चुना है)

पहली कुंजी को "मूव ऑफ़ बेगिंग ऑफ़ लाइन" पर सेट करें और दूसरी कुंजी "लाइन के अंत तक हटाएं"

फिर एक पंक्ति को हटाने के लिए उस अनुक्रम का उपयोग करें ...

वैकल्पिक लाइन का चयन करने के लिए कुछ सेट किया जाएगा, तो बस हटाएँ का उपयोग करें।


1

XCode 5 और 6 के लिए एक आसान समाधान:

Alcatraz स्थापित करें: http://alcatraz.io/ तब " XCodePlus delete line " प्लगइन स्थापित करने के लिए इसका उपयोग करें :

Window > Package manager

कर रहे हैं अन्य भयानक प्लगइन्स के बहुत सारे के रूप में अच्छी तरह से।


-1

पहले खुला Xcode-> प्राथमिकताएं

चुनते हैं कुंजी Bindigs का

फिर सर्च करें डिलीट करें

अपने शॉर्टकट के लिए पंक्ति का अंत बदलें (मैं सीएमडी + डी पसंद करता हूं )

बस इतना हीयहाँ स्क्रीनशॉट है


हम्म ... यह पूरी लाइन को डिलीट नहीं करता है।
क्लेला

आपको लाइन की शुरुआत
LoGoCSE

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