Ligne dupliquée Xcode

128

Il y a une Duplicatecommande dans le menu Edition (avec un raccourci par défaut de D), mais elle est (comme Halley l'a souligné) destinée à être dupliquée dans la partie Interface Builder de Xcode.

Alors, comment dupliquez -vous ( facilement ) une ligne dans Xcode 4?


Question connexe (avec une réponse fonctionnelle) pour Xcode 3 ... et qui ne fonctionne pas pour Xcode 4.


Pourquoi ne pas simplement copier et coller?

Parce que c'est fastidieux et implique trop d'acrobaties à la main:

soit (1) : se déplacer au début de la ligne puis appuyer sur ⇧^E, puis copier avec ⌘C, passer à une nouvelle ligne, alligner le curseur et enfin coller avec ⌘V;

ou (2) : ^A(placer le curseur au début de la ligne), ^SPACE(définir la marque), ^E(placer le curseur à la fin de la ligne), ⇧^W( Select to Mark; personnalisé), copier, nouvelle ligne, etc.

Comme l'a dit Frank Schröder (dans la question connexe ):

Le but n'est PAS d'utiliser les raccourcis Cmd-C / Cmd-V.

Blaz
la source
1
Sélectionnez la ligne et copier coller?
Dani
1
@Dani, CP est tout simplement trop de travail (et la duplication de ligne n'est pas quelque chose pour lequel le besoin ne se fait que rarement). :) J'ai mis à jour la question.
Blaz
1
Command-D sert à contrôler la duplication dans Interface Builder.
Hailei
@Halley, c'est bon à savoir. Et est-ce l'équivalent de ⌥-mouse-drag (qui copie également les éléments d'interface)?
Blaz
@courtois je pense que oui. La section des touches de modification dans disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/… indique que "appuyer sur la touche Option pendant les opérations de glisser-déposer copie les objets sélectionnés au lieu de les déplacer."
Hailei

Réponses:

173
  1. Allez dans ce dossier qui contient le côté obscur de la force:

    • Xcode 4.2 ou antérieur: /Developer/Library/PrivateFrameworks/IDEKit.framework/Resources
    • Xcode 4.3 ou version ultérieure: /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources.
  2. Ouvrez IDETextKeyBindingSet.plist.

  3. Ajoutez un nouveau dictionnaire et un nouvel élément de commande comme capture d'écran ci-dessous (nommez-les comme vous le souhaitez): Modification du plist

    C'est: selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:

  4. Redémarrez Xcode et allez dans Préférences - Liaisons de touches, recherchez votre commande.

  5. Définissez une combinaison de touches pour la commande: Raccourcis clavier

  6. Libérez enfin la puissance des raccourcis clavier sur Xcode ... Profitez-en!

Hailei
la source
3
@MichalStefanow, l'emplacement que vous avez écrit est en fait le même emplacement vers lequel /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resourcespointe l'alias. Sinon, j'ai suivi avec succès les étapes de Halley sur la version 4.3.2 ... Je vous suggère de sauvegarder le fichier d'origine, puis de l'ouvrir dans Xcode lui-même (et non dans TextEdit). En outre, en ce qui concerne les autorisations: les modifier (uniquement pour le fichier lui-même; aucune récursivité nécessaire) dans Finder fonctionnait très bien.
Blaz
29
Grand merci! Pour les utilisateurs paresseux - selectLine :, copier :, moveToEndOfLine :, insertNewline :, coller :, deleteBackward:
Vlad Tsepelev
15
Si votre xCode plante! Fermez xCode, ouvrez le fichier avec n'importe quel éditeur de texte et ajoutez votre dictionnaire: <key>Custom</key> <dict> <key>Duplicate Current Line</key> <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string> </dict>
Vlad Tsepelev
2
Fonctionne pour moi dans XCode 4.4.1! J'ai eu du mal à changer les autorisations (finder ou chmod 777 et démarrer avec sudo à partir du terminal ne fonctionnait pas, pour une raison quelconque). J'ai copié le fichier ailleurs, l'ai édité et écrasé l'original, cela a fonctionné.
Ixx
2
Je suis un développeur Android et quand j'ai commencé à essayer iOS dev, j'ai réalisé à quel point le studio Android (ou idée intellij) était bon.
IlyaEremin
91

Mise à jour 2020

Fonctionne aussi sur les versions Xcode: 11.3.1

Fonctionne dans les versions 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

Instruction

  1. Donnez les autorisations pour modifier les fichiers suivants. La plupart du temps, le système d'exploitation ne vous permet pas de modifier les fichiers.

pour la version 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/

sous les versions 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. Modifiez le fichier, en écrivant la commande suivante: (Ouvrez-le dans sublime ou éditeur de texte si vous le pouvez)

pour 11.3.1

open  

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

pour les versions ci-dessous

open /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  1. Ajoutez les extraits de code XML suivants:
<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>

Captures d'écran

entrez la description de l'image ici

et Redémarrez Xcode et allez à Preferences - Key Bindings, recherchez la commande que nous avons tapée (Duplicate Lines & Duplicate Current Line).

entrez la description de l'image ici

C'est tout.

Pour les gens d'Unix à noter: -

sudo chmod 755 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/ 
Zumry Mohamed
la source
Il fonctionne comme un charme! J'ai édité IDETextKeyBindingSet.plistet ajouté le dictionnaire ci-dessus, puis mappé les clés dans les préférences de XCode.
Randika Vishman le
3
Ce sont les réponses nerd dont les utilisateurs Mac ont besoin!
Luca Davanzo
1
Pour XCode 10.1, je devais utiliser la chaîne suivante: moveToBeginningOfLine :, deleteToEndOfLine :, coup sec :, insertNewline :, SETMARK :, moveToBeginningOfLine :, selectToMark :, coup sec: . Un grand merci à @tmsimont
marcelosalloum
1
c'est la première chose sur Google à chaque fois que Xcode est mis à jour.
newDeveloper
1
Cette solution fonctionne pour moi plutôt que la réponse acceptée
khalid
18

Ok, j'ai trouvé ceci:

Version pour XCode 11:

selectParagraph:, delete:, undo:, moveRight:, yankAndSelect:
  • ne touche pas le presse-papiers
  • fonctionne avec plusieurs lignes
  • sélectionne les lignes ajoutées, donc peut être utilisé plusieurs fois sans resélectionner
  • sélection fixe dans XCode 11
  • fonctionne mieux avec annuler

Puisque j'applique ce changement après chaque mise à jour de XCode, j'ai créé un script pour cela. Cela peut peut-être causer des dommages, mais j'ai essayé de le rendre relativement sûr. Il fait une copie du fichier, puis remplace la ligne par sa copie et une commande supplémentaire utilisant perl. Nécessite que XCode soit installé à/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

Ancienne version (je ne sais pas si la nouvelle est compatible avec les anciennes versions, je la garderai donc ici):

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

et script pour l'ancienne version pour éviter l'édition manuelle des fichiers:

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

edit: correction mineure edit2: modification de la sélection de paragraphe edit3: version ajoutée pour XCode 11

Rychu
la source
Vraiment merci pour cela, à la recherche de cette combinaison. Cela peut dupliquer une ou plusieurs lignes sans ajouter de nouvelles lignes indésirables et ctrl-z fonctionne bien.
mkeremkeskin
Merci, c'est ce qui est le plus proche du comportement d'IntelliJ IMHO
OxyFlax
17

Aujourd'hui, j'ai écrit un très petit plugin pour Xcode 5 qui supprime et duplique les lignes et les sélections.

Vous pouvez le télécharger à partir de mon dépôt GitHub: XcodeKit Plugin - https://github.com/ptfly/XcodeKit

hors pair
la source
Je viens de télécharger et d'installer ceci - Vous pouvez également utiliser les préférences système pour définir des raccourcis clavier pour les commandes. Très agréable!
Orion Edwards
La meilleure solution est que celle-ci ne vous cassera pas le presse-papiers actuel. Pour ajouter des raccourcis clavier: Préférences système -> clavier -> raccourcis -> raccourcis d'application -> '+'. Là, choisissez Xcode et le titre du menu, par exemple `` Supprimer la sélection / ligne ''
Sjoerd Perfors
Je viens de l'installer. IMPRESSIONNANT, pour une raison quelconque, mon menu "Dupliquer" en édition est grisé. Même si j'ai sélectionné une ligne dans l'éditeur, le curseur et j'ai essayé de sélectionner une ligne entière.
John Ballinger
C'est plus que génial. Je vous remercie!
0x6A75616E
ça ne marche pas pour moi. Le "Dupliquer" est grisé et le raccourci clavier ne fonctionnera pas non plus.
SquareBox
13

La réponse de @ Hailei était plutôt bonne, mais avait pour effet secondaire malheureux de frapper le contenu du presse-papiers (le laissant rempli avec le contenu de la ligne dupliquée), ce qui est précisément la partie de l'approche manuelle du copier / coller que j'essayais d'éviter .

Donc, j'ai changé la séquence de commandes en ceci:

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

Les 2 yank:peuvent ne pas fonctionner comme prévu si vous avez NSTextKillRingSizedéfini quelque chose en dehors de 1, mais je suis presque sûr que 1c'est la valeur par défaut, et vous devez faire un travail non trivial pour le changer (cela nécessite l'ajout d'une entrée à ~/Library/Preferences/.GlobalPreferences.plist).

Kelan
la source
Je suggère d'utiliser la commande defaults write -g NSTextKillRingSize 1au lieu de jouer avec le GlobalPreferences.plist. ;)
dbernard
@amas Il est probable que vous deviez copier le fichier ailleurs avant de le modifier, puis écraser le fichier d'origine, à moins que vous ne vouliez risquer de changer les permissions sur le (s) dossier (s) parent.
nipponese
cela fonctionne presque, mais pour une raison quelconque, un tas d'espaces est ajouté à la fin de la ligne dupliquée .. une idée pourquoi?
tmsimont
5
si corrigé avec cette modification:moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, setMark:, moveToBeginningOfLine:, selectToMark:, yank:
tmsimont
Cela devrait être la réponse suggérée (en suivant le guide de @ Hailei). Merci!
brkeyal
9

Pourquoi dupliquer une seule ligne? Il est préférable de dupliquer le paragraphe entier. Ma séquence:

Dupliquer le paragraphe actuel

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

Supprimer le paragraphe actuel

selectParagraph:,
delete:,
moveUp:,
moveToEndOfParagraph:

Fonctionne bien dans Xcode 4.6

BB9z
la source
D'accord, la manipulation des paragraphes est supérieure aux lignes. Tout le monde, rendez votre éditeur suffisamment étroit pour envelopper le texte et essayez d'utiliser les commandes de ligne.
Logan Moseley
Quelle est la taille de la fenêtre que votre code enveloppe. Pensez à diviser votre code en lignes plus petites si cela se produit si souvent.
quemeful
9

Je me demande pourquoi personne n'a mentionné l'utilisation des touches fléchées ( ) pour à la fois déplacer le curseur et sélectionner des lignes entières (en ajoutant ).

Je copie régulièrement des lignes entières (dupliquer) en déplaçant le curseur au début d'une ligne en utilisant + (au lieu de ctrl+ A), puis en utilisant + + (au lieu de ctrl+ + E) pour sélectionner toute la ligne jusqu'à la fin, puis copier / coller.

J'ai rencontré d'autres threads où personne ne semble utiliser ces raccourcis clavier. Ils sont globaux sous OS X et je les utilise tout le temps! Beaucoup moins d'acrobaties à la main;)

Baldur
la source
Cela nécessite beaucoup plus de "hand-acrobatics" que de dupliquer avec une seule combinaison action / touche ... c'est la façon dont je duplique du texte dans un éditeur de texte ou un navigateur Web, oui, mais j'attends un peu plus de l'EDI.
Ixx
1
Et aussi, avec le raccourci de ligne en double, vous n'écrasez pas le contenu du presse-papiers. Plusieurs fois, vous copiez quelque chose, dupliquez du code et souhaitez le coller - avec votre méthode, vous devez le copier à nouveau.
Ixx
Hé bien oui. Mais moins que la voie suggérée par l'OP. Je peux convenir qu'une seule commande serait la meilleure. Je pensais juste que je voudrais souligner une alternative.
Baldur
1
c'est toujours mieux que rien hors de la boîte. Je souhaite que cmd + C / X sans sélection copie / coupe la ligne entière comme le font les autres éditeurs ...
manroe
@Baldur C'est ce que je fais aussi. cmd + gauche cmd + shift + droite cmd + c cmd + droite entrez cmd + gauche cmd + p. À 7 touches, cela peut facilement être fait en moins de 3 secondes, cependant, c'est toujours assez fastidieux par rapport à ctrl + d comme dans de nombreux éditeurs de texte. Il est regrettable que cela ne soit pas intégré à xcode, ou qu'en général les macs et les logiciels Apple n'aient pas de meilleures touches de raccourci.
csga5000
9

EDIT: 12 juillet 2020 Après la mise à jour vers Xcode 11.5, mon duplicate lineentrée de clé du plistfichier avait disparu. J'ai dû l'ajouter à nouveau. La liaison de clé était toujours là cependant.

EDIT: 17 septembre 2019 Après la mise à jour vers Xcode 10.3, mon duplicate lineentrée de clé du plistfichier avait disparu. J'ai dû l'ajouter à nouveau. La liaison de clé était toujours là cependant.

EDIT: 28 mai 2019 Après la mise à jour vers Xcode 10.2 à nouveau, mon duplicate lineentrée de clé du plistfichier avait disparu. J'ai dû l'ajouter à nouveau. La liaison de clé était toujours là cependant.

EDIT: 23 décembre 2018 Après la mise à jour vers Xcode 10.1, tous mes raccourcis se sont à nouveau cassés. Mais quelque chose de différent est qu'après la mise à jour du fichier plist pour la duplication de ligne, je n'ai pas eu à définir mes raccourcis clavier, ils étaient déjà là. Étrange.

EDIT: 14 OCT.2018 Xcode 10: Quelqu'un de haut niveau chez Apple aime vraiment copier / coller et s'assure qu'avec chaque version de la mise à jour Xcode, la duplication de ligne est supprimée de l'installation de tout le monde. Nous, les développeurs, avons été extrêmement frustrés par ce non-sens qui se passe dans Xcode depuis toujours, le seul IDE sans option de duplication de ligne. Je viens de mettre à jour vers Xcode 10, et comme vous l'avez deviné - toutes mes touches de raccourci sont supprimées avec ma fonctionnalité de duplication de ligne. Cependant, il est réparable comme dans la réponse originale. Une légère différence cette fois est que vous aurez besoin de la ligne suivante:

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

EDIT: Xcode 9: J'ai dû refaire mes raccourcis et la duplication et la suppression de lignes, mais la bonne chose est que vous pouvez maintenant modifier à nouveau IDETextKeyBindingSet.plist. Ce gars haut d'Apple doit être en vacances quand ils ont publié cette version.

EDIT: Xcode 8: Buggy, vous ne pouvez pas du tout modifier le fichier IDETextKeyBindingSet.plist. Xcode le réinitialise au démarrage. Ce gars de haut niveau chez Apple est vraiment déterminé à nous faire utiliser le copier / coller au lieu de la simple duplication de lignes comme dans tous les autres IDE.

EDIT: Xcode 7.1 et il n'y a toujours pas de raccourcis pour la duplication et la suppression de ligne. C'est le seul IDE avec lequel j'ai travaillé sans de tels raccourcis. Et je ne peux pas imaginer la vie d'un développeur sans ces deux raccourcis critiques.

Voici comment cela peut être fait:

Nous devons d'abord modifier un fichier plist qui réside dans le bundle Xcode.app (nécessite sudo pour le modifier)

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

Ensuite, recherchez <key>Insertions and Indentations</key>et sous l' <dict>étiquette, ajoutez ce qui suit:

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

Ensuite, trouvez les et ceux-ci dans la section <key>Deletions</key>sous l' <dict>étiquette:

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

entrez la description de l'image ici

Maintenant, ouvrez / redémarrez Xcode, allez dans Préférences et allez dans l'onglet «Key Bindings». Utilisez la barre de recherche pour filtrer et rechercher les nouveaux raccourcis. Cliquez ensuite devant la description du raccourci pour lui attribuer un raccourci de votre choix. Assurez-vous que votre raccourci n'est pas en conflit avec les raccourcis existants.

entrez la description de l'image ici

zeeshan
la source
3

J'envisagerais de réviser la séquence de commandes pour:

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

L'ajout deleteToBeginningOfLinemaintient l'indentation de la ligne dupliquée.

user570753
la source
Cela a très bien fonctionné une fois que j'ai réalisé que je devais échanger les (belles) nouvelles lignes avec un espace après la virgule.
McUsr
2

insertLineBreak avait au moins besoin pour moi de faire une copie sur une nouvelle ligne, sans elle, j'ai une copie sur la même ligne

Vladimir Kruglov
la source
2

J'ai eu de gros problèmes pour déverrouiller le fichier .plist sur MacOS Sierra et Xcode 9, même la décision @Tim n'a pas fonctionné pour moi. Si vous rencontrez le même problème, accédez au terminal et procédez comme suit:

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

Peu d'autres moyens possibles de le faire sont également décrits ici .

Ensuite, dans l'éditeur nano, cliquez ^Wet tapez «insertions» pour passer à la partie «Insertions et indentations». Juste sous la <dict>balise, collez cet extrait de code xml:

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

Appuyez sur control + X, puis Y, puis Enterpour enregistrer le fichier dans nano éditeur.

UPD: J'ai trouvé une meilleure décision, qui ajoute une ligne supplémentaire avant la duplication (utile lorsque vous souhaitez dupliquer une ligne qui a une autre ligne juste en dessous):

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

Voici mes entrées Supprimer ( CTRL+ D) et Dupliquer ( CMD+ SHIFT+ D) de mon IDETextKeyBindingSet.plist. (dans /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources)

Je viens de les configurer dans Xcode 4.6.1 (basé sur la réponse de user570753 ci-dessus et ailleurs)

    <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>
Rob
la source
0

Tous les utilisateurs de texte sublime qui souhaiteraient faire correspondre duplicateLineUp et duplicateLineDown de sublime dans XCode, veuillez ajouter ce qui suit à votre fichier 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>
internet-nico
la source
0

Dans le cas où quelqu'un d'autre se verrait refuser l'accès à la modification de IDETextKeyBindingSet.plist, vous pouvez vous accorder des autorisations de lecture / écriture en:

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

Juste pour compléter la réponse de Hailei, les commandes qui fonctionnaient le mieux pour moi étaient:

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

Ses commandes suggérées copiaient la ligne souhaitée deux lignes ci-dessous, pour moi.

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

Ligne (s) en double prise en charge. (Cela fonctionne dans Xcode 9.2)

Luminoïde
la source
0

En ce qui concerne Xcode 11, aucune de ces solutions n'a fonctionné pour moi. La première réponse avait un comportement étrange car elle insérait la ligne après la ligne suivante. La réponse suivante, cependant, a fonctionné pour moi.

<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>
Ben
la source