2013-01-10 11 views
12

Zastanawiam się, czy istnieje już sposób na rozszerzenie zaznaczenia do wszystkich obszarów sugerowanych przez pola Wysublimowany tekst 2, więc nie trzeba naciskać klawisza Ctrl - D i czasami Ctrl - K - D jak pokazano na How do I skip a match when using Ctrl+D for multiple selections in Sublime Text 2?Rozwiń wiele zaznaczeń do wszystkich sugestii (ramek, podpowiedzi) w Sublime Text 2

90% czasu pola na ekranie są dokładnie to, co chcę wielokrotne wybieranie i byłoby bardzo poręczny jeśli istniała jedna kluczowa opcja, aby to zrobić.

na przykład, jeśli masz

foo(2,42,23,2,2) 

i kliknięciu na pierwszym 2, skrzynki zostaną oprowadzeni tylko trzy pojedyncze 2s. Te chciałbym wybrać za pomocą pojedynczego polecenia/makra.

Jeśli pójdziesz z Ctrl - D trzeba pominąć 2s w 42 i 23 z Ctrl - K - D.

Jeśli nic takiego nie istnieje, wszelkie wskazówki dotyczące pisania wtyczek do takich funkcji będą mile widziane.

UPDATE: I dostaliśmy świetną propozycję używać Alt + F3, co jest niesamowite dla dokonywania zmian w całym pliku. Jednak byłoby również korzystne ograniczenie zakresu wielokrotnego wyboru do aktualnej widocznej strony lub znacznika lub nawiasów lub do czegoś innego.

Odpowiedz

8

zrobiłem dodaje, w takich przypadkach:

umieścić wpis w Key bindings - User:

{ "keys": ["alt+s"], "command": "toggle_in_selection", "context": 
    [ 
     { "key": "setting.is_widget", "operator": "equal", "operand": true } 
    ] 
}, 

Uwaga: możesz wybrać inną kombinację klawiszy.

Następnie zaznacz tekst, który chcesz przeszukać. Można użyć ctrl+L aby wybrać jedną linię, ctrl+shift+m wybrać treść nawiasach jesteście, ani w żaden inny sposób podany w Selection menu, lub zupełnie inny sposób.


TIP: Sprawdź nowy plik, wybierz nazwę pliku i zapisać go User.sublime-commands że Packages/User folderu, w którym przechowywane są nowe wtyczki lub użytkownik-key-wiązania.I umieścić ten fragment do tego pliku:

[ 
    // Selection Menu 
    { "caption": "Selection: Expand to Paragraph", "command": "expand_selection_to_paragraph" }, 
    { "caption": "Selection: Expand to Scope", "command": "expand_selection", "args": {"to": "scope"} }, 
    { "caption": "Selection: Expand to Brackets", "command": "expand_selection", "args": {"to": "brackets"} }, 
    { "caption": "Selection: Expand to Indentation", "command": "expand_selection", "args": {"to": "indentation"} }, 
    { "caption": "Selection: Expand to Tag", "command": "expand_selection", "args":  {"to": "tag"} } 
] 

Będzie dodać te opcje poszerzyć-selekcyjne, które są w Selection menu na palecie polecenia, tak więc nie trzeba pamiętać skróty. Możesz zmienić "napisy" na to, co najbardziej ci odpowiada.


Po zaznaczeniu tekstu, który chcesz przeszukać, naciśnij ctrl+f lub ctrl+i (wyszukiwanie lub wyszukiwanie przyrostowe), użyj skrótu z góry, aby przycisk przełączać między opcjami „in-selekcji” (szósty przycisk od lewej bok na pasku wyszukiwania, wygląda jak strzałka skierowana w prawo iw dół na pionowym pasku). (opcjonalnie: naciśnij alt + w, aby przełączyć przycisk "całe słowa" (wygląda jak cytaty), w przypadku, gdy chcesz dopasować bezpłatny 2 w foo(2,42,23,2,2) i nie pasuje 2 w 42). Po dokonaniu zmiany wyboru, alt+enter wybiera wszystkie dopasowania -> gotowe.

Nie musisz pisać tego, co chcesz wyszukać, możesz go najpierw wybrać i nacisnąć ctrl+e (polecenie "slurp_find_string"), aby umieścić go w pasku wyszukiwania, a później otworzyć pasek wyszukiwania i będzie tam .

Więc cały proces idzie tak:

  1. (opcjonalnie) ctrl+e od wybranego tekstu, który chcesz sprawdzić, więc nie trzeba pisać to później
  2. użycie jakikolwiek sposób, aby zaznaczyć wszystkie tekst, który chcesz wyszukać w
  3. ctrl+f lub ctrl+i aby otworzyć pasek wyszukiwania, jeśli nie robić 1. napisz czego szukać w
  4. w przełącznik wyboru-jeśli nie przełączanych, przełączanie całe słowy, jeśli chcesz
  5. znaleźć wszystkie z alt+enter i gotowe

Brzmi trochę skomplikowane w pierwszym, ale gdy zrobić to 10 razy, cały proces (oprócz kroku 2.) nie zajmie Ci więcej niż druga. Dodatkowo, jeśli zmienisz niektóre zaawansowane ustawienia, możesz włączyć automatyczne przełączanie pewnych elementów, na przykład auto ctrl + e po wybraniu lub automatyczny przełącznik-wybór, gdy otworzysz pasek wyszukiwania z otwartym wyborem.

UWAGA: Skróty mogą się różnić, jeśli używasz Mac lub Windows.

Nadzieja pomaga, czy jest coś niejasne, poproś więcej ...

EDIT: grałem z kluczowych ustawień na chwilę, a zakończył się z tym:

// without whole-words 
{ "keys": ["ctrl+space", "f"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": false, "whole_word": false}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true } 
    ] 
}, 
{ "keys": ["ctrl+space", "f"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": true, "whole_word": false}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } 
    ] 
}, 

//with whole-words 
{ "keys": ["ctrl+space", "w"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": false, "whole_word": true}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true } 
    ] 
}, 
{ "keys": ["ctrl+space", "w"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": true, "whole_word": true}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } 
    ] 
}, 

Jeśli umieścić go gdzieś w Key bindings - User, daje dwa skróty, "ctrl+space", "f" (ctrl+space najpierw, a następnie f, podobnie jak z "ctrl+k", "ctrl+d") i "ctrl+space", "w". Pierwszy z nich daje ci dodatkowy panel wyszukiwania z wyłączonymi słowami pełnymi, drugi z włączonymi pełnymi słowami. Oba mają wstępnie wybrany wybór w zależności od tego, czy wybrano coś, gdy naciśniesz skrót. Jeśli spojrzysz na to, powinieneś wpaść na pomysł, jak dostosować go do swoich własnych pragnień.

+0

Dzięki, dałeś mi dobry pomysł na to, czego szukać podczas wykonywania własnych połączeń klawiszy. – Sint

12

Można kliknąć przed lub po każdym '2', a następnie zaznacz wszystkie 2'S z Atl + F3 na Windows i Linux lub Ctrl + + G na OS X.

+0

To jest niesamowite! Jedną wadą jest to, że Alt + F3 wybiera WSZYSTKIE konkretne dopasowania w dokumencie, więc jest bardzo niebezpieczne w użyciu.Jakikolwiek sposób ograniczenia zakresu, aby był bardziej lokalny (najlepiej widoczna strona, nawiasy, tagi itp.)? – Sint

+0

@Sint Jedyny sposób, w jaki się znam - to użycie funkcji Znajdź wszystko z włączonym "Całe słowo" i "W zaznaczeniu", ale myślę, że jest to możliwe za pomocą jednego skrótu. (Bez pisania jakiejś wtyczki oczywiście) – Stals

+0

jeszcze raz dziękuję, twoja odpowiedź już zaoszczędziła mi czas! – Sint