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


127

वहाँ है एक Duplicateसंपादित करें मेनू (डिफ़ॉल्ट शॉर्टकट के साथ में आदेश D), लेकिन यह है (जैसा कि हैली ने बताया) Xcode के इंटरफ़ेस बिल्डर भाग में दोहराव के लिए बने।

तो, आप कैसे ( आसानी से ) Xcode 4 में एक पंक्ति की नकल करते हैं?


संबंधित प्रश्न (एक काम के जवाब के साथ) Xcode 3 के लिए ... और जो Xcode 4 के लिए काम नहीं करता है।


सिर्फ कॉपी और पेस्ट क्यों नहीं?

क्योंकि यह थकाऊ है और बहुत अधिक हाथ-कलाबाजी करता है:

या तो (1) : लाइन की शुरुआत की ओर बढ़ना और फिर दबाना ⇧^E, फिर कॉपी करना ⌘C, नई लाइन में जाना, कर्सर को गठबंधन करना, और अंत में चिपकाना ⌘V;

या (2) : ^A(सेट लाइन टू लाइन बेगिनिंग), ^SPACE(सेट मार्क), ^E(सेट कर्सर टू लाइन एंडिंग), ⇧^W( Select to Mark,; कस्टमाइज्ड), कॉपी, नई लाइन, आदि।

फ्रैंक श्रोडर के रूप में ( संबंधित प्रश्न में ) इसे डालें:

पूरे बिंदु Cmd-C / Cmd-V शॉर्टकट का उपयोग करने के लिए नहीं है।


1
लाइन का चयन करें और पेस्ट कॉपी करें?
दानी

1
@ डैनी, सीपी सिर्फ बहुत काम है (और लाइन दोहराव कुछ ऐसा नहीं है जिसके लिए केवल शायद ही कभी आवश्यकता होती है)। :) मैंने सवाल अपडेट किया है।
ब्लेज़

1
कमांड-डी इंटरफेस बिल्डर में नियंत्रण दोहराव के लिए है।
हेलीई

@ हेले, यह जानना अच्छा है। और क्या यह ⌥-mouse-drag (जो इंटरफ़ेस तत्वों को भी कॉपी करता है) के बराबर है?
ब्लेज़

@ सच में मुझे ऐसा लगता है। Disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/… में संशोधक कुंजी अनुभाग कहता है कि "ड्रैग-एंड-ड्रॉप ऑपरेशन के दौरान विकल्प कुंजी को दबाने से चयनित ऑब्जेक्ट्स को स्थानांतरित करने के बजाय कॉपी किया जाता है।"
हेलीई

जवाबों:


173
  1. इस फ़ोल्डर पर जाएं जिसमें बल का गहरा भाग है:

    • Xcode 4.2 या पूर्व: /Developer/Library/PrivateFrameworks/IDEKit.framework/Resources
    • Xcode 4.3 या बाद का /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources:।
  2. खोलो IDETextKeyBindingSet.plist

  3. नीचे स्क्रीनशॉट के रूप में एक नया शब्दकोश और एक नया कमांड आइटम जोड़ें (उन्हें नाम दें जो आप चाहते हैं): प्लिस्ट का संपादन

    यही कारण है कि के: selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:

  4. Xcode को पुनरारंभ करें और प्राथमिकताएं - कुंजी बाइंडिंग पर जाएं, अपने कमांड को खोजें।

  5. कमांड के लिए एक मुख्य संयोजन सेट करें: कुंजी बाइंडिंग

  6. अंत में Xcode पर प्रमुख बाइंडिंग की शक्ति को प्राप्त किया ... आनंद लें!


3
@MichalStefanow, आपके द्वारा लिखा गया स्थान वास्तव में वही स्थान है जो /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resourcesअन्य नाम इंगित करता है। अन्यथा, मैंने 4.3.2 संस्करण में हैली के चरणों का सफलतापूर्वक पालन किया है ... मैं आपको मूल फ़ाइल का बैकअप लेने का सुझाव देता हूं और फिर इसे Xcode में ही खोल देता हूं (और TextEdit में नहीं)। इसके अलावा, अनुमतियों के बारे में: उन्हें खोजने के लिए (केवल फ़ाइल के लिए ही; पुनरावर्ती की आवश्यकता नहीं) खोजक में बस ठीक काम किया।
ब्लेज़

29
बड़ा थन! आलसी उपयोगकर्ताओं के लिए - SelectLine :, copy :, MoveToEndOfLine :, InsertNewline :, पेस्ट :, डिलीटबैक:
व्लाद

15
अगर आपका xCode क्रैश हो जाता है! XCode को बंद करें, किसी भी टेक्स्ट एडिटर के साथ फाइल खोलें और अपना शब्दकोश जोड़ें: <key>Custom</key> <dict> <key>Duplicate Current Line</key> <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string> </dict>
Vlad Tsepelev

2
मेरे लिए XCode 4.4.1 में काम करता है! अनुमतियों को बदलने में कुछ परेशानी हुई (खोजक या चामोद 777 और टर्मिनल से सुडो के साथ शुरू करना किसी कारण से काम नहीं किया)। मैंने फ़ाइल को कहीं और कॉपी किया, इसे संपादित किया, और मूल एक को ओवरवोट किया, जो काम किया।
Ixx

2
मैं एंड्रॉइड देव हूं और जब मैंने ios dev की कोशिश शुरू की तो मुझे एहसास हुआ कि एंड्रॉइड स्टूडियो (या इंटेलीज विचार) कैसे अच्छा है।
इलियरेमिन 58

90

अद्यतन 2020

Xcode संस्करणों पर काम करता है: 11.3.1 भी

Xcode संस्करणों में काम करता है: 7.1, 7.3, 7.3.1, 8.0, 8.1, 8.2, 8.3, 9.0, 9.1, 9.2, 10.0, 10.1, 10.2.1।

अनुदेश

  1. निम्नलिखित फ़ाइलों को संपादित करने की अनुमति दें। अधिकांश समय OS आपको फ़ाइलों को संपादित करने की अनुमति नहीं देगा।

11.3.1 संस्करण के लिए

sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources//IDETextKeyBindingSet.plist

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/

नीचे 11.3 संस्करण


sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
  1. निम्नलिखित कमांड लिखकर फ़ाइल को संपादित करें: (यदि आप चाहें तो इसे उदात्त या पाठ संपादक में खोलें)

11.3.1 के लिए

open  

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/

नीचे दिए गए संस्करणों के लिए

open /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  1. निम्नलिखित xml स्निपेट्स अप्लाई करें:
<key>custom</key>
<dict>
    <key>Duplicate Current Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string>
    <key>Duplicate Lines</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
    <key>Delete Line</key>
    <string>selectLine:, deleteBackward:</string>
</dict>

स्क्रीनशॉट

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

और Xcode को पुनः आरंभ करें और उस पर जाएं Preferences - Key Bindings, जिस कमांड को हमने टाइप किया है उसे खोजें (डुप्लिकेट लाइनें और डुप्लिकेट करेंट लाइन)।

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

बस।

नोट करने के लिए यूनिक्स लोगों के लिए: -

sudo chmod 755 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/ 

यह एक सम्मोहन की तरह काम करता है! मैंने एडिट किया IDETextKeyBindingSet.plistऔर उपरोक्त डिक्शनरी को जोड़ा और फिर प्रीकोड ऑफ़ एक्सकोड में कीज़ को मैप किया।
रंडिका विशमन

3
मैक उपयोगकर्ताओं की जरूरत है कि ये बेवकूफ जवाब हैं!
लुका दावानजो

1
XCode 10.1 के लिए, मुझे निम्नलिखित स्ट्रिंग का उपयोग करना था: MoveToBeginningOfLine :, deleteToEndOfLine :, yank :, insertNewline :, setMark :, MoveToBeginningOfLine :, selectToMark :, yank: का उपयोग करें । @Tmsimont के लिए बड़ा धन्यवाद
marcelosalloum

1
यह पहली चीज है जब मैंने Google को कभी भी Xcode अपडेट किया है।
newDeveloper

1
इस समाधान के बजाय मेरे लिए काम स्वीकार किए जाते हैं जवाब
खालिद

18

ठीक है, मैं इसके साथ आया हूं:

XCode 11 के लिए संस्करण:

selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:
  • क्लिपबोर्ड को नहीं छूता है
  • कई लाइनों के साथ काम करता है
  • जोड़ी गई रेखाओं का चयन करता है, इसलिए कई बार बिना पुनः उपयोग किए उपयोग किया जा सकता है
  • XCode 11 में निश्चित चयन
  • पूर्ववत के साथ बेहतर काम करता है

चूंकि मैं हर XCode अपडेट के बाद यह बदलाव लागू कर रहा हूं, इसलिए मैंने इसके लिए एक स्क्रिप्ट बनाई है। संभवतः यह कुछ नुकसान पहुंचा सकता है, लेकिन मैंने इसे अपेक्षाकृत सुरक्षित बनाने की कोशिश की है। यह फ़ाइल की एक प्रति बनाता है, और फिर इसकी प्रति के साथ लाइन को बदलता है और पर्ल का उपयोग करके अतिरिक्त कमांड देता है। XCode को स्थापित करने की आवश्यकता है/Applications/Xcode.app

cp /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist ~/Desktop/IDETextKeyBindingSet.plist; sudo perl -pi -e 's/\<string\>selectWord:\<\/string>/'$'\<string\>selectWord:\<\/string\>\n\t\t\<key\>Duplicate Selection\<\/key\>\n\t\t\<string\>selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:\<\/string>/g' /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

पुराना संस्करण (मुझे यकीन नहीं है कि नया पुराना संस्करणों के साथ संगत है, इसलिए मैं इसे यहां रखूंगा):

selectParagraph:, delete:, yank:, moveToBeginningOfLine:, setMark:, yank:, moveToBeginningOfLine:, moveLeft:, selectToMark:

और मैन्युअल फ़ाइल संपादन से बचने के लिए पुराने संस्करण की स्क्रिप्ट:

cp /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist ~/Desktop/IDETextKeyBindingSet.plist; sudo perl -pi -e 's/\<string\>selectWord:\<\/string>/'$'\<string\>selectWord:\<\/string\>\n\t\t\<key\>Duplicate Selection\<\/key\>\n\t\t\<string\>selectParagraph:, delete:, yank:, moveToBeginningOfLine:, setMark:, yank:, moveToBeginningOfLine:, moveLeft:, selectToMark:\<\/string>/g' /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

संपादित करें: मामूली फिक्स edit2: पैरा चयन में परिवर्तित किया गया edit3: XCode 11 के लिए जोड़ा संस्करण


इसके लिए वास्तव में धन्यवाद, इस संयोजन की तलाश में। यह अवांछित newLines को जोड़ने के बिना सिंगल लाइन या कई लाइनों को डुप्लिकेट कर सकता है और साथ ही ctrl-z अच्छी तरह से काम करता है।
मक्करमेस्किन

धन्यवाद, यह वही है जो इंटेलीजे व्यवहार
आईएमएचओ के

17

आज मैंने Xcode 5 के लिए एक बहुत छोटा प्लगइन लिखा है जो लाइनों और चयनों को हटाता है और डुप्लिकेट करता है।

आप इसे मेरे GitHub रेपो: XcodeKit Plugin - https://github.com/ptfly/XcodeKit से डाउनलोड कर सकते हैं


मैंने अभी इसे डाउनलोड और इंस्टॉल किया है - आप कमांड के लिए कीबोर्ड शॉर्टकट सेट करने के लिए सिस्टम वरीयताओं का उपयोग कर सकते हैं। बहुत अच्छा!
ओरियन एडवर्ड्स

सबसे अच्छा समाधान वहाँ है क्योंकि यह आपको वर्तमान क्लिपबोर्ड को नहीं तोड़ेगा। कीबाइंडिंग जोड़ने के लिए: सिस्टम प्राथमिकताएँ -> कीबोर्ड -> शॉर्टकट -> ऐप शॉर्टकट -> '+'। उदाहरण के लिए 'डिलीट सिलेक्शन / लाइन' के लिए Xcode और मेन्यू शीर्षक चुनें
Sjoerd Perfors

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

यह कमाल से ज्यादा है। धन्यवाद!
0x6A75616E

यह मेरे लिए काम नहीं करता है। "डुप्लिकेट" को बाहर निकाल दिया जाता है और कीबोर्ड शॉर्टकट भी काम नहीं करेगा।
स्क्वायरबॉक्स

13

@ हैली का उत्तर बहुत अच्छा था, लेकिन क्लिपबोर्ड सामग्री को क्लोबबेरिंग (इसे डुप्लिकेट किए गए लाइन की सामग्री के साथ आबादी को छोड़कर) का दुर्भाग्यपूर्ण पक्ष-प्रभाव था, जो कि मैनुअल कॉपी / पेस्ट दृष्टिकोण का हिस्सा है जो मैं बचने की कोशिश कर रहा था। ।

इसलिए, मैंने इसके लिए कमांड अनुक्रम को बदल दिया है:

moveToBeginningOfLine:,
deleteToEndOfLine:,
yank:,
insertNewline:,
moveToBeginningOfLine:,
yank:

2 yank:s काम नहीं कर सकता जैसा कि यदि आपने NSTextKillRingSizeकुछ अलग करने के लिए सेट किया है 1, लेकिन मुझे पूरा यकीन 1है कि यह डिफ़ॉल्ट है, और आपको इसे बदलने के लिए कुछ गैर-तुच्छ काम करना होगा (इसमें प्रविष्टि जोड़ने की आवश्यकता है ~/Library/Preferences/.GlobalPreferences.plist)।


मैं defaults write -g NSTextKillRingSize 1GlobalPreferences.plist के साथ खेलने के बजाय कमांड का उपयोग करने का सुझाव देता हूं। ;)
dbernard

@ मानस की संभावना है कि आपको फ़ाइल को कहीं और कॉपी करने की आवश्यकता है, इससे पहले कि आप इसे संशोधित करें, तब तक मूल फ़ाइल को अधिलेखित कर दें, जब तक कि आप मूल फ़ोल्डर (ओं) पर अनुमतियों को बदलने का जोखिम नहीं उठाना चाहते।
निप्पोंसे

यह लगभग काम करता है, लेकिन किसी कारण से व्हाट्सएप का एक गुच्छा डुप्लिकेटेड लाइन के अंत में जुड़ जाता है .. किसी भी विचार क्यों?
tmsimont

5
अगर इसे इस संशोधन के साथ तय किया जाता है:moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, setMark:, moveToBeginningOfLine:, selectToMark:, yank:
tmsimont

यह सुझाया गया उत्तर होना चाहिए (@ हैली गाइड के बाद)। धन्यवाद!
ब्रिकल

9

एक ही लाइन की नकल क्यों? संपूर्ण अनुच्छेद बेहतर है। मेरा क्रम:

डुप्लिकेट करेंट पैराग्राफ

selectParagraph:,
delete:,
yank:,
moveToBeginningOfParagraph:,
yank:,
moveUp:,
moveToEndOfParagraph:

करंट पैराग्राफ डिलीट करें

selectParagraph:,
delete:,
moveUp:,
moveToEndOfParagraph:

Xcode 4.6 में ठीक काम करता है


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

आपकी विंडो कितनी छोटी है कि आपका कोड रैप हो रहा है। अपने कोड को छोटी लाइनों में तोड़ने पर विचार करें यदि ऐसा अक्सर हो रहा है।
quemeful

9

मैं सोच रहा हूं कि किसी ने तीर कुंजियों ( ) के साथ उपयोग करके कर्सर को स्थानांतरित करने और संपूर्ण पंक्तियों (जोड़कर) का चयन करने का उल्लेख नहीं किया है ) ।

मैं नियमित रूप से उपयोग कर एक पंक्ति के आरम्भ में कर्सर को ले जाकर पूरे लाइनों (डुप्लिकेट) की प्रतिलिपि + (के बजाय ctrl+ A) और फिर का उपयोग + + (बजाय ctrl+ +E अंत करने के लिए पूरी लाइन चयन करें और फिर कॉपी करने के लिए) / पेस्ट करें।

मैं अन्य थ्रेड में चला गया हूँ जहाँ कोई भी इन कीबोर्ड शॉर्टकट का उपयोग नहीं करता है। वे ओएस एक्स में वैश्विक हैं और मैं हर समय उनका उपयोग करता हूं! बहुत कम हाथ कलाबाजी;)


इसके लिए केवल 1 क्रिया / कुंजी संयोजन के साथ नकल करने की तुलना में बहुत अधिक "हाथ-कलाबाजी" की आवश्यकता है ... यह एक पाठ संपादक या वेबब्रोसर में पाठ की नकल करने का तरीका है, हाँ, लेकिन मुझे आईडीई से थोड़ा अधिक उम्मीद है।
Ixx

1
और इसके अलावा, डुप्लिकेट लाइन शॉर्टकट से आप क्लिपबोर्ड की सामग्री को अधिलेखित नहीं करते हैं। कई बार मैं कुछ कॉपी करता हूं, डुप्लिकेट कोड और इसे पेस्ट करना चाहता हूं - अपनी विधि के साथ आपको इसे फिर से कॉपी करना होगा।
Ixx

सही है। लेकिन ओपी द्वारा सुझाए गए तरीके से कम है। मैं इस बात से सहमत हो सकता हूं कि एक एकल आदेश सबसे अच्छा होगा। मुझे लगा कि मैं एक विकल्प की ओर इशारा करूंगा।
बाल्डूर

1
यह अभी भी आउट-ऑफ-द-बॉक्स से बेहतर है। मैं चाहता हूँ कि बिना किसी चयन के cmd + C / X, अन्य संपादकों की तरह पूरी लाइन को कॉपी / कट कर देगा ...
manroe

@ बलदुर यही तो मैं भी करता हूँ। cmd + बाएँ cmd + Shift + दायाँ cmd + c cmd + दायाँ प्रवेश cmd + बाएँ cmd + p। 7 कीस्ट्रोक्स पर इसे 3 सेकंड से भी कम समय में आसानी से किया जा सकता है, हालाँकि, यह अभी भी कई पाठ संपादकों की तरह ctrl + d की तुलना में काफी थकाऊ है। यह दुर्भाग्यपूर्ण है कि यह xcode, या कि सामान्य macs और Apple सॉफ़्टवेयर में बेहतर गर्म कुंजियों का निर्माण नहीं करता है।
csga5000

9

संपादित करें: 12 जुलाई, 2020 Xcode 11.5 के अपडेट के बाद फिर duplicate lineसे plistफ़ाइल से मेरी महत्वपूर्ण प्रविष्टि चली गई थी। मुझे इसे फिर से जोड़ना पड़ा। कुंजी बंधन अभी भी वहाँ था।

संपादित करें: सितम्बर 17, 2019 Xcode 10.3 को अपडेट करने के बाद फिर duplicate lineसे plistफ़ाइल से मेरी महत्वपूर्ण प्रविष्टि चली गई थी। मुझे इसे फिर से जोड़ना पड़ा। कुंजी बंधन अभी भी वहाँ था।

EDIT: 28 मई, 2019 Xcode 10.2 को अपडेट करने के बाद फिर duplicate lineसे plistफ़ाइल से मेरी महत्वपूर्ण प्रविष्टि चली गई थी। मुझे इसे फिर से जोड़ना पड़ा। कुंजी बंधन अभी भी वहाँ था।

संपादित करें: 23 दिसंबर, 2018 Xcode 10.1 को अपडेट करने के बाद मेरे सभी शॉर्टकट फिर से टूट गए। लेकिन कुछ अलग यह था कि लाइन डुप्लिकेट के लिए प्लिस्ट फाइल को अपडेट करने के बाद, मुझे अपनी कुंजी बाइंडिंग को परिभाषित करने की आवश्यकता नहीं थी, वे पहले से ही वहां थे। अजीब।

EDIT: OCT 14, 2018 Xcode 10: Apple में कोई भी उच्च प्रतिलिपि / पेस्ट को वास्तव में पसंद करता है, और यह सुनिश्चित करता है कि Xcode अपडेट के हर संस्करण के साथ, लाइन डुप्लीकेशन को सभी के इंस्टॉल से हटा दिया जाए। हम डेवलपर्स हमेशा के लिए Xcode में इस बकवास से बेहद निराश हो गए हैं, केवल IDE जिसमें कोई पंक्ति दोहराव विकल्प नहीं है। मैंने अभी Xcode 10 को अपडेट किया है, और जैसा कि आपने यह अनुमान लगाया है - मेरी सभी शॉर्टकट कुंजियों को मेरी लाइन दोहराव कार्यक्षमता के साथ हटा दिया गया है। हालाँकि, यह मूल उत्तर की तरह ही निश्चित है। इस बार थोड़ा अंतर यह है कि आपको निम्न पंक्ति की आवश्यकता होगी:

<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>

संपादित करें: Xcode 9: मुझे अपने शॉर्टकट और लाइन दोहराव और विलोपन को फिर से करना था, लेकिन अच्छी बात यह है कि अब आप IDETextKeyBindingSet.plist को फिर से संपादित कर सकते हैं। जब वे इस संस्करण को जारी करते हैं तो यह उच्च अप्पू लड़का छुट्टी पर होना चाहिए।

संपादित करें: Xcode 8: छोटी गाड़ी, आप IDETextKeyBindingSet.plist फ़ाइल को बिल्कुल भी संशोधित नहीं कर सकते। Xcode प्रारंभ में इसे रीसेट करता है। Apple में यह उच्च अप आदमी वास्तव में हमें वहाँ से बाहर अन्य सभी IDEs की तरह सरल लाइन दोहराव के बजाय कॉपी / पेस्ट का उपयोग करने के लिए निर्धारित है।

संपादित करें: Xcode 7.1 और अभी भी लाइन दोहराव और विलोपन के लिए कोई शॉर्टकट नहीं हैं। यह एकमात्र ऐसा आईडीई है जिसके साथ मैंने कभी इस तरह के शॉर्टकट के साथ काम नहीं किया है। और मैं इन दो महत्वपूर्ण शॉर्टकट के बिना एक डेवलपर के जीवन की कल्पना नहीं कर सकता।

यहां बताया गया है कि यह कैसे किया जा सकता है:

पहले हमें एक plist फ़ाइल को संशोधित करना होगा जो Xcode.app बंडल के अंदर रहती है (जिसे संपादित करने के लिए sudo की आवश्यकता है)

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

फिर <key>Insertions and Indentations</key>नीचे दिए गए <dict>टैग जोड़ें और देखें:

<key>Insert New Line Below</key>
<string>moveToEndOfLine:, insertNewline:</string>
<key>Insert New Line Above</key>
<string>moveUp:, moveToEndOfLine:, insertNewline:</string>
<key>Duplicate Current Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>

फिर टैग के <key>Deletions</key>तहत अनुभाग के अंदर और इन्हें ढूंढें <dict>:

<key>Delete Current Line</key>
<string>selectLine:, delete:</string>
<string>selectLine:, delete:</string>

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

अब Open / Restart Xcode, Preferences में जाएँ और “Key Bindings” टैब पर जाएँ। फ़िल्टर करने के लिए खोज बार का उपयोग करें और नए शॉर्टकट देखें। फिर इसे अपनी पसंद का शॉर्टकट असाइन करने के लिए शॉर्टकट विवरण के सामने क्लिक करें। सुनिश्चित करें कि आपका शॉर्टकट मौजूदा शॉर्टकट के साथ संघर्ष नहीं करता है।

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


3

मैं कमांड अनुक्रम को संशोधित करने पर विचार करूंगा:

selectLine:,
copy:,
moveToEndOfLine:,
insertNewline:,
deleteToBeginningOfLine:,
paste:,
moveToBeginningOfLine:, 
deleteBackward:

जोड़ा deleteToBeginningOfLineडुप्लिकेट लाइन के इंडेंटिंग को बनाए रखता है।


एक बार जब मैंने महसूस किया कि कॉमा के बाद अंतरिक्ष के साथ (अच्छी दिखने वाली) नई कहानियों का आदान-प्रदान करना है, तो यह बहुत अच्छा रहा।
McUsr


2

मुझे MacOS Sierra और Xcode 9 पर .plist फ़ाइल को अनलॉक करने के लिए एक बड़ी परेशानी थी, यहाँ तक कि @Tim निर्णय ने भी मेरे लिए काम नहीं किया। यदि आपको भी यही समस्या है, तो टर्मिनल पर जाएँ और यह करें:

cd /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/
sudo chmod -R 777 *
nano IDETextKeyBindingSet.plist

ऐसा करने के कुछ अन्य संभावित तरीके भी यहाँ वर्णित हैं

फिर नैनो एडिटर क्लिक में ^Wऔर 'इंसर्शन और इंडेंटेशन्स' पार्ट में जाने के लिए 'इंसर्शन' टाइप करें । बस <dict>टैग पेस्ट के तहत इस xml- स्निपेट:

<key>Duplicate line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewLine:, paste:, deleteBackward:</string>

control + Xइसके Yबाद Enterनैनो एडिटर में फाइल को सेव करने के लिए प्रेस करें ।

UPD: मैं एक बेहतर निर्णय के साथ आया, जो डुप्लीकेशन से पहले एक अतिरिक्त लाइन जोड़ता है (उपयोगी है जब आप एक पंक्ति को डुप्लिकेट करना चाहते हैं, जिसके नीचे एक और रेखा होती है):

<key>Duplicate line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertLineBreak:, moveUp:, paste:, moveToBeginningOfLine:</string>

1

यहां मेरी IDETextKeyBindingSet.plist से मेरी डिलीट ( CTRL+ D) और डुप्लिकेट ( CMD+ SHIFT+ D) प्रविष्टियां हैं। (/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources में)

मैंने अभी इन्हें Xcode 4.6.1 में सेट किया है (ऊपर और कहीं और user570753 के उत्तर पर आधारित)

    <key>Custimozed</key>
<dict>
    <key>Delete Current Line</key>
    <string>deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:</string>
    <key>Duplicate Current Line</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, deleteToBeginningOfLine:, paste:, moveToBeginningOfLine:, deleteBackward:</string>
</dict>

0

कोई भी उदात्त पाठ उपयोगकर्ता, जो उपखंड के डुप्लिकेटअप और डुप्लिकेटडाउन को XCode में मेल करना चाहते हैं , कृपया अपनी IDETextKeyBindingSet.plist फ़ाइल में निम्न जोड़ें

<key>Line Duplications</key>
<dict>
    <key>Duplicate Current Line Above</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:, moveUp:</string>
    <key>Duplicate Current Line Below</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
</dict>

0

यदि कोई अन्य व्यक्ति IDETextKeyBindingSet.pl संपादित करने के लिए पहुँच से वंचित है, तो आप स्वयं को इसके द्वारा पढ़ने / लिखने की अनुमति दे सकते हैं:

sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist

0

बस हैली के जवाब को पूरक करने के लिए, मेरे लिए सबसे अच्छा काम करने वाले आदेश थे:

selectLine:, copy:, moveRight:, moveLeft:, insertNewline:, paste:, deleteBackward:

उनके सुझाए गए आदेश मेरे लिए नीचे दी गई वांछित पंक्ति दो पंक्तियों की नकल कर रहे थे।


0
<key>Duplicate Lines</key>    
<string>selectLine:, copy:, moveToBeginningOfLine:, paste:</string>

डुप्लिकेट लाइन (ओं) का समर्थन किया। (यह Xcode 9.2 में काम करता है)


0

Xcode 11 के लिए उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। पहले उत्तर में एक अजीब व्यवहार था क्योंकि यह अगली पंक्ति के बाद लाइन को सम्मिलित कर रहा था। हालाँकि, निम्नलिखित उत्तर ने मेरे लिए काम किया।

<key>Duplication</key>
<dict>
    <key>Duplicate Current Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:</string>
    <key>Duplicate Lines</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
    <key>Delete Line</key>
    <string>selectLine:, deleteBackward:</string>
</dict>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.