Teks Luhur: Temukan dan ganti dalam pilihan


21

Apakah Sublime Text 2 memungkinkan pengguna untuk melakukan find-and-replace, terbatas pada pilihan saat ini?

Saya harus berpikir itu harus, hanya saya tidak dapat setelah beberapa pencarian untuk menemukan cara melakukannya.

Jawaban:


23

Ada tombol untuk itu di ST2.

Tangkapan layar


4
Benar, ada tombol. Tetapi bagaimana Anda menggunakannya? Secara khusus, bagaimana Anda mengatur "seleksi"? Dari pengalaman saya, ST2 menggunakan pilihan dari saat Anda membuka bilah pencarian. Jadi jika bilah terbuka, Anda harus menutupnya terlebih dahulu (Esc), lalu pilih rentang teks yang ingin Anda periksa dan kemudian buka lagi (Ctrl + F atau Ctrl + H). Kiat pro: Jika pilihan mencakup beberapa baris, itu tidak akan menggantikan ekspresi pencarian Anda saat ini.
Robert

3
Cmd + Opt + F pada mac untuk membuka find & replace console.
Mikha

2
Saya benar-benar bingung mengapa tidak ada pintasan keyboard untuk "Dalam pilihan", terutama karena ada untuk semua opsi lain! Apakah saya benar-benar harus memindahkan tangan saya ke mouse untuk mengaktifkannya? Tampaknya bertentangan dengan semua singkatan ST untuk ... (Saya menggunakan ST3)
TheStoryCoder

5
@TheStoryCoder ya itu bodoh bahwa itu bukan pintasan keyboard, tapi ternyata mudah membuatnya, kecuali nama perintah tidak didokumentasikan tetapi saya beruntung dan menebak dengan benar. Berikut kode yang akan ditambahkan ke pengikat kunci pengguna Anda: {"keys": ["alt + y"], "command": "toggle_in_selection", "context": [{"key": "setting.is_widget", "operator" : "equal", "operand": true}]},
Owen_R

Catatan untuk orang lain yang bingung seperti saya: ketika Anda memilih beberapa baris teks, lalu tekan Ctrl + H (yang membuka Temukan & Ganti) dan mulai mengetik di bidang "Temukan apa", baris yang dipilih berhenti mencari yang dipilih, tetapi mereka masih . Jika bukan karena masalah itu, saya bahkan tidak akan mencari solusi dan menemukan posting ini. BTW Sepertinya saya ingat masalah itu tidak ada di sana sebelumnya, jadi mungkin setelah reboot atau sesuatu itu akan hilang.
Stefan Monov

7

Jika pilihan Anda termasuk jeda baris, tombol "dalam pilihan" akan diaktifkan secara otomatis - pada ST2

Aktivasi cerdas telah hilang pada ST3, sayangnya. Anda dapat menindaklanjutinya di sini http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679


10
Sekarang dimungkinkan untuk mengembalikan fungsi ini dengan menggunakan: "auto_find_in_selection": true
mdrozdziel

Bagaimana cara menjalankannya secara otomatis ketika tidak termasuk jeda baris? Sebagai contoh ketika Anda memiliki garis yang sangat panjang yang mencakup banyak "baris"? Setiap kali saya memiliki baris yang dipilih dan memohon pencarian, ini menonaktifkan opsi "in selection".
user2544542

6

Inilah yang perlu Anda tambahkan ke keybindings pengguna Anda:

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

Ya, bodoh bahwa itu bukan set kunci standar yang mengikat.

Juga nama perintah " toggle_in_selection" tidak didokumentasikan, tapi saya menebak dan beruntung.


Sunting untuk menambahkan:

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

Pengikat tombol sudah ada secara default.
elsadek

Hah. Bertanya-tanya mengapa saya melewatkannya, lalu ... satu-satunya "toggle_" hal yang saya miliki di binding default saya adalah: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

(dengan pintasan spesifik Mac OS X) untuk menggantikan some namedengan new name:

  1. letakkan kursor di atas teks
  2. Temukan some name:, cmdfketik some name(terkadang perlu ditekan return)
  3. Tentukan ganti: shiftcmdr, tabtabuntuk mendapatkan untuk menggantikan lapangan, jenis new name, tidak pressreturn
  4. ulangi altcmdesampai selesai.

Adakah yang tahu cara tercepat untuk melakukan ini ?! Ini cukup konyol dan sulit untuk diingat
AJP

lihat jawaban @ oliver-g - ST2 melakukannya secara default, dan jika Anda telah menonaktifkannya, cukup klik ctrl+Hdan kiri untuk "Temukan Apa:" ada tombol yang bertuliskan "Seleksi"
Peter

2

Cukup pilih teks yang ingin Anda cari, lalu klik Ganti dari menu temukan. Secara otomatis akan melakukannya dalam pilihan Anda.


0

kunci untuk bekerja dengan mengganti dalam pilihan adalah untuk PERTAMA memilih teks kemudian pergi untuk menemukan> ganti kemudian isi teks untuk apa yang akan Anda temukan & ganti, kemudian periksa tombol tooltipped "dalam pemilihan" lalu klik "Ganti Semua". ..


0

Saya menambahkan jawaban lain sebagai solusi terbaik dan paling membantu (menurut saya) disembunyikan dalam komentar dan saya hampir melewatkannya (terima kasih @mdrozdziel).

Pilih teks yang ingin Anda cari di dalamnya, tekan Shift+ Huntuk memunculkan find dan ganti toolbar. Ada tombol di sebelah kanan tepi tombol di sebelah kiri yang akan mengaktifkan pencarian dalam pemilihan.

Ini adalah off secara default di ST3 tetapi Anda dapat mengaturnya untuk default pada saat Anda memilih lebih dari satu baris dengan menambahkan "auto_find_in_selection": trueke file preferensi Anda (ditemukan dengan memasukkan Alt, N, S, Enter).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.