Skenario: Saya memiliki beberapa (lebih dari 2) jendela yang terbuka. Saya aktif bekerja dengan mereka berdua. Bagaimana cara terbaik saya melompat dari satu jendela ke jendela lain, dan kembali, dengan satu perintah?
Saya menggunakan ace-window; itu bagus tapi saya tidak ingin menekan nomor jendela setiap waktu. Saya tahu tentang next-window
/ prev-window
, tetapi ini adalah dua perintah yang berbeda.
Apa yang saya cari adalah sesuatu yang mengingat apa windows sebelumnya ketika saya memilih jendela lain, dan kembali ke sana. Dipanggil berulang kali, itu akan beralih di antara dua jendela terakhir, Alt- Tab-style.
Di mana saya melihat?
fn
plus salah satu tombol panah untuk menuju ke segala arah, termasuk masuk dan keluar dari minibuffer (jika aktif) - lihat perpustakaan bawaanwindmove
.Jawaban:
Salah satu cara untuk menulis perintah Anda sendiri adalah dengan menggunakan
get-mru-window
fungsi bawaan.Sebagai contoh:
Ini mencari jendela yang paling baru digunakan dalam bingkai saat ini yang bukan jendela yang saat ini dipilih.
Berikut adalah variasi yang berfungsi lintas bingkai yang terlihat:
Seperti disebutkan dalam komentar, inilah variasi yang berfungsi ketika hanya ada satu jendela (beralih ke buffer terbaru):
sumber
get-mru-window
.mode-line-other-buffer
. Dengan begitu saya punya satu tombol yang bolak-balik di antara dua buffer dalam konfigurasi jendela apa pun.Jika Anda sudah menggunakan
ace-window
, maka Anda dapat menggunakan perintahaw-flip-window
untuk bolak-balik di antara dua jendela. Secara default ini terikatn
pada jendela aceaw-dispatch-alist
.Itu berarti Anda dapat memanggil jendela ace dan menekan
n
bukannya nomor jendela untuk membalik kembali ke jendela sebelumnya. Anda juga dapat mengikataw-flip-window
beberapa kunci lainnya.Perhatikan bahwa ini hanya akan membalik kembali ke jendela yang sebelumnya dipilih oleh jendela-ace. Jika Anda sering berganti windows dengan perintah lain, Anda mungkin menginginkan solusi yang lebih umum.
sumber
Ini adalah perintah sederhana, teruji ringan, yang akan mengalihkan Anda ke jendela yang terakhir dikunjungi:
sumber
next-window
atauother-window
, perubahan tidak akan diambil dalamrecent-window
variabel. Tidak ada kaitan yang jelas untuk digunakan, jadi memperbaiki bagian ini mungkin melibatkan pendefinisian saran untuk sejumlah fungsi lainnya.buffer-list-update-hook
, yang dipanggil saat jendela aktif berubah (setelahselect-window
). Pengait itu disebut dalam kasus lain tetapi dapat digunakan untuk melacak jendela terakhir.