Saat ini, saya memiliki bingkai Emacs saya terbelah secara vertikal, dan saya melihat dua buffer berbeda di dua jendela.
Saya ingin pergi ke sebuah kata dalam satu buffer, menekan beberapa tombol, dan memiliki ocurrences kata itu (jika ada) disorot di buffer lain , gulir ke sana jika perlu.
Apakah ada cara untuk melakukan itu?
Pada tangkapan layar di atas, dengan kursor saya tepat sebelum "bar" di buffer kiri, saya ingin dapat <melakukan sesuatu> dan dengan cepat melihat di mana "bar" berada di buffer kanan.
Catatan: Ini terkait dengan Bagaimana cara menemukan teks di beberapa buffer terbuka? dalam arti bahwa, jika saya bisa melakukan pencarian di buffer "lain", itu akan melakukan apa yang saya inginkan. Tapi tidak ada jawaban yang tepat seperti yang saya inginkan:
- The
occur
solusi berbasis membuka jendela baru yang menunjukkan pencocokan garis, sementara aku ingin tetap saya dua jendela masih ditampilkan - aku benar-benar akan melihat di buffer lainnya untuk konteks di sekitar pertandingan, sehingga hanya menampilkan garis pencocokan sangat tidak membantu. multi-isearch-buffers
mengharuskan saya menentukan daftar buffer setiap kali saya ingin melakukan pencarian ini (sering kali), alih-alih secara otomatis mengambilnya sebagai dua buffer yang ditampilkan. Lebih penting lagi, ketika saya mulai dari satu jendela dan melakukan pencarian, ketika menemukan kecocokan di buffer lain ia menampilkan buffer itu di jendela ini, sehingga kedua jendela menampilkan buffer yang sama (lainnya). Kemudian Cg mengembalikan semuanya, dan saya tidak bisa lagi melihat kata yang disorot di buffer lain.icicle-search
memiliki begitu banyak fitur yang salah satunya mungkin dapat melakukan ini, tetapi saya tidak dapat menemukan apa pun setelah melihat sekilas pada dokumentasi.
C-s C-w C-x o C-s C-s
tidak terdengar buruk bagi saya. (Anda tidak perluC-s
hak setelahC-w
.)C-s C-w C-x o C-s C-s C-x o
memang tampak baik-baik saja.Jawaban:
Anda dapat menggunakan paket yang disebut
highlight-global
yang tersedia dari github tetapi tidak pada Melpa (saat menulis ini).The
highlight-frame-toggle
fungsi yang didefinisikan di pacakge ini akan menyoroti kata pada titik atau wilayah yang dipilih mana-mana di frame (di semua buffer). Ini, meskipun, tidak akan melakukan autoscroll ke kata yang disorot yang Anda butuhkan. Ini memilih warna penyorotan yang berbeda saat Anda menyorot lebih banyak kata tanpa membersihkan cahaya malam sebelumnya.Berikut ini screenshot dari tampilannya:
Klik untuk melihat tangkapan layar yang lebih baik
sumber
helm memiliki antarmuka yang dapat mencapai tujuan ini, saya telah merekam Gifcast untuk menunjukkan paket helm-swoop :
Setelah memulai
helm-swoop
pencarian, saya dapat mempersempit kandidat menjadi lebih sedikit dengan memasukkan token yang dipisahkan ruang lebih lanjut atau menekanC-p
danC-n
untuk beralih ke yang berikutnya dan gulir di buffer target pada waktu yang sama.sumber
helm-swoop
.C-s C-w C-x o C-s C-s C-x o
(itulah yang saya gunakan sekarang, dan tampaknya baik-baik saja sebenarnya).Bagaimana kalau menggunakan
highlight-regexp
untuk menyorot simbol saat ini (atau kata, wilayah, dll) di jendela lain?Berikut beberapa fungsi yang bisa berfungsi. Yang pertama akan menemukan simbol di titik, lalu melompat ke jendela lain dan sorot. Yang kedua melompat ke jendela lain dan menghapus highlight.
Dalam kedua kasus ini melompat kembali sehingga jendela saat ini tetap aktif di akhir. Tidak yakin apakah itu yang Anda inginkan, jika tidak tinggalkan
other-window
panggilan terakhir .Fungsi-fungsi ini juga dapat ditingkatkan dengan memeriksa dan mencocokkan wilayah aktif; menangani kasus di mana tidak ada jendela lain yang terlihat; dll.
sumber
highlight-frame-toggle
perintah yang disebutkan dalam jawaban lain tampaknya menjadi versi yang lebih dipoles ini, jadi saya kira Anda tidak perlu roll sendiri.