Xcode ligne dupliquer / supprimer

venant d'Eclipse et ayant été utilisé pour dupliquer des lignes tout le temps, il est assez étrange de découvrir que Xcode n'a pas une telle fonction. Ou est-il?

je sais qu'il est possible de changer les reliures de clés à l'échelle du système, mais ce n'est pas ce que je cherche.

117
demandé sur Sam 2009-02-15 21:43:40

20 réponses

le point entier est de ne pas utiliser les raccourcis Cmd-C / Cmd-V . J'ai le même problème venant D'IntelliJ, et pouvoir simplement dupliquer des lignes avec Cmd-D et les supprimer avec Cmd-Y est un grand gain de temps.

ça m'ennuie depuis. Cependant, il semble que quelqu'un d'autre a trouvé une solution qui fonctionne.

En bref, créer un fichier ~/Library/KeyBindings/PBKeyBinding.dict avec le contenu suivant et redémarrez Xcode.

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

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

Cela va créer deux raccourcis: Ctrl - Shift - K pour supprimer la ligne en cours et Ctrl - Shift - D pour la duplication de la ligne courante. S'il vous plaît noter que ce sera seulement travailler si vous êtes et non en utilisant un jeu de liaison de clé personnalisé dans Xcode. Passez à "Xcode Default" et les choses devraient fonctionner. Testé sur Xcode 3.2 sur Snow Leopard.

plus d'informations sur les fixations de clés Mac OS X: http://funkworks.blogspot.it/2013/03/republishing-of-wwwerasetotheleftcompos.html

89
répondu Frank Schröder 2013-12-30 14:32:44

Pour supprimer une ligne : Ctrl - Un pour aller au début de la ligne, puis Ctrl - K pour le supprimer, et d'un autre temps Ctrl - K pour supprimer la ligne vide. (Je n'utilise pas Xcode très souvent, mais je suis habitué à cela dans Emacs et autres entrées de texte avec des fixations de type Emacs, et il semble que cela fonctionne aussi avec Xcode.)

et de dupliquer une ligne : Je ne sais pas de nombreux programmes qui ont une commande pour cela, mais habituellement j'utilise simplement copier+coller - dans Xcode c'est de type CUA: Ctrl + A pour aller au début de la ligne, poste + pour le sélectionner, Commande + C à copier et commande + * V à coller deux fois (une fois en surimpression de la ligne et une fois ajouté à elle).

(d'une personne qui tape et édite du texte tout le temps, si souvent dans des programmes différents, et parfois se fâche d'avoir à se distraire avec un widget stupide tout en faisant une petite correction dans une entrée de texte, qu'il ne peut tout simplement pas éviter de se rappeler ces séquences et habitudes)

92
répondu Tom Alsberg 2015-06-16 12:12:03

supprimer une ligne comme eclipse CTRL+D (testé sur Xcode 4.5.1):

tout D'abord, changer ces droits:

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

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

ouvrir /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist avec Xcode lui-même et ajouter cette nouvelle entrée:

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

enter image description here

redémarrer Xcode et ouvrir Xcode > Préférences > liaisons clés. Trouvez votre macro et définissez un raccourci:

enter image description here

75
répondu Opena 2012-11-05 11:51:15

j'ai essayé la solution de fixations de clés, mais je n'ai pas pu le faire fonctionner. Cependant, éditer mes Fixations de clés XCode fonctionne comme un charme. Voici comment j'ai fait.

Cette solution ne modifie pas le contenu du Presse-papiers!

ouvrir les fixations de clés XCode:

alt text

dans la boîte de dialogue Modifier les Scripts de L'utilisateur:

  1. dupliquer le script " Move Line Down" et le renommer
  2. Dupliquer la ligne de déplacement vers le bas.scpt " fichier, renommer le script, sélectionner fichier via (double clic) dans L'éditeur de Script
  3. édite le script (ouvre "AppleScript Editor") et supprime le passage "delete (paragraphs startLine through endLine)".
  4. Si vous ne souhaitez pas redémarrer XCode, vous semblez avoir à supprimer et rajouter le script. Assurez-vous que vous avez "Sortie" réglé sur "annuler Sortie", sinon vous aurez un "(null)" dans votre fichier source
  5. j'ai légèrement modifié les scripts un peu plus pour avoir les bonnes lignes sélectionnées:

Dupliquer La Ligne:

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

Dupliquer Une Ligne Vers Le Bas:

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

alt text

9
répondu leviathan 2011-03-05 18:35:14

comme Xcode 4 rend la mise en œuvre difficile en utilisant des fixations de clés, j'ai eu recours à clavier Maestro ( Quickeys devrait fonctionner aussi, mais il n'est pas entièrement compatible Lion). Par exemple, voici mon clavier Maestro shortcut (bound to canneberge-d):

http://bit.ly/thC6yf

6
répondu raheel 2011-11-20 17:06:43

OK, donc j'ai eu ce travail pendant un certain temps et tout à coup il s'est cassé. Maintenant j'ai combiné de différents postes ici et ai trouvé une solution qui fonctionne pour XCode 6.3.1.

  1. Aller à /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/ avec le Finder.

  2. trouvez le dossier intitulé Resources. Cliquez avec le bouton droit de la souris, appuyez sur Get Info, déverrouillez le paramètre sharing & permissions (en appuyant sur la serrure) et réglez-le pour lire et écrire pour tous.

  3. entrez dans le dossier et trouvez le fichier IDETextKeyBindingSet.plist. Cliquez avec le bouton droit de la souris, appuyez sur Get Info, déverrouillez le paramètre sharing & permissions (en appuyant sur la serrure) et réglez-le pour lire et écrire pour tous.

  4. ouvrir le fichier avec XCode (par défaut)

  5. rechercher des suppressions, clic droit et ajouter une nouvelle ligne. Nommez - le par exemple supprimer la ligne. Dans le champ Valeur, tapez: selectLine:, deleteBackward: . (Cela peut également être fait pour la ligne dupliquée: selectLine:,copy:,moveToEndOfLine:,insertNewline:,paste:,deleteBackward: )

  1. Démarrer XCode, allez dans préférences / raccourcis clavier et de recherche pour Supprimer la Ligne. Définir un raccourci. Profiter.
6
répondu Joakim 2015-05-21 13:09:07

triple clic pour sélectionner la ligne entière, commande-C pour sélectionner et Commande-v deux fois pour la dupliquer. Ce n'est pas une fonction Xcode, c'est juste une partie du système D'exploitation.

5
répondu Paul Tomblin 2009-02-15 18:46:18

je sais que ce fil est assez vieux mais j'ai trouvé une autre solution en utilisant BetterTouchTool , vous pouvez exécuter le Ctrl+A , Ctrl+K , Ctrl+K séquence en un raccourci en configurant comme ceci dans BTT:

enter image description here

(utilisez le bouton "Attach Additional Action" pour ajouter le deuxième et le troisième raccourci)

PS: en provenance D'Eclipse où Cmd+D est supprimé ligne 151970920"

5
répondu Laurent Meyer 2015-02-18 23:12:38

utilisez des scripts d'utilisateur.

il y a encore des scripts pour déplacer et supprimer des lignes. Vous devez définir les liaisons clés pour ces scripts (menu Scripts - > Modifier les Scripts utilisateur... , sous Xcode 3.2).

pour dupliquer la ligne, vous devez créer votre propre script. Mais c'est très simple ! Dupliquer le script "déplacer la ligne vers le bas" et supprimer la ligne qui supprime le texte sélectionné:

delete (paragraphs startLine through endLine)
4
répondu Damien Flament 2010-08-22 22:20:49

il y a une solution pour la duplication des lignes XCode4 sur ici

j'ai aussi ajouté la suppression de ligne au plist:

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

3
répondu MartinMcB 2017-05-23 12:18:07

pas besoin de modifier Xcode. Vous pouvez simplement utiliser l'extension Xcode Linex

enter image description here

3
répondu Aladin 2017-10-20 15:05:58

La solution de damien.flament fonctionne très bien et vous pouvez avoir besoin de mettre sortie à "jeter sortie" voir le pic ci-dessous

Userscripts setting

P. S: Je ne sais pas comment commenter sa réponse.

2
répondu palaniraja 2017-05-23 12:18:07

comme dit ci-dessus, fermer XCode et insérer ce qui suit à ~/Library/Application Support/Xcode/Key Bindings/ <user>.pbxkeys à <dict> à <key>text</key> section:

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

Démarrer XCode et profiter de la CTRL - SHIFT - D et CTRL - SHIFT - K .

Si vous voulez CTRL - D et CTRL - K , utilisez ^d et ^k dans les définitions clés. Il n'y a pas de clé en double liaisons dans le fichier.

fonctionne très bien pour moi avec Xcode 3.2

2
répondu askh 2013-07-21 10:19:53

cela est possible en utilisant BetterTouchTool . CMD+d dupliquera une ligne. Créer un nouveau raccourci comme ceci:

enter image description here

utilisez le bouton "Attach Additional Action" pour ajouter le deuxième et le troisième raccourci

2
répondu Adam Studenic 2015-10-28 09:03:01

si vous avez déjà personnalisé vos fixations de clés Xcode, vous devrez éditer le fichier ~/Library/Application Support/Xcode/Key Bindings/<user>.pbxkeys . Il suffit d'ajouter les deux tableaux (décrits ci-dessus) au dictionnaire Root/text .

1
répondu MonsieurDart 2010-06-16 19:14:37

trois étapes pour supprimer la ligne courante (voir trop long, mais faire très rapide :D)

Cmd + : déplacer à la fin de la ligne

Cmd + Supprimer : supprimer pour commencer de la ligne

Supprimer : supprimer la ligne vide

1
répondu huync 2015-09-22 10:05:31

nous sommes sur Xcode 9.0 et les liaisons clés ne fonctionnent toujours pas. Soupir.

j'ai trouvé ce gist très utile, donc reposter ici pour référence future:

  1. Ouvrir /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
  2. ajouter le fragment XML suivant à ce fichier juste au-dessus du bas </dict>
  3. allez à préférences Xcode - > liaisons clés - > onglet Texte -> Faites défiler jusqu'à ce que vous voyez la Duplication
  4. cliquez sur Dupliquer la ligne courante, ajoutez un raccourci pour elle, par exemple. Cmnd+D (résoudre les doublons)
  5. Open 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>

1
répondu Jannie Theunissen 2017-10-17 09:11:22

De Xcode 6.1 ai Xcode > Préférences > Raccourcis clavier > Texte Et il y a "Delete to End of Line" et assignez une clé que vous voulez.

0
répondu SpyZip 2015-01-17 22:58:48

xcodeplus delete line plugin, est un Xcode qui fait cela pour vous. Il a été préinstallé avec Alcatraz package manager...

https://github.com/payliu/XcodePlus

0
répondu Joakim 2015-09-23 11:29:47

il n'y a toujours pas de chemin intégré pour dupliquer les lignes, à partir du Xcode 9. Et les fixations de clés personnalisées semblent avoir des problèmes.

mise à Jour: Xcode 10.0 beta 6 (10L232m) est le même.

0
répondu erkanyildiz 2018-09-04 12:52:59