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.
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
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)
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:
redémarrer Xcode et ouvrir Xcode > Préférences > liaisons clés. Trouvez votre macro et définissez un raccourci:
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:
dans la boîte de dialogue Modifier les Scripts de L'utilisateur:
- dupliquer le script " Move Line Down" et le renommer
- 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
- édite le script (ouvre "AppleScript Editor") et supprime le passage "delete (paragraphs startLine through endLine)".
- 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
- 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
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):
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.
-
Aller à
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/
avec le Finder. -
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.
-
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.
-
ouvrir le fichier avec XCode (par défaut)
-
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:
)
- Démarrer XCode, allez dans préférences / raccourcis clavier et de recherche pour Supprimer la Ligne. Définir un raccourci. Profiter.
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.
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:
(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"
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)
La solution de damien.flament fonctionne très bien et vous pouvez avoir besoin de mettre sortie à "jeter sortie" voir le pic ci-dessous
P. S: Je ne sais pas comment commenter sa réponse.
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
cela est possible en utilisant BetterTouchTool . CMD+d dupliquera une ligne. Créer un nouveau raccourci comme ceci:
utilisez le bouton "Attach Additional Action" pour ajouter le deuxième et le troisième raccourci
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
.
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
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:
- Ouvrir
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist
- ajouter le fragment XML suivant à ce fichier juste au-dessus du bas
</dict>
- allez à préférences Xcode - > liaisons clés - > onglet Texte -> Faites défiler jusqu'à ce que vous voyez la Duplication
- cliquez sur Dupliquer la ligne courante, ajoutez un raccourci pour elle, par exemple. Cmnd+D (résoudre les doublons)
- 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>
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.
xcodeplus delete line plugin, est un Xcode qui fait cela pour vous. Il a été préinstallé avec Alcatraz package manager...
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.