wake-up-neo.com

Wie erstelle ich eine Delete-Line-Tastenkombination in Xcode 8? Die Xcode 3-Lösungen funktionieren nicht mehr

In früheren Versionen von Xcode konnte eine Schlüsselbindung zum Löschen der aktuellen Zeile erstellt werden. Es gab verschiedene Lösungen und diese sind zum Beispiel hier beschrieben:

Xcode: Zeilen-Hotkey löschen

Xcode duplizieren/Zeile löschen

http://bigdiver.wordpress.com/2009/09/11/configure-homeend-key-bidings-on-mac-os-x/

http://www.betadesigns.co.uk/Blog/2010/02/03/custom-xcode-shortcuts/

Alle Lösungen umfassen das Ändern einer der folgenden Dateien:

~/Bibliothek/Anwendungsunterstützung/Xcode/Schlüsselbindungen/*. Pbxkeys
~/Library/KeyBindings/DefaultKeyBinding.dict
~/Library/KeyBindings/PBKeyBinding.dict

Eine gute Ressource für die vorhandenen Verknüpfungen in Xcode 4 is http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html . In Bezug auf das Löschen sind viele aufgeführt, für "Zeile löschen" jedoch keine.

ABER diese Lösungen funktionieren [~ # ~] nicht [~ # ~] seit Xcode 4.

Update : Problem ist immer noch dasselbe wie bei Xcode 5.1.1

Update : Problem ist immer noch dasselbe wie bei Xcode 6.1 GM Seed 2

Update : Gilt weiterhin für Xcode Version 7.3 (7D175) ab dem 26. April 2016

Update : Sechs Jahre später hat Xcode 8.3 eine integrierte Lösung. Siehe Antwort unten.

77
Klaas

Sieht aus wie Xcode 8.3 hat endlich den Befehl Zeile löschen hinzugefügt :)

Standardmäßig ist keine Tastenkombination zugewiesen, daher müssen Sie selbst eine hinzufügen:

  1. Öffnen Sie Xcode> Preferences> Key Bindings
  2. Suchen nach Delete Line
  3. Fügen Sie eine Tastenkombination in die Spalte Taste ein

Xcode Key Bindings

58
Paulo Mattos

Nach einigem Suchen bin ich zu folgender Lösung gekommen:

Drücken und halten control Taste und drücken Sie dann AKK.

(Hinweis: zweitens K löscht die leere Zeile).

Eigentlich ist es eine Kombination aus zwei Befehlen: Move to Beginning of Paragraph & Delete to End of Paragraph. Sie können auch andere Tasten verwenden/einstellen und auch Tastenkombinationen für andere Befehle verwenden/einstellen/ändern, z. Move to Beginning of Line & Delete to End of Line. Ich habe die obigen (Standard-) Tastenkombinationen verwendet, wie sie zu mir passen.

Edit:

Um mehr als eine aufeinanderfolgende Zeile zu löschen, halten Sie zuerst gedrückt control Taste und drücken Sie dannA (nur um an den Anfang des Absatzes/der Zeile zu springen), dann drücken und halten K bis alle Zeilen gelöscht sind (dies würde funktionieren, da der Cursor am Anfang bleibt).

Nur um die Aufgabe (für mich) einfacher zu machen, habe ich festgelegt commandD zum Delete to End of Paragraph und home/end zum Anfang/Ende des Absatzes gehen.

92
Vasu

Ich habs! Dies funktioniert in XCode 4.3 bis 4.5 und erfordert keine zusätzlichen Anwendungen und ist XCode-spezifisch.

Diese Lösung entspricht im Wesentlichen dem beschriebenen Befehl "Zeile duplizieren" hier :

Bearbeiten Sie die Plist-Datei

Es befindet sich unter /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

Beachten Sie, dass:

  • die verknüpfte Antwort schlägt vor, XCode dafür zu verwenden, aber ich finde, dass dies XCode zum Absturz bringt
  • dieser Pfad ist für Lion bestimmt - er kann für andere Betriebssystemversionen abweichen
  • möglicherweise müssen Sie Sudo oder die Berechtigungen ändern, um diese Datei zu bearbeiten
  • schließen Sie XCode, bevor Sie es bearbeiten

Fügen Sie ein neues <dict> Element hinzu

Fügen Sie diesen Text ÜBER dem Ende des <dict> Am Ende dieser Datei hinzu

    <key>Custom</key>
    <dict>
      <key>Delete Current Line In One Hit</key>
      <string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string> 
    </dict>

Beachten Sie, dass:

  • Dies ist innerhalb des existierenden <dict>, Also gibt es danach einen </dict></plist>
  • Dies ordnet die benannte Aktion "Aktuelle Zeile in einem Treffer löschen" den drei Schlüsselaktionen in der Zeichenfolge zu. Ich habe hier mit verschiedenen Optionen gespielt, um die richtige Kombination zu finden. Wenn Sie beispielsweise moveToBeginningOfLine versuchen, deleteToEndOfLine statt umgekehrt, wird bei Verwendung in leeren Zeilen die Zeile und die gesamte nächste Zeile gelöscht. Welches ist unangenehm

Speichern Sie dies und öffnen Sie XCode

Fügen Sie eine neue Schlüsselbindung in XCode hinzu

Siehe dazu die Screenshots in der verknüpfte Antwort oder mach das:

  1. Öffnen Sie die XCode-Einstellungen
  2. Wählen Sie Key Bindings
  3. Klicken Sie auf Alle
  4. Geben Sie im Suchfeld "Löschen" ein und suchen Sie nach "Aktuelle Zeile in einem Treffer löschen".
  5. Fügen Sie Ihre neue Bindung hinzu.

Dies sollte es aber für eine Einschränkung tun. Ich könnte XCode niemals dazu bringen, die neue Bindung zu speichern . Das gleiche Problem wird beschrieben hier obwohl meine Problemumgehung eine leichte Abweichung hatte:

  1. Erstellen Sie ein Duplikat der Standardbindungen (klicken Sie unten links im Fenster "Bindungen" auf die Schaltfläche "+" und erstellen Sie ein Duplikat).
  2. Legen Sie die neue Bindung im Duplikat fest
  3. Schließen Sie den Einstellungsdialog (das ist die Variante!)
  4. Öffnen Sie die Einstellungen erneut und erstellen Sie ein neues Duplikat des alten Duplikats. Löschen Sie das alte Duplikat.

Was für ein Rigmarole? Aber es funktioniert. Jetzt habe ich Strg + D zugeordnet, um die gesamte aktuelle Zeile in XCode 4.3 auf Lion zu löschen.

59
Rhubarb

Ich habe eine vorübergehende Problemumgehung für Xcode 9 gefunden.

Öffnen Sie den Xcode/Content/Frameworks/IDEKit.framework/Resources/IDETextK‌ eyBindingSet.plist und fügen Sie die folgenden Zeilen hinzu.

Es ahmt die Aktion nach, die in Xcode 8 mit eingeschränkter Unterstützung ausgeführt wird. Es kann nur eine Zeile entfernen, aber ich bin irgendwie zufrieden. Ich hoffe, das wird bald behoben.

<key>Customized</key>
<dict>
    <key>Delete Line</key>
    <string>moveToBeginningOfLine:, deleteToEndOfLine:, moveDown:, deleteBackward:</string>
</dict>

Nach dem Neustart von Xcode sehen Sie das benutzerdefinierte Element in Key Bindings wie unten.

enter image description here

Binden und benutzen Sie es!

Bearbeiten) Ich denke, unter einem ist besser als im Original.

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>
16
Wooseong Kim

Ich benutze BetterTouchTool , es ist ziemlich cool:

enter image description here

13
borisdiakur

Rhabarber Die Antwort ist richtig und funktioniert, aber eines ist einfacher: Die plist-Datei enthält einen Befehl. Befolgen Sie alle Anweisungen von Rhabarber 's aber

anstatt von

<string>moveToEndOfLine:, deleteToBeginningOfLine:, deleteToEndOfParagraph:</string>

verwenden Sie unten

<string>selectLine:, delete:</string>

Dies ist klarer und wirft jede Möglichkeit einer Fehlfunktion weg.

Ich möchte dies als Kommentar schreiben, aber mein "Ruf" erlaubt mir das nicht.

9
RabbitHole

versuche dies:

  1. Öffne zuerst Xcode-> Einstellungen

  2. Wählen Sie Key Bindigs

  3. suche Absatz löschen

  4. Ändern Sie Delete Paragraph zu Ihrer Verknüpfung

enter image description here

7
Bary Levy

Wenn Sie ein Keyboard Maestro-Benutzer sind, erstellen Sie einfach ein Makro, das folgende Aufgaben ausführt:

  • Befehl Pfeil nach links
  • Pfeil nach unten verschieben
  • Löschen

Ich habe es Command-D zugewiesen und es nur in Xcode verfügbar gemacht.

2
Paul Waldo

Eine einfache Lösung für XCode 5 und 6:

Installieren Sie alcatraz: http://alcatraz.io/ und installieren Sie dann das Plugin " XCodePlus delete line ":

Window > Package manager

Es gibt auch viele andere tolle Plugins .

1
Simon Epskamp

Es sieht so aus, als ob XCode jetzt eine plist-Datei im Vergleich zu einer dict-Datei verwendet und das neue Format das Hinzufügen mehrerer Befehle zu einer Tastenbindung nicht unterstützt. Es scheint auch keine Möglichkeit zu geben, benutzerdefinierte Befehle zum Binden hinzuzufügen. Die einzige Möglichkeit, etwas zum Laufen zu bringen, besteht darin, eine Schlüsselbindung für die einzelnen Aktionen festzulegen, z. B. ^D zum deleteToEndOfLine:, dann ^L zum moveToBeginningOfLine:, dir geben ^L+^D, um den kombinierten Effekt zu erzielen.

1
onteria_

es sieht so aus, als ob es jetzt nicht möglich ist ... Sie können mich jederzeit korrigieren, wenn ich falsch liege ... aber hier ist meine neue Lösung ...

gehen Sie zu den Xcode-Einstellungen und dann zur Registerkarte "Tastaturbelegung". Dupliziere den Standardsatz, damit du nicht sauer auf mich bist, wenn der Vorschlag, den ich mache, etwas kaputt macht, das du verwenden wirst.

finde 2 Tasten, die nebeneinander liegen und nicht für Befehle verwendet werden, die du verwendest ... ";", "'" vielleicht. (Ich verwende den Befehl n nicht für eine neue Datei, also habe ich n, m ausgewählt)

setze die erste Taste auf "Move to Begging of Line" und die zweite Taste auf "Delete to End of Line"

verwenden Sie dann diese Sequenz, um eine Zeile zu löschen ...

alternativ müsste etwas eingestellt werden um zeile auszuwählen, dann einfach löschen.

1
Grady Player

Wenn es Ihnen nichts ausmacht, diese Schlüsselbindung in anderen Apps zu haben, können Sie versuchen, sie in den allgemeinen Cocoa-Schlüsselbindungen festzulegen. This hat eine Erklärung.

1
LaC