Angenommen, ich habe mehrere Cursor in mehreren Zeilen:
foo|
barr|
foobar|
baz|
Wie kann ich das Leerzeichen am Ende jeder Zeile automatisch an eine flache Kante verschieben ?:
foo |
barr |
foobar |
baz |
(In diesen Beispielen |
soll das mein Cursor sein.)
Wenn Sie gerade Taboder Spacevon der anfänglichen Vereinbarung erhalten Sie diese:
foo |
barr |
foobar |
baz |
Das ist nützlich, aber nicht das, wonach ich suche. Ich suche nach einer Art Tastaturkürzel, mit der ich von einer zerlumpten Einfügemarke mit mehreren Cursorn zu einer geraden Spalte wechseln kann.
text-editing
sublime-text
GladstoneKeep
quelle
quelle
Tab
am Ende jeder Zeile drücken, wird der zerlumpte Mehrfachcursor in eine gerade Spalte eingerückt. Mit Regex kann jedoch nicht der gleiche Effekt erzielt werden. Ich habe nach folgenden Leerzeichen gesucht:\s*$
und sie durch das Tabulatorzeichen ersetzt:\t
- hat jedoch\t
nicht den gleichen Effekt wieTab
manuelles Drücken .Antworten:
Sie könnten Sublime Alignment von wbond verwenden
Möglicherweise müssen Sie dies zu Ihrer Einstellungsdatei hinzufügen (Einstellungen> Paketeinstellungen> Ausrichtung> Einstellungen-Benutzer:
"|" Ersetzen mit welchem Zeichen Sie ausrichten möchten.
Bearbeiten: Wie mtoast herausgefunden hat,
"\n"
ergibt das Hinzufügen zu " align_chars " den gewünschten Effekt.Das Hinzufügen des neuen Zeilenzeichens zu "alignment_space_chars" ist wahrscheinlich nicht erforderlich und kann den Text löschen. Bei meinen begrenzten Tests konnte ich jedoch keinen Unterschied feststellen.Halten controlSie die Maustaste gedrückt und klicken Sie am Ende jeder Zeile. Drücken Sie dann die Ausrichtungs-Hotkeys (für Linux ist die Standardeinstellung ctrl+ alt+ a). Sie werden feststellen, dass die Cursor an der am weitesten entfernten Cursorposition ausgerichtet sind.
Bearbeiten2: Wenn Sie eine neue Zeile hinzufügen,
"alignment_space_chars"
um Text zu löschen, wenn Sie einen Textblock markieren und Sublime Alignment auf der Zeile nichts anderes zum Ausrichten findet (wie ein Gleichheitszeichen).Wenn Sublime Alignment keine andere Option zum Ausrichten findet, wird durch Hinzufügen einer neuen Zeile
"alignment_chars"
das Zeilenende mit Leerzeichen (oder Tabulatoren, abhängig von Ihren Einstellungen) aufgefüllt , um der längsten hervorgehobenen Zeile zu entsprechen.quelle
"\n"
, meinem hinzugefügt (Newline)"alignment_chars"
und das gewünschte Ergebnis erhalten. (Hinweis: Ich habe es nicht hinzugefügt"alignment_space_chars"
, wodurch die Zeilen gelöscht wurden.) Wenn Sie"n"
Ihrer Antwort diesen speziellen Vorschlag ( ) hinzufügen , werde ich akzeptieren.|
durch einen einzigen `\`Sie können es auch ohne ein externes Paket mit einem kleinen Hack tun, mit nur etwas mehr Aufwand. Hier ist wie:
|
Stellt einen Cursor in dieser Anleitung dar.Erstellen Sie Cursor in allen gewünschten Zeilen mit Ctrl+ Klicken oder indem Sie einen Textblock auswählen und Ctrl+ Shift+ drücken L. ( Auswahldokumente )
Fügen Sie am Ende jedes Wortes weitere Leerzeichen ein, bis sich jeder Cursor an der Stelle oder hinter der Stelle befindet, an der Sie Ihre Spalte einfügen möchten (egal wie weit die Zeit zurückliegt):
( optional 1 ) Geben Sie ein beliebiges Zeichen gefolgt von einem Leerzeichen ein. Verwenden wir
c
:Drücken Sie Home, um die Cursor an den Anfang der Zeilen zu setzen:
Drücken Sie, → (right arrow) bis die Cursor sind , wo Sie Ihre Spalte wollen:
Drücken Sie Ctrl+ Shift+ →wählen alle folgenden Leerzeichen und
c
dann drücken Delete:( Optional 1 ) Drücken Sie Deleteerneut, um das zusätzliche Leerzeichen zu entfernen, das Sie im optionalen Schritt hinzugefügt haben.
1 Wir verwenden das
c
Zeichen gefolgt von einem Leerzeichen nur, wenn die Zeilen, die wir behalten möchten, zusätzlichen Inhalt enthalten. Ohne sie Ctrl+ Shift+ →wäre das erste Wort von zusätzlichen Inhalten auf den Linien wählen, so dass Löschen schwierig.quelle
ctrl+shift+right
behandle nicht alle Zeichen konsistent, so dass möglicherweise mehr als nur Leerzeichen ausgewählt werden.Shift-End
Delete
und es hat einfach funktioniert. Funktioniert es in einigen Fällen aber nicht in anderen?c
in einer Zeile vor dem Ende des Wortes in einer anderen Zeile steht. Welches Problem habe ich gerade? Bestimmte Zeilen enthalten nicht genug Zeichen, um nach rechts zu scrollen. Wenn Sie dies tun, wird die nächste Zeile umbrochen und dieser Hack bleibt nur derselbe. Dies ist ein Hack, kein nützlicher Allheilmittelersatz.Für diejenigen, die andere Zeichen als
=
und einrücken möchten|
, konnte ich das Alignment- Paket installieren und die Datei so ändernSublime Text > Preferences > Package Settings > Alignment > Settings - User
, dass sie wie folgt aussieht:Ich habe dann den folgenden Code ausgewählt:
und gedrückt
Command + Ctrl + A
, um es auszurichten.Alles wurde in die äußerste linke Spalte verschoben, die der
{create
Text einnehmen konnte, während er noch ausgerichtet war.quelle