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


128

ग्रहण से आने और हर समय लाइनों को डुप्लिकेट करने के लिए इस्तेमाल किया गया है, यह पता लगाना बहुत अजीब है कि Xcode का ऐसा कोई फ़ंक्शन नहीं है। या करता है?

मुझे पता है कि सिस्टम की कीबाइंडिंग को बदलना संभव है लेकिन ऐसा नहीं है।



इस सेटअप 9.2 के लिए काम करता stackoverflow.com/a/34195483/1348522
Zumry मोहम्मद

जवाबों:


91

संपूर्ण बिंदु Cmd-C/ Cmd-Vशॉर्टकट का उपयोग करने के लिए नहीं है । मेरे पास IntelliJ से एक ही मुद्दा आ रहा है, और Cmd-Dउनके साथ केवल डुप्लिकेट लाइनों को हटाने और उन्हें हटाने में सक्षम होने के Cmd-Yकारण एक बड़ा समय बचाने वाला है।

यह मुझे तब से परेशान कर रहा है। हालांकि, ऐसा लगता है कि किसी और ने एक समाधान ढूंढ लिया है जो काम करता है।

संक्षेप में, ~/Library/KeyBindings/PBKeyBinding.dictनिम्नलिखित सामग्री के साथ एक फ़ाइल बनाएं और Xcode को पुनरारंभ करें।

{
    "^$K" = (
        "selectLine:",
        "cut:"
    );

    "^$D" = (
        "selectLine:",
        "copy:",
        "moveToEndOfLine:",
        "insertNewline:",
        "paste:",
        "deleteBackward:"
    );
}

: यह दो शॉर्टकट बनाएगा Ctrl- Shift- Kवर्तमान लाइन को हटाने के लिए और Ctrl- Shift- Dवर्तमान पंक्ति डुप्लिकेट करने के लिए। कृपया ध्यान दें कि यह केवल तभी काम करेगा जब आप Xcode में कस्टम कुंजी बाइंडिंग सेट का उपयोग नहीं कर रहे हैं । "XCode डिफ़ॉल्ट" पर स्विच करें और चीजों को काम करना चाहिए। हिम तेंदुए पर XCode 3.2 पर परीक्षण किया गया।

मैक ओएस एक्स कुंजी बाइंडिंग के बारे में अधिक जानकारी: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html


5
यह असली जवाब होना चाहिए। Btw - अगर आप ग्रहण से cmd-d (डिलीट लाइन) शॉर्टकट आयात करना चाहते हैं, तो आपको सबसे पहले XCode में एडिट मेनू के तहत Add Bookmark शॉर्टकट बदलना होगा
क्रिस आर

@joshperry, कुछ भी जो Xcode 4+ के साथ काम करता है? Duplicateआदेश (में Edit -> Duplicate) हो "हमेशा" धूसर हो (और डुप्लिकेट लाइन के लिए नहीं) लगता है।
ब्लेज़

मैंने पहले दिन से OS X का उपयोग किया है और कभी भी महत्वपूर्ण बाइंडिंग के बारे में नहीं जानता। क्या मस्त विशेषता है। इस बहुत अच्छे GUI कुंजी बाइंडिंग संपादक पर एक नज़र डालें, जो मैंने किया था
एलेक्स ग्रे

Apple की डेवलपर साइट पर अधिक जानकारी मिली ।
एलिकार्सन

बहुत अच्छा लग रहा था, लेकिन ऐसा लगता है कि यह मेरे लिए xcode 5.0.2 में काम नहीं करता :(
voghDev

105

एक लाइन हटाने के लिए : Ctrl- Aलाइन की शुरुआत में जाने के लिए, फिर Ctrl-K इसे हटाने के लिए, और दूसरी बार Ctrl-K खाली लाइन को हटाने के लिए। (मैं बहुत बार Xcode का उपयोग नहीं करता हूं, लेकिन मैं Emacs और अन्य टेक्स्ट इनपुट में Emacs जैसे बाइंडिंग के साथ उपयोग किया जाता हूं, और यह Xcode में भी काम करने लगता है।)

और एक लाइन को डुप्लिकेट करने के लिए : मुझे कई कार्यक्रमों के बारे में नहीं पता है जिनके लिए एक कमांड है, लेकिन आमतौर पर मैं सिर्फ कॉपी + पेस्ट का उपयोग करता हूं - Xcode में यह CUA की तरह है: Ctrl+A लाइन की शुरुआत में जाने के लिए, Shift+ का चयन करने के लिए यह, कमांड + Cकॉपी और कमांड + * Vदो बार (एक बार लाइन को ओवरराइड करने और एक बार इसे संलग्न करने के लिए) पेस्ट करने के लिए।

(एक व्यक्ति जो हर समय पाठ टाइप करता है और संपादित करता है, ऐसा अक्सर अलग-अलग कार्यक्रमों में होता है, और कभी-कभी पाठ इनपुट में थोड़ा सुधार करते हुए गूंगे विजेट के साथ खुद को विचलित करने के लिए परेशान हो जाता है, कि वह केवल अपने अनुक्रम को याद करने से बच नहीं सकता है और आदतें)


3
कोकोआ टेक्स्ट सिस्टम के लिए कोकोआ टेक्स्ट सिस्टम के उपयोग के बाद से यह सभी अनुप्रयोगों में काम करेगा। इस तरह के कई और शॉर्टकट हैं, उनमें से एक सूची यहां पाई जा सकती है: hcs.harvard.edu/~jrus/Site/System%20Bindings.html :)
Ahti

2
आधुनिक मैक पर 'yank' को ctrl + Y होना चाहिए।
कारमेलो

इसे चिपकाने और फिर से इंडेंट करने के लिए कमांड-वी। नियंत्रण -Y पेस्ट भी करेगा लेकिन पेस्ट किए गए पाठ को फिर से इंडेंट नहीं करेगा।
स्कॉट गार्डनर

77

ग्रहण CTRL+ जैसी रेखा हटाएं D(Xcode 4.5.1 पर परीक्षण):

सबसे पहले, इन अधिकारों को बदलें:

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

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

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plistXcode के साथ स्वयं खोलें और इस नई प्रविष्टि को जोड़ें:

deleteToBeginningOfLine:, moveToEndOfLine:, deleteToBeginningOfLine:, deleteBackward:, moveDown:, moveToBeginningOfLine:

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

Xcode को पुनरारंभ करें और Xcode> प्राथमिकताएं> KeyBindings खोलें। अपना मैक्रो ढूंढें और एक शॉर्टकी परिभाषित करें:

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


5
यदि आप किसी पंक्ति को डुप्लिकेट करने का तरीका जोड़ना चाहते हैं, तो ऐसा ही करें, लेकिन जब IDETextKeyBindingSet.plist फ़ाइल में नया मान चिपकाते हैं, तो इस कोड को "selectLine :, copy :, MoveToDndOfLine :, insertNewline :, paste :, deleteBackward: पेस्ट करें। "।
jollyr0ger

+1 इस समाधान ने काम किया लेकिन Xcode 4.6.1 ^ डी में अन्य मौजूदा कुंजी बाइंडिंग के साथ विरोध किया।
बर्नार्डन

'डुप्लिकेट करंट लाइन' के लिए आप इसे कैसे प्राप्त कर सकते हैं?
मार्कस

यह xcode 6 में काम नहीं कर रहा है। सूची से केवल पहला कार्य कहा जाता है
Mrug

1
मुझे यह पसंद है, मेरे लिए XCode 6.3.1 के तहत एक आकर्षण की तरह काम करता है।
fwielstra

9

मैंने कुंजी बाइंडिंग समाधान की कोशिश की, लेकिन यह मुझे काम करने के लिए नहीं मिला। हालाँकि मेरे XCode कुंजी बाइंडिंग का संपादन एक आकर्षण की तरह काम करता है। यहां मैंने इसे कैसे बनाया है।

यह समाधान क्लिपबोर्ड की सामग्री को परिवर्तित नहीं करता है!

XCode कुंजी बाइंडिंग खोलें:

वैकल्पिक शब्द

उपयोगकर्ता लिपियों को संपादित करें संवाद में:

  1. "मूव लाइन डाउन" स्क्रिप्ट को डुप्लिकेट करें और उसका नाम बदलें
  2. "मूव लाइन डाउन.कैप" फाइल को डुप्लिकेट करें, स्क्रिप्ट का नाम बदलें, स्क्रिप्ट एडिटर में फ़ाइल (डबल क्लिक) के माध्यम से चयन करें
  3. स्क्रिप्ट को संपादित करें ("AppleScript Editor" खोलता है) और "हटाएं (पैराग्राफ़ स्टार्टलाइन एंडलाइन के माध्यम से)" मार्ग को हटा दें।
  4. यदि आप XCode को पुनरारंभ नहीं करना चाहते हैं, तो आपको स्क्रिप्ट को निकालना और जोड़ना होगा। सुनिश्चित करें कि आपके पास "आउटपुट" को "आउटपुट" पर सेट करें, अन्यथा आपके पास अपनी स्रोत फ़ाइल में "(रिक्त)" होगा
  5. मैंने सही लाइनों को चुनने के लिए लिपियों को थोड़ा और संशोधित किया है:

डुप्लिकेट लाइन अप:

using terms from application "Xcode"
tell first text document
    set {startLine, endLine} to selected paragraph range

    if startLine > 1 then
        set theText to (paragraphs startLine through endLine)
        set theText to (theText as string)
        make new paragraph at beginning of paragraph (startLine) with data theText
        set selected paragraph range to {endLine + 1, endLine + endLine - startLine + 1}
    else
        beep 1
    end if
end tell
end using terms from

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

using terms from application "Xcode"
tell first text document
    set {startLine, endLine} to selected paragraph range
    if endLine < (count paragraphs) then
        set theText to (paragraphs startLine through endLine)
        set theText to (theText as string)
        (* delete (paragraphs startLine through endLine) *)
        make new paragraph at beginning of paragraph (endLine + 1) with data theText
        set selected paragraph range to {startLine, endLine}
    else
        beep 1
    end if
end tell
end using terms from

वैकल्पिक शब्द


2
ऊपर स्पष्ट रूप से उल्लेख नहीं किया गया है, डिलीट लाइन, मूव लाइन अप और मूव लाइन डाउन के लिए मौजूदा स्क्रिप्ट हैं। स्वीकृत उत्तर में यह दोष है कि यह तभी काम करता है जब आपके पास आपके कुंजीबिंडिंग XCode डिफ़ॉल्ट पर सेट हों। स्क्रिप्ट का उपयोग करने से आप अपने अनुकूलित कीबाइंडिंग को रख सकते हैं, क्योंकि स्क्रिप्ट के लिए कीबाइंडिंग को शेष Xodeode के लिए अलग से संभाला जाता है।
पाथोजेन

7

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

  1. /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/खोजक के साथ जाओ ।

  2. संसाधन नामक फ़ोल्डर ढूंढें। इसे राइट क्लिक करें, Get Info दबाएं, शेयरिंग & परमिशन सेटिंग (लॉक दबाकर) को अनलॉक करें और इसे सभी के लिए Read & Write पर सेट करें।

  3. फ़ोल्डर दर्ज करें और फ़ाइल IDETextKeyBindingSet.plist ढूंढें। इसे राइट क्लिक करें, Get Info दबाएं, शेयरिंग और परमिशन सेटिंग को अनलॉक करें (लॉक दबाकर) और इसे सभी के लिए Read & Write पर सेट करें।

  4. XCode (डिफ़ॉल्ट) के साथ फ़ाइल खोलें

  5. विलोपन खोजें, राइट क्लिक करें और एक नई पंक्ति जोड़ें। उदाहरण के लिए इसे हटाएं लाइन। मान फ़ील्ड में, टाइप करें selectLine:, deleteBackward::। (यह भी डुप्लिकेट लाइन के लिए किया जा सकता है: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward:)

  1. XCode प्रारंभ करें, वरीयताओं / कीबाइंडिंग पर जाएं और Delete Line खोजें। शॉर्टकट सेट करें। का आनंद लें।

6

जैसा कि Xcode 4 कुंजी बाइंडिंग का उपयोग करके इसे लागू करना मुश्किल बनाता है, मैंने कीबोर्ड मेस्ट्रो ( Quickeys) का उपयोग करने का सहारा लिया है को अच्छी तरह से काम करना चाहिए, लेकिन यह पूरी तरह से संगत नहीं है)। उदाहरण के लिए, यहां मेरा कीबोर्ड मेस्ट्रो शॉर्टकट है (⇧-D-D के लिए बाध्य):

http://bit.ly/thC6yf


3
"अब खरीदें $ 36 के लिए" ... क्या चोरी है) लोल ... जब तक मैं मेस्ट्रो साइट पर यह नहीं देखा, मुझे लगा कि यह एक अच्छा समाधान हो सकता है
y


5

Xcode 10.1 में लाइन हटाने के लिए, शॉर्टकट कुंजी जोड़ने के लिए कृपया नीचे स्क्रीनशॉट के चरणों का पालन करें।

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


5

मुझे पता है कि यह थ्रेड काफी पुराना है, लेकिन मैंने बेटरटचटूल का उपयोग करके एक और समाधान पाया , आप बीटीटी में इस तरह कॉन्फ़िगर करके एक शॉर्टकट में Ctrl+ A, Ctrl+ K, Ctrl+ Kअनुक्रम को निष्पादित कर सकते हैं :

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

(दूसरे और तीसरे शॉर्टकट को जोड़ने के लिए अतिरिक्त कार्रवाई बटन संलग्न करें)

पुनश्च: ग्रहण से आ रहा है, जहां Cmd+ Dलाइन हटाएं ^ ^ है


4

ट्रिपल लाइन पूरी लाइन को चुनने के लिए, कमांड-सी को सिलेक्ट करने के लिए और कमांड-वी को दो बार डुप्लिकेट करने के लिए। यह एक एक्सकोड फ़ंक्शन नहीं है, यह ओएस का सिर्फ एक हिस्सा है।


2
माउस क्लिक करें और यहां तक ​​कि कीड़ा, ट्रिपल? यह निश्चित रूप से समाधान नहीं है जो लोग कीबोर्ड शॉर्टकट का उपयोग करना चाहते हैं।
Ixx

4

उपयोगकर्ता स्क्रिप्ट का उपयोग करें।

अभी तक लाइनों को स्थानांतरित करने और हटाने के लिए स्क्रिप्ट हैं। आपको उन लिपियों के लिए मुख्य बाइंड्स को परिभाषित करना होगा (मेनू लिपियों -> उपयोगकर्ता लिपियों को संपादित करें ... , xCode 3.2 के तहत)।

लाइन को डुप्लिकेट करने के लिए, आपको अपनी स्क्रिप्ट बनानी होगी। लेकिन यह बहुत आसान है! "मूव लाइन डाउन" स्क्रिप्ट को डुप्लिकेट करें और चयनित टेक्स्ट को हटाने वाली लाइन को हटा दें:

delete (paragraphs startLine through endLine)

3

यहाँ पर XCode4 लाइन दोहराव के लिए एक समाधान है

मैंने प्लिस्ट में लाइन विलोपन भी जोड़ा है:

<key>Remove Line</key> <string>selectLine:, deleteBackward:</string>


3

हम Xcode 9.0 पर हैं और कीबाइंडिंग अभी भी काम नहीं कर रहे हैं। आह।

मुझे यह बहुत उपयोगी लगा, इसलिए इसे भविष्य के संदर्भ के लिए यहाँ प्रस्तुत करना चाहिए:

  1. खुला हुआ /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  2. नीचे की ओर ऊपर की ओर इस फ़ाइल में निम्न XML स्निपेट जोड़ें </dict>
  3. Xcode वरीयताओं पर जाएं -> कुंजी बाइंडिंग -> टेक्स्ट टैब -> तब तक स्क्रॉल करें जब तक आप डुप्लीकेशन न देख लें
  4. डुप्लिकेट करेंट लाइन पर क्लिक करें, इसके लिए एक शॉर्टकट जोड़ें, जैसे। Cmnd + D (किसी भी डुप्लिकेट बाइंडिंग को हल करें)
  5. Xcode खोलें

<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>



2

द्वारा समाधान damien.flament अच्छा काम करता है और आप सेट की आवश्यकता हो सकती उत्पादन "त्यागें आउटपुट" के लिए नीचे तस्वीर को देखने के

उपयोगकर्ता सेटिंग

पुनश्च: मुझे नहीं पता कि उसका जवाब कैसे देना है।


2

जैसा कि ऊपर कहा गया है, XCode को बंद करें और अनुभाग में ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeysअंदर तक डालें :<dict><key>text</key>

    <key>^D</key>                                                                                                      
    <array>                                                                                                            
        <string>moveToLeftEndOfLine:</string>                                                                               
        <string>deleteToEndOfLine:</string>                                                                                      
    </array>                                                                                                           
    <key>^K</key>                                                                                                      
    <array>                                                                                                            
       <string>selectLine:</string>                                                                               
       <string>copy:</string>                                                                                     
       <string>moveToEndOfLine:</string>                                                                          
       <string>insertNewline:</string>                                                                            
       <string>paste:</string>                                                                                    
       <string>deleteBackward:</string>                                                                           
    </array>

XCode शुरू करें और आनंद लें CTRL- SHIFT- Dऔर CTRL- SHIFT- K
यदि आप चाहते हैं CTRL- Dऔर CTRL- K, का उपयोग करें ^dऔर^k इसके बजाय प्रमुख परिभाषाओं में। सुनिश्चित करें कि फ़ाइल में कोई डुप्लिकेट कुंजी बाइंडिंग नहीं हैं।

XCode 3.2 के साथ मेरे लिए ठीक काम करता है


2

यह BetterTouchTool का उपयोग करके संभव है । CMD + D एक लाइन की नकल करेगा। इस तरह एक नया शॉर्टकट बनाएं:

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

दूसरे और तीसरे शॉर्टकट को जोड़ने के लिए अतिरिक्त कार्रवाई बटन संलग्न करें


1

यदि आप पहले से ही अपने Xcode कुंजी बाइंडिंग को अनुकूलित कर चुके हैं, तो आपको फ़ाइल को संपादित करना होगा ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys:। शब्दकोश में केवल दो सरणियाँ (ऊपर वर्णित) जोड़ें Root/text


हिया। मैं इस का पालन नहीं करता, pbxkey दस्तावेज़ XML है, जबकि ऊपर वर्णित ~ / लाइब्रेरी / कीबाइंडिंग / PBKeyBinding.dict फ़ाइल पूरी तरह से एक अलग प्रारूप है (JSON की तरह थोड़ा सा दिखता है)। Pbxkeys दस्तावेज़ में कोई रूट / पाठ प्रविष्टि नहीं है। क्या ऐसा इसलिए है क्योंकि मैं बाद के संस्करण का उपयोग कर रहा हूं?
बेन क्लेटन

1

करंट लाइन को हटाने के लिए तीन कदम (देखें बहुत लंबा, लेकिन बहुत तेजी से करें: D)

Cmd+ : लाइन के अंत में जाएँ
Cmd+ Delete: लाइन की शुरुआत करने के लिए
Deleteहटाएं: खाली लाइन हटाएं


0

Xcode 6.1 के लिए Xcode> प्राथमिकताएं> KeyBindings> टेक्स्ट मिला और "डिलीट टू एंड ऑफ लाइन" है और अपनी पसंद की कुंजी असाइन करें।


0

XCodePlus डिलीट लाइन प्लगइन, एक XCode है जो आपके लिए ऐसा करता है। यह पूर्व Alcatraz पैकेज प्रबंधक के साथ स्थापित आया ...

https://github.com/payliu/XcodePlus


0

फिर भी लाइनों को डुप्लिकेट करने का कोई अंतर्निहित तरीका नहीं है, जैसा कि Xcode 9. और कस्टम कुंजी बाइंडिंग में समस्याएं हैं।

अपडेट: Xcode 10.0 बीटा 6 (10L232m) समान है।


0

इस पते पर जाएं:

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

और फिर IDETextKeyBindingSet.plist फ़ाइल को कुछ जहाँ और फिर कॉपी की गई फ़ाइल खोलें और सम्मिलित करें की प्रतिलिपि बनाएँ

selectLine :, copy :, पेस्ट :, पेस्ट: जैसे यह चित्र यहां चित्र विवरण दर्ज करें और इसे सहेजें और इस पते में कॉपी की गई फ़ाइल को प्रतिस्थापित करें /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework-Resources/IDETextKeyBindingSet

फिर से पुनः आरंभ करें, xcode को खोलें, xcode पूर्वापेक्षाएँ खोलें, कीबाइंडिंग टैब पर जाएँ, डुप्लिकेट लाइन की खोज करें (अनुकूलित) और इसके लिए लघु कुंजी को परिभाषित करें जैसे नीचे दी गई छवि

[१]: https://i.stack.imgur.com/UTeZu.png


समीक्षा से: नमस्ते, इस पोस्ट में प्रश्न का उत्तर नहीं दिया गया है। कृपया या तो अपने उत्तर को संपादित करें और इसे सुधारें, या इसे टिप्पणी के रूप में पोस्ट करें।
s --unıɐ ןɐ qɐp
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.