Xcode ligne en double
Il est un Duplicate
de commande dans le Menu Edition (avec un raccourci par défaut de ⌘D), mais il est (comme Halley souligné) signifiait pour la duplication dans Interface Builder partie de Xcode.
Alors, comment faites-vous (facilement) dupliquer une ligne dans Xcode 4?
Une question relative à la (avec une réponse) pour Xcode 3 ... et ce qui ne fonctionne pas pour Xcode 4.
Pourquoi ne pas simplement copier & coller?
Parce que c'est fastidieux et comporte trop de main-d'acrobatie:
soit (1): le déplacement de la ligne de début, puis appuyez sur ⇧^E, puis de copier avec ⌘C, se déplaçant à la nouvelle ligne, alligning curseur, et enfin coller avec ⌘V;
ou (2): ^A (réglez le curseur à la ligne de début), ^de l'ESPACE (jeu de marque), ^E (réglez le curseur en fin de ligne), ⇧^W (Select to Mark
; personnalisé), la copie, la nouvelle ligne, etc.
Comme Frank gerhard Schröder (dans le une question relative à la) a dit:
Le point de l'ensemble est de ne PAS utiliser le Cmd-C/Cmd-V raccourcis.
- Sélectionnez la ligne et copier coller?
- Le CP est juste trop de travail (et de la ligne de duplication n'est pas quelque chose pour lequel le besoin ne se pose que rarement). 🙂 J'ai mis à jour la question.
- Commande-D est pour le contrôle de la duplication dans Interface Builder.
- c'est bon à savoir. Et est-il l'équivalent de ⌥de la souris faites glisser (qui a également des copies des éléments de l'interface)?
- Je pense que oui. Les Touches de la section de disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/... dit que "en appuyant sur la touche Option pendant le glisser-déposer les opérations de copie les objets sélectionnés au lieu de les déplacer."
- Je me demandais s'il y avait une différence entre les deux (⌘D et ⌥de la souris faites glisser) à l'égard des points de vente, etc.
- Vérifier ma Réponse , Il sera utile pour Xcode 8.0
- Pour la dernière Xcode 9.3, voir mon a accepté de répondre
Vous devez vous connecter pour publier un commentaire.
Accédez au dossier qui contient du côté obscur de la force:
/Developer/Library/PrivateFrameworks/IDEKit.framework/Resources
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources
.Ouvrir
IDETextKeyBindingSet.plist
.Ajouter un nouveau dictionnaire et une nouvelle commande de l'élément comme la capture d'écran ci-dessous (le nom de ce que vous voulez):
C'est:
selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:
Redémarrer Xcode et allez dans les Préférences - les raccourcis clavier, la recherche de votre commande.
Définir une combinaison de touches pour la commande:
Finalement lâché le pouvoir de raccourcis sur Xcode... Profitez-en!
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/
et vous devez changer les permissions de manière récursivesudo chmod 777 -R *
sinon, vous ne pouvez pas modifier ce fichier.../Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources
alias points. Sinon, j'ai suivi avec succès Halley les étapes sur la version 4.3.2 ... je vous suggère de sauvegarde de l'original du fichier, puis l'ouvrir dans Xcode lui-même (et non dans TextEdit). Aussi, concernant les autorisations: de les changer (uniquement pour le fichier lui-même; pas de récursivité nécessaire) dans le Finder a très bien fonctionné.<key>Custom</key> <dict> <key>Duplicate Current Line</key> <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string> </dict>
sudo chmod -R 777 *
insertNewLine:
déclaration ne fonctionne pas. UtilisationinsertLineBreak:
à la place:selectLine:, copy:, moveToEndOfLine:, insertLineBreak:, paste:, deleteBackward:
Duplicate Line
fonctionnalité dans Xcode 9.2:selectLine:, copy:, moveToEndOfLine:, moveToBeginningOfLine:, paste:, insertLineBreak:, deleteBackward:, moveLeft:
moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, moveToBeginningOfLine:, yank:
yank
à la place.L'ajout de lignes Dupliquées Fonctionne pour Xcode version 7.1 , 7.3, 7.3.1 8.0 , 8.1, 8.2, 8.3 ET 9.0, 9.1, 9.2, 10.0, 10.1 ainsi
Travaille dans 10.2.1 aussi 2019
Donner persiomission pour modifier les fichiers suivants, la Plupart du temps, l'OS ne vous permettra pas de modifier les fichiers.
Modifier le fichier suivant,
par écrit de la commande suivante.
ajoutez le code xml suivant snipets.
capture d'écran du fichier édité.
et Redémarrez Xcode et aller à
Preferences - Key Bindings
, recherche pour la commande, nous avons tapé (Lignes Dupliquées&Double Ligne Courante).C'est tout.
IDETextKeyBindingSet.plist
et ajouté au-dessus de dictionnaire et de les représenter ensuite les touches dans les Préférences de XCode.Aujourd'hui, j'ai écrit un petit plugin pour Xcode 5 que supprimer et dupliquer des lignes et des sélections.
Vous pouvez le télécharger à partir de mon dépôt GitHub:
XcodeKit Plugin - https://github.com/ptfly/XcodeKit
@Hailei la réponse a été assez bonne, mais avaient la fâcheuse conséquence de casser le contenu du presse-papiers (en la laissant remplie avec le contenu de la copie de la ligne), ce qui est précisément la partie du manuel de copier/coller l'approche que j'essayais d'éviter.
Ainsi, j'ai changé la séquence de commande à ceci:
Le 2
yank:
s peut ne pas fonctionner comme prévu si vous avezNSTextKillRingSize
quelque chose de côté de1
, mais je suis sûr que1
est la valeur par défaut, et que vous avez à faire certains non-trivial travailler pour le changer (il nécessite l'ajout d'une entrée à~/Library/Preferences/.GlobalPreferences.plist
).defaults write -g NSTextKillRingSize 1
au lieu de jouer avec la GlobalPreferences.plist. 😉moveToBeginningOfLine:, deleteToEndOfLine:, yank:, insertNewline:, setMark:, moveToBeginningOfLine:, selectToMark:, yank:
Pourquoi dupliquer une seule ligne? Dupliquer l'ensemble du paragraphe, c'est mieux. Ma séquence:
Dupliquer L'Actuel Paragraphe
Supprimer Le Paragraphe En Cours
Fonctionne très bien dans Xcode 4.6
Je me demandais pourquoi personne n'a mentionné l'aide de ⌘ avec les touches de flèche (←↑→↓) pour déplacer le curseur et sélectionner des lignes entières (par l'ajout de ⇧).
Je fais régulièrement de copier l'ensemble des lignes (double) en déplaçant le curseur au début d'une ligne à l'aide de ⌘+← (au lieu de ctrl+Un) et puis utilisez ⌘+⇧+→ (au lieu de ctrl+⇧+E) pour sélectionner l'ensemble de la ligne à la fin et ensuite copier/coller.
J'ai couru dans d'autres fils où personne ne semble utiliser ces raccourcis clavier. Ils sont globaux dans OS X et je les utilise tout le temps! Beaucoup moins de main-d'acrobatie 😉
EDIT: le 28 Mai 2019,
Après mise à jour de Xcode 10.2 de nouveau mes raccourcis ont disparu. J'ai dû ajouter de nouveau.
EDIT: Dec 23, 2018
Après mise à jour de Xcode 10.1 tous mes raccourcis a éclaté de nouveau. Mais quelque chose de différent, c'était qu'après la mise à jour du fichier plist pour la ligne de duplication, je n'avais pas à définir mes raccourcis clavier, ils étaient déjà là. Étrange.
EDIT: OCT 14, 2018
Xcode 10: Quelqu'un, en haut de la Pomme aime vraiment copier/coller, et permet de s'assurer que chaque version de Xcode, la mise en ligne de duplication est supprimée de tous les installer. Nous, développeurs, ont été extrêmement frustré par cette absurdité se passe dans Xcode depuis toujours, la seule IDE avec aucune option de duplication. Je viens de mettre à jour de Xcode 10, et comme vous l'aurez deviné - toutes mes touches de raccourci sont enlevés avec ma ligne de chevauchement de fonctionnalité. Cependant, il est réparable comme dans l'original de la réplique. Une légère différence cette fois est que vous aurez besoin de la ligne suivante:
EDIT: Xcode 9: j'ai dû refaire mes raccourcis et de la ligne de la duplication et de la
la suppression, mais la bonne chose est que maintenant vous pouvez modifier IDETextKeyBindingSet.plist de nouveau. Ce haut Apple mec doit être en vacances quand ils ont sorti cette version.
EDIT: Xcode 8: Buggy, vous ne pouvez pas modifier l'IDETextKeyBindingSet.fichier plist à tous. Xcode réinitialise sur démarrer. Ce haut gars de chez Apple est vraiment décidée à nous faire utiliser le copier/coller à la place de la simple ligne de duplication comme dans tous les autres IDEs là.
EDIT: Xcode 7.1 et encore il n'y a pas de raccourcis pour la ligne de duplication et suppression. C'est le seul IDE je n'ai jamais travaillé avec pas de tels raccourcis. Et je ne peux pas imaginer la vie d'un développeur sans ces deux types de raccourcis.
Basé sur ce que j'ai lu, j'ai mis mon Xcode pour ces raccourcis et blogué à ce sujet à: http://jixte.com/2016/03/30/line-duplicate-and-deletion-in-xcode-7-x/
Ici est de savoir comment il peut être fait:
Nous avons d'abord besoin de modifier un fichier plist qui vit à l'intérieur de Xcode.app bundle (besoin de sudo pour modifier)
/Applications/Xcode.app/Contents/Frameworks/IDEKit.cadre/Ressources/IDETextKeyBindingSet.plist
Recherchez
<key>Insertions and Indentations</key>
et en vertu de la<dict>
tag ajouter les éléments suivants:Ensuite, trouver le et de ces à l'intérieur de la section
<key>Deletions</key>
en vertu de la<dict>
tag:Maintenant Ouvert/Redémarrage Xcode, allez dans les Préférences et aller à la “raccourcis” de l'onglet. Utilisez la barre de recherche pour filtrer et rechercher les nouveaux raccourcis. Puis cliquez devant le raccourci description de lui attribuer un raccourci à votre goût. Assurez-vous que votre raccourci n'entre pas en conflit avec les raccourcis existants.
Ok, j'ai trouvé ça:
Depuis que je suis à l'application de ce changement après chaque mise à jour de XCode, j'ai fait un script pour ça. Éventuellement, il peut causer des dommages, mais j'ai essayé de la rendre relativement à l'abri. Il fait une copie du fichier, puis remplace la ligne avec sa copie et de commande supplémentaires à l'aide de perl.
edit: correction mineure
edit2: modification de l'alinéa sélection
Je voudrais envisager de revoir la séquence de commande à:
L'ajout
deleteToBeginningOfLine
maintient le retrait de la copie de la ligne.insertLineBreak nécessaire au moins pour moi de faire une copie sur une nouvelle ligne, sans elle, j'ai copier sur la même ligne
J'ai eu beaucoup de difficulté à débloquer .fichier plist sur MacOS Sierra et Xcode 9, même @Tim décision n'a pas fonctionné pour moi. Si vous avez le même problème, rendez-vous au terminal et le faire:
Quelques autres façons de procéder sont également décrites ici.
Puis dans l'éditeur nano cliquez sur
^W
et de type "insertions" pour revenir à "des Insertions et des Indentations' partie. Juste sous<dict>
tag coller ce code xml-extrait de:Appuyez sur
control + X
, puisY
, puisEnter
pour enregistrer le fichier dans l'éditeur nano.UPD: je suis venu avec une meilleure décision, ce qui ajoute une ligne supplémentaire avant de duplication (utile lorsque vous souhaitez dupliquer une ligne qui a une autre ligne juste en dessous):
Voici mon Supprimer (CTRL+D) et en Double (CMD+MAJ+D) les entrées de mon IDETextKeyBindingSet.plist. (dans /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources )
Je viens de les définir dans Xcode 4.6.1 (basé sur la réponse de user570753 ci-dessus et ailleurs)
Tout sublime text utilisateurs qui souhaitent match sublime de duplicateLineUp et duplicateLineDown dans XCode, s'il vous plaît ajouter les éléments suivants à votre IDETextKeyBindingSet.plist fichier
Au cas où quelqu'un d'autre l'accès est refusé à modifier IDETextKeyBindingSet.plist vous pouvez donner vous-même autorisations de lecture/écriture par:
Juste pour compléter Hailei réponse, les commandes qui marchent le mieux pour moi ont été:
Il a suggéré des commandes ont été de la copie de la ligne désirée deux lignes ci-dessous, pour moi.
Ligne en double(s) pris en charge. (Cela fonctionne dans Xcode 9.2)