Edycja wielu linii Sublime Text 2

147

Chcę edytować wiele wierszy i każde „słowo” w tym wierszu. Na przykład:

45 28 42 65
24 87 47 95
01 25 87 98

Chcę zaznaczyć każdą liczbę całkowitą we wszystkich wierszach i umieścić przed nią „0x”, aby wyglądała następująco:

0x45 0x28 0x42 0x65
0x24 0x87 0x47 0x95
0x01 0x25 0x87 0x98

Znam Ctrl+ shift+, Laby uzyskać kursory w każdym wierszu, ale jak mogę ustawić kursory przed każdą liczbą, aby edytować masowo wszystkie naraz?

Syperus
źródło
Prawdopodobnie jest już późno, aby odpowiedzieć na to pytanie, ale tutaj jest link, w którym możesz znaleźć odpowiedź na pytanie. sublimetext.com/docs/3/…
Alexander

Odpowiedzi:

282

Podświetl linie i użyj:

  • Windows: Ctrl+ Shift+L
  • Mac: Cmd ⌘+ Shift+L

Następnie możesz przesunąć kursor do treści swojego serca i edytować wszystkie linie jednocześnie.

Nazywa się to również „Podziel na linie” w menu „Zaznaczenie”.

piekarnik
źródło
Tak, ale jak mogę edytować jednocześnie wszystkie numery w wierszach? Więc jak gdybym miał zrobić tylko pierwszą linię, mógłbym edytować od razu każdą liczbę w pierwszej linii? Jeśli to ma jakiś sens
Syperus
nie możesz - możesz mieć kursor tylko w jednym miejscu w dowolnej linii. Ale możesz przenieść go na początek wiersza, dodać 0x, użyć alt>, aby przejść wzdłuż jednego słowa i ponownie dodać 0x.
Owen
28
To nieprawda - możesz mieć dowolną liczbę kursorów w jednej linii. Wszystko, co musisz zrobić, to Ctrl-click(w systemie Windows) je umieścić.
MattDMo
3
@MattDMo YES !! Dokładnie tego szukałem. Czy przypadkiem znasz skrót klawiaturowy, aby wybrać je wszystkie w ten sposób? Rozejrzę się i zobaczę, czy mogę to znaleźć.
Syperus
kiedy użyłem Ctrl+ Shift+ L, zaznacza wszystkie linie, ale kursor w każdej linii znajduje się na początku lub na końcu linii. jeśli następnie naciśnę strzałkę w lewo, próbując przenieść wszystkie kursory z powrotem na początek każdej linii, przesuwa kursory do tyłu w stosunku do miejsca, w którym się znajdują, więc nadal nie są one równomiernie w tym samym miejscu w linii. jak uzyskać wszystkie kursory na początku linii? (dla kontekstu próbuję tylko dodać [space]*[space]na początku każdego wiersza).
user1063287
84

Użyj wielu kursorów i wyboru kolumn.

W twoim przypadku wystarczy umieścić kursory na początku każdej kolumny zawierającej „słowa”.

Linux i Windows

  • Kliknij i przeciągnij, aby wybrać kolumny: Shift+RightMouseBtn
  • Dodaj inne kolumny do zaznaczenia, klikając i przeciągając: Ctrl+ Shift+RightMouseBtn
  • Odejmij kolumny od zaznaczenia: Alt+ Shift+RightMouseBtn
  • Dodaj poszczególne kursory: Ctrl+LeftMouseBtn
  • Usuń poszczególne kursory: Alt+LeftMouseBtn

Prochowiec

  • Kliknij i przeciągnij, aby wybrać kolumny: Option⌥+LeftMouseBtn
  • Dodaj inne kolumny do zaznaczenia, klikając i przeciągając: Option⌥+LeftMouseBtn
  • Odejmij kolumny od zaznaczenia: Cmd⌘+ Option⌥+ shift+LeftMouseBtn
  • Dodaj poszczególne kursory: Cmd⌘+LeftMouseBtn
  • Usuń poszczególne kursory: Cmd⌘+ Option⌥+ shift+LeftMouseBtn

Następnie edytuj w razie potrzeby. W twoim przypadku, typ 0, x.

Możesz także przejść w razie potrzeby do końca lub początku słów, zaznaczyć je i ująć w cudzysłowy lub nawiasy itd.


Bibliografia:

elomage
źródło
10

Pracował dla mnie na OS X + Sublime build 3083:

OPTION (ALT) + select lines
Jose Alban
źródło
3

Nie jestem pewien, czy jest to możliwe „po wyjęciu z pudełka”. I niestety nie znam też odpowiedniej wtyczki. Aby rozwiązać problem, który zasugerowałeś, możesz użyć wyrażeń regularnych.

  1. Cmd + F (znajdź)
  2. Regexp: [^ ]+(lub \d+, lub cokolwiek wolisz)
  3. Option + F (znajdź wszystko)
  4. Edytuj to

Skróty klawiszowe mogą się różnić w zależności od twojego systemu operacyjnego i osobistych preferencji (moje są dla OS X).

FreeNickname
źródło
Nie jest wymagana żadna wtyczka. Użyj Alt + Enter na końcu dla Linuksa.
elomage
2

Miałem ten sam problem w Linuksie, co zrobiłem, to zaznaczenie całej zawartości (ctrl-A), a następnie naciśnięcie ctrl + shift + L, daje kursor w każdej linii, a następnie możesz dodać podobną zawartość do każdej kolumny .

Możesz także wykonywać inne operacje, takie jak wycinanie, kopiowanie i wklejanie kolumn.

PS: - Jeśli chcesz wybrać prostokątny zestaw danych z tekstu, możesz również nacisnąć klawisz Shift i przytrzymać prawy przycisk myszy, a następnie wybrać dane w sposób prostokątny. Następnie naciśnij CTRL + SHIFT + L, aby umieścić kursor w każdym wierszu.

StuckWithSpring
źródło
2

Windows: wolę Alt + F3, aby wyszukać ciąg i zmienić wszystkie wystąpienia szukanego ciągu jednocześnie.

http://www.sublimetext.com/docs/selection

kocur
źródło
Alt + F3 działa również na Linuksie iz Sublime Text 3. Jest to szybszy i łatwiejszy sposób edycji tego samego ciągu w pliku.
kiamlaluno
2

W systemie Windows wolę Ctrl+ Alt+ Down.

Wybiera linie jeden po drugim i automatycznie uruchamia tryb edytora wielu linii. W ten sposób jest trochę szybszy. Jeśli masz wiele linii do edycji, lepszym wyborem jest zaznaczenie tekstu i Ctrl+ Shift+ L.

Semih Sezer
źródło
0

ctrl + shift + kliknij prawym przyciskiem myszy, działa to lepiej

chris_cx
źródło
-1

Dobrze jest ręcznie wybrać każdą liczbę dla małego zestawu liczb, jak w twoim przykładzie, ale w przypadku większych zbiorów możesz przeprowadzić wyszukiwanie wyrażenia regularnego, które wykona pracę za Ciebie.

Ctrl+ Fotworzy pasek wyszukiwania.

Wyszukiwanie Regex włącza się, klikając przycisk „. *” Po lewej stronie.

Wpisz „\ d +”, aby wyszukać wszystkie wystąpienia jednej lub więcej cyfr. Kliknięcie przycisku „Znajdź wszystko” spowoduje wybranie każdego z tych numerów osobno.

Następnie możesz użyć Ctrl+ Shift+, Laby przekonwertować zaznaczenie na wiele kursorów. Stąd możesz robić, co chcesz.

Nolan Luckett
źródło