Jeśli wybiorę zmienną (nie tylko ciąg znaków) w moim kodzie, wszystkie inne wystąpienia tej zmiennej zostaną obrysowane (biały kontur) wokół nich:
Czy istnieje skrót klawiaturowy, który pozwoli mi wybrać wszystkie te wystąpienia zmiennej i edytować je wszystkie naraz?
Rzeczy, które próbowałem:
⌘D, ⌘Ki ⌘Upozwala mi wybierać je jeden po drugim, ale muszę ręcznie wykluczyć niezmienne ciągi znaków:
A użycie Ctrl⌘Gpo prostu wybiera wszystkie pasujące ciągi:
Najwyraźniej Sublime potrafi rozróżniać dopasowania zmiennych i ciągów. Czy nie ma sposobu, aby wybrać tylko dopasowania zmiennych?
źródło
variable (not just any string)
. To po prostu wybiera wszystkie wystąpienia ciągu.Wiem, że pytanie dotyczy komputerów Mac, ale znalazłem się tutaj, szukając odpowiedzi na Ubuntu, więc myślę, że moja odpowiedź może być dla kogoś przydatna.
Łatwy sposób to zrobić: AltF3.
źródło
foo
środku, nie wybieraj już pierwszegofoo
. Zamiast tego po prostu umieść kursor w słowie,foo
a następnieAlt-F3
. Voilafoo
nie tylko wyróżnionych.Mimo dużego wysiłku nie znalazłem wbudowanego ani wspomaganego przez wtyczkę sposobu robienia tego, co próbujesz zrobić. Całkowicie się zgadzam, że powinno to być możliwe, ponieważ program może odróżniać się
foo
odbuffoon
pierwszego zaznaczenia, ale wydaje się, że nikt nie zna sposobu na zrobienie tego.Oto jednak kilka przydatnych kombinacji klawiszy do wybierania słów w Sublime Text 2:
Ctrl⌘G- wybiera wszystkie wystąpienia bieżącego słowa ( AltF3w systemie Windows / Linux)
⌘D- wybiera następne wystąpienie bieżącego słowa ( CtrlD)
⌘E, ⌘H- używa bieżącego wyboru jako pola „Znajdź” w polu Znajdź i zamień ( CtrlE, CtrlH)
źródło
⌘+D
działa na wszystkie wystąpienia ciągu. Na przykład, jeśli zaznaczęfoo
, wysublimowane cudownie gładzi wszystkie zmiennefoo
s, ale nie ciąg znakówfoo
w mojejeject_buffoon
funkcji. A jednak używając powyższych kombinacji klawiszy, jestem zmuszony ręcznie⌘+K
wyrównać ciągi znaków, aby uniknąćeject_bufbarn
funkcji. Musi być lepszy sposób!foo_
(foo i spacja po nim) lub_foo_
(spacje zarówno przed, jak i po), a następnie użycie⌘-D
lubCtrl-⌘-D
.foo
często pojawia się jako(foo)
,_foo,
,(foo,
, i_foo}
tak_foo_
jest bardzo niezadowalający.To zadziałało dla mnie. Umieść kursor na początku słowa, które chcesz zastąpić
CtrlK, CtrlD, CtrlD...
To powinno wybrać tyle wystąpień słowa, ile chcesz, a następnie możesz po prostu wpisać zamiennik.
źródło
Magia polega na tym, że musisz zacząć od pustego zaznaczenia, więc umieść kursor przed słowem / znakiem, który chcesz zaznaczyć, i naciśnij Ctrl+ D.
źródło
Dla mnie jest to największy błąd w Sublime. Alt+ F3jest trudny do osiągnięcia / zapamiętania, a Ctrl+ Shift+ Gnie ma sensu, biorąc pod uwagę, że Ctrl+ Dto „dodaj następną instancję do zaznaczenia”.
Dodaj to do przypisania klawiszy użytkownika (Preferencje> Powiązania klawiszy):
Teraz możesz wyróżnić coś, naciśnij Ctrl+ Shift+ D, a to doda każdą inną instancję w pliku do zaznaczenia.
źródło
To wspomniane przez @watsonic że w Sublime Text 3 na Mac OS, wychodząc z pustym wyboru , po prostu ⌃⌘G( AltF3w systemie Windows) załatwia sprawę, zamiast ⌘D+ ⌃⌘Gw Sublime Text 2.
źródło
Jak powiedział użytkownik1767754, kluczem jest tutaj, aby początkowo nie dokonywać żadnych wyborów.
Wystarczy umieścić kursor wewnątrz nazwy zmiennej, nie klikaj dwukrotnie, aby ją wybrać. W przypadku zmiennych jednoznakowych umieść kursor na początku lub na końcu zmiennej, aby początkowo nie dokonywać wyboru.
Teraz naciskaj Cmd+, Daby wybrać następną zmienną lub Ctrl+ Cmd+, Gaby zaznaczyć wszystkie zmienne jednocześnie. Magicznie wybierze tylko zmienne.
źródło
Na wypadek, gdyby ktoś natknął się na to pytanie, szukając sposobu na zamianę ciągu na wiele plików, jest to Command+ Shift+F
źródło