Wzniosły tekst: Znajdź i zamień w obrębie zaznaczenia


21

Czy Sublime Text 2 pozwala użytkownikowi na wyszukiwanie i zamianę, ograniczone do bieżącego zaznaczenia?

Powinienem myśleć, że musi, ale po wielu poszukiwaniach nie byłem w stanie znaleźć sposobu, aby to zrobić.

Odpowiedzi:


23

Jest na to przycisk w ST2.

Zrzut ekranu


4
To prawda, że ​​jest przycisk. Ale jak tego używasz? W szczególności, jak ustawić „wybór”? Z mojego doświadczenia wynika, że ​​ST2 używa zaznaczenia od momentu otwarcia paska wyszukiwania. Więc jeśli pasek jest już otwarty, najpierw musisz go zamknąć (Esc), a następnie wybierz zakres tekstu, który chcesz sprawdzić, a następnie otwórz go ponownie (Ctrl + F lub Ctrl + H). Wskazówka: jeśli zaznaczenie obejmuje wiele wierszy, nie zastąpi bieżącego wyrażenia wyszukiwania.
Robert

3
Cmd + Opt + F na Macu, aby otworzyć konsolę znajdź i zamień.
Micheasza

2
Jestem całkowicie zdziwiony, dlaczego nie ma skrótu klawiaturowego dla tego „W selekcji”, zwłaszcza, że ​​istnieją wszystkie inne opcje! Czy naprawdę muszę przesunąć rękę do myszy, aby to umożliwić? Wydaje się być sprzeczny ze wszystkimi
skrótami

5
@TheStoryCoder tak, to głupie, że to nie jest skrót klawiaturowy, ale okazało się, że łatwo go utworzyć, z wyjątkiem tego, że nazwa polecenia nie została udokumentowana, ale miałem szczęście i zgadłem. Oto kod do dodania do skrótów użytkownika: {„keys”: [„alt + y”], „command”: „toggle_in_selection”, „kontekst”: [{„key”: „setting.is_widget”, „operator” : „równy”, „operand”: prawda}]},
Owen_R

Uwaga dla innych osób, które były tak zdezorientowane jak ja: kiedy wybierzesz kilka wierszy tekstu, a następnie naciśnij Ctrl + H (który otwiera Find & Replace) i zacznij pisać w polu „Find what”, wybrane linie przestają wyglądać na wybrane, ale nadal są . Gdyby nie ten problem, nie szukałbym nawet rozwiązania i nie znalazłbym tego postu. BTW Wydaje mi się, że pamiętam, że problem nie był wcześniej, więc może po ponownym uruchomieniu komputera lub coś innego zniknie.
Stefan Monov

7

Jeśli twój wybór obejmuje podział linii, przycisk „w ramach wyboru” zostanie aktywowany automatycznie - na ST2

Niestety inteligentna aktywacja została utracona na ST3. Możesz to sprawdzić tutaj http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679


10
Jest to teraz możliwe, aby przywrócić tę funkcję za pomocą: „auto_find_in_selection”: true
mdrozdziel

Jak wywołać go automatycznie, gdy nie zawiera podziału linii? Na przykład, gdy masz naprawdę długą linię obejmującą wiele „wierszy”? Za każdym razem, gdy wybieram tę linię i wywołuję wyszukiwanie, wyłącza opcję „w wyborze”.
user2544542

6

Oto, co musisz dodać do skrótów klawiszowych użytkownika:

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

Tak, to głupie, że to nie jest domyślny zestaw klawiszy.

Również nazwa polecenia „ toggle_in_selection” nie została udokumentowana, ale zgadłem i miałem szczęście.


EDYTUJ, ABY DODAĆ:

/*
btw, the way i want to use find by default
(actually, i use replace by default, but same dif),
is for "in_selection" to be true by default,
*unless* the selection is empty.
(
the default is that "in_selection" is *false* by default,
unless the selection contains a newline.
)
i finally got around to digging up how to get that,
which is apparently by changing the *keybindings* you use to pop open the find(/replace) panel?
*/
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": true}},
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": false},
    "context":
        [
            { "key": "selection_empty", "operator": "equal", "operand": true}
        ]
    },

Klawisze już istnieją domyślnie.
elsadek

Huh Zastanawiam się, dlaczego mi tego brakowało ... jedyne „przełączające” rzeczy, które miałem w domyślnych powiązaniach, to:toggle_side_bar toggle_full_screen toggle_distraction_free toggle_overwrite toggle_record_macro toggle_setting toggle_comment toggle_case_sensitive toggle_regex toggle_whole_word toggle_preserve_case
Owen_R

3

(Mac OS X skrótów szczególnych), aby wymienić some namez new name:

  1. umieść kursor nad tekstem
  2. Znajdź some name: cmdfwpisz some name(czasami trzeba nacisnąć return)
  3. Określ wymienić: shiftcmdr, tabtababy dostać się do zastąpienia pola, typ new name, nie naciśnijreturn
  4. powtarzaj, altcmdeaż skończysz.

Czy ktoś wie, jak to zrobić szybciej ?! Jest to dość absurdalne i niepotrzebnie trudne do zapamiętania
AJP

zobacz odpowiedź @ oliver-g - ST2 robi to domyślnie, a jeśli ją wyłączyłeś, po prostu kliknij ctrl+Hi w lewo, aby znaleźć „Znajdź Co:” jest przycisk zatytułowany „W wyborze”
Peter

2

Po prostu wybierz tekst, który chcesz wyszukać, a następnie kliknij Zamień w menu wyszukiwania. Automatycznie zrobi to w ramach twojego wyboru.


0

kluczem do pracy z zamienianiem w ramach zaznaczenia jest PIERWSZE zaznaczenie tekstu, a następnie przejście do znajdowania> zastąpienie, a następnie wpisanie tekstu tego, co chcesz znaleźć i zamiana, a następnie zaznaczenie przycisku z napisem „w zaznaczeniu”, a następnie kliknij przycisk „Zamień wszystko”. ..


0

Dodaję kolejną odpowiedź, ponieważ najlepsze i najbardziej pomocne rozwiązanie (moim zdaniem) zostało ukryte w komentarzu i prawie go przegapiłem (dzięki @mdrozdziel).

Wybierz tekst, który chcesz wyszukać, naciśnij Shift+, Haby wyświetlić pasek wyszukiwania i zamień. Jest to przycisk po prawej stronie brzegu przycisków po lewej stronie, która opcja Wyszukaj w ciągu wyboru.

To jest domyślnie wyłączona w ST3 ale można ustawić go na domyślny po wybraniu więcej niż jeden wiersz, dodając "auto_find_in_selection": truedo pliku preferencji (znaleziono wprowadzając Alt, N, S, Enter).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.