Sublime Text: Seçim içinde Bul ve Değiştir


21

Sublime Text 2, kullanıcının geçerli seçimle sınırlı bul ve değiştir işlemini gerçekleştirmesine izin veriyor mu?

Olması gerektiğini düşünmeliyim, ancak nasıl yapılacağını bulmak için birden fazla aramadan sonra yapamadım.

Yanıtlar:


23

ST2'de bunun için bir düğme var.

Ekran görüntüsü


4
Doğru, bir düğme var. Ama nasıl kullanıyorsun? Özellikle, “seçimi” nasıl ayarladınız? Deneyimlerime göre, ST2 arama çubuğunu açtığınız andaki seçimi kullanır. Öyleyse çubuk zaten açıksa, önce onu kapatmak zorundasınız (Esc), sonra incelemek istediğiniz metin aralığını seçin ve ardından tekrar açın (Ctrl + F veya Ctrl + H). Profesyonel ipucu: Seçim birden fazla satıra yayılıyorsa, geçerli arama ifadenizi değiştirmez.
Robert

3
Bul ve değiştir konsolunu açmak için mac üzerinde Cmd + Opt + F tuşlarına basın.
Micah,

2
Neden özellikle "Seçimde" için klavye kısayolu olmadığına, özellikle de tüm diğer seçeneklerde olduğundan tamamen şaşkınım! Bunu yapabilmek için elimi fareye götürmem gerekiyor mu? Tüm ST karşı duruyor gibi görünüyor ... (ST3 kullanıyorum)
TheStoryCoder

5
@TheStoryCoder evet, klavye kısayolu olmaması aptalca, ancak komutun adı belgelenmemiş, ancak şanslı ve doğru tahmin edildim dışında bir tanesinin kolay olduğu ortaya çıktı. İşte kullanıcı tuş bağlantılarınıza eklenecek kod: {"keys": ["alt + y"], "command": "toggle_in_selection", "context": [{"key": "setting.is_widget", "operator" : "eşit", "işlenen": true}]},
Owen_R

Benim gibi kafası karışan diğer insanlar için bir not: birkaç metin satırı seçtiğinizde, Ctrl + H tuşlarına basın (Bul ve Değiştir'i açar) ve "Neyi bul" alanına yazmaya başladığınızda, seçilen satırlar seçili görünmeyi durdurur, ancak onlar hala . Bu sorun olmasaydı, bir çözüm aramazdım ve bu yazıyı bulmazdım. BTW Bu sorunun daha önce orada olmadığını hatırlıyor gibiyim, bu yüzden belki bir yeniden başlatmadan sonra veya kaybolacak bir şeyden sonra.
Stefan Monov

7

Seçiminiz bir satır sonu içeriyorsa, "seçim içindeki" düğmesi otomatik olarak etkinleştirilir - ST2'de

Akıllı aktivasyon maalesef ST3'te kaybedildi. Bunu buradan takip edebilirsiniz http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679


10
Artık bu işlevselliği geri getirmek mümkündür: "auto_find_in_selection": true
mdrozdziel

Satır sonu içermediğinde otomatik olarak nasıl çağırırım? Örneğin, birçok "satırı" kapsayan çok uzun bir hattınız varsa? Bu çizgiyi seçtiğimde ve arama başlattığımda, "seçimde" seçeneğini devre dışı bırakır.
user2544542

6

İşte, kullanıcı anahtar kelimelerinize eklemeniz gerekenler:

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

Evet, varsayılan bir tuş takımı seti olmaması aptalca.

Ayrıca " toggle_in_selection" komut adı belgelenmedi, ancak tahmin ettim ve şanslı oldum.


EKLE EDİT:

/*
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}
        ]
    },

Klavye bağlama zaten varsayılan olarak var.
elsadek

Huh. Neden eksik olduğumu merak ettim, sonra ... varsayılan bağlamalarımda sahip olduğum tek "toggle_" şeyler: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 özgü kısayolları ile) yerine some namesahip new name:

  1. imleci metnin üzerine getirin
  2. Bul some name:, cmdfyazın some name(bazen basmanız gerekir return)
  3. Yerine belirtin: shiftcmdr, tabtabtarla, türü yerini almak için new name, yapamaz basınreturn
  4. altcmdebitene kadar tekrarlayın .

Bunu yapmanın daha hızlı bir yolunu bilen var mı? Oldukça saçma ve gereksiz yere hatırlaması zor
AJP

see @ oliver-g 'nin cevabı - ST2 bunu varsayılan olarak yapar ve eğer devre dışı bıraktıysanız, sadece ctrl+H"Bulunacak:" seçeneğine tıklamanız ve bırakmanız yeterlidir , "Seçimde" başlıklı bir düğme vardır
Peter

2

Sadece aramak istediğiniz metni seçin, ardından bul menüsünden Değiştir'i tıklayın. Seçiminizde otomatik olarak yapacak.


0

seçim içinde değiştirme ile çalışmak için anahtar İLK metin seçip sonra bul> değiştir sonra ne bulacağınız ve değiştireceğiniz için metni doldurun, sonra "seçimde" yazılan düğmeyi kontrol edip " Tümünü Değiştir" i tıklayın. ..


0

En iyi ve en yararlı çözümün (benim görüşüme göre) bir yorumda saklı kaldığı ve neredeyse özlediğimden başka bir cevap ekliyorum: (teşekkürler mdrozdziel).

Aramak istediğiniz metni seçin, bul ve değiştir araç çubuğunu getirmek için Shift+ Htuşuna basın. Bir yoktur düğme etkinleştirmek seçimi içinde arayacaktır Soldaki düğme bankaya sağında.

Bu ST3 varsayılan olarak kapalıdır ancak bunu ekleyerek birden fazla satır seçtiğinizde üzerinde varsayılan ayarlayabilirsiniz "auto_find_in_selection": truetercihiniz dosyasına (girerek bulundu Alt, N, S, Enter).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.