Area gema sebagian besar kosong, yang membuat saya berpikir bahwa saya dapat menggunakannya untuk menampilkan beberapa informasi. Misalnya, org-clock
menampilkan tugas saat ini, waktu yang tersisa dan total waktu yang berlalu pada modeline. Informasi ini tidak benar-benar dapat dibaca di sana (modeline bisa agak pendek), diulang pada setiap modeline (karena berlaku untuk sesi seluruh emacs), dan tidak yang berguna bahwa aku bersedia mengorbankan beberapa ruang modeline berharga untuk itu . Di sisi lain, itu bisa muncul di area gema ketika tidak ada yang lain untuk ditampilkan di sini.
Apakah ada cara kanonik untuk mencapai ini? Saya telah memikirkan meretas fungsi sisipkan minibuffer-inactive-mode-hook
(tetapi tidak berfungsi dengan baik, misalnya pesan menghilang segera setelah area gema digunakan lagi), atau mengirim spam pesan yang tidak dicatat (tetapi ini akan berantakan dengan penggunaan lain dari area gema dan minibuffer).
Versi orang miskin dari ini akan menggunakan timer idle, tetapi area gema dapat kosong tanpa emacs menjadi idle (misalnya saat memasukkan beberapa teks).
sumber
Jawaban:
Sebuah komentar pada pertanyaan ini menyebutkan bahwa paket bernama symon memanfaatkan fitur tersebut.
Ini dicapai dengan mengirim spam pesan yang tidak dicatat ketika minibuffer tidak aktif, dan dengan menghentikan tampilan ulang setiap kali perintah dikeluarkan. Pelat untuk itu agak pendek, dan setelah beberapa menit penggunaan, saya tidak bisa melihat masalah dengan itu: pesan dan penggunaan minibuffer masih diprioritaskan daripada pesan.
Komponen kuncinya adalah:
message-log-max
set kenil
, sehingga string yang ditampilkan tidak masuk*Messages*
buffer)pre-command-hook
Satu-satunya masalah adalah bahwa tampilan dihentikan setiap kali perintah sedang dijalankan, yang termasuk saat mengetik.
Bagi yang berminat, saya telah mengekstrak kode yang relevan ke dalam paket boilerplate yang tersedia di github .
sumber
Jawabannya, IMO, adalah tidak . Area gema untuk pesan sesaat . Dan banyak hal secara eksplisit menghapus apa pun yang mungkin telah digaungkan di sana. Jadi menyadari apa yang Anda minta dengan cara apa pun yang masuk akal itu bermasalah, IMO.
Singkatnya, gunakan alternatif. Inilah beberapa:
Gunakan beberapa penyangga lain (mis. Bingkai kecil atau jendela yang Anda tetap buka untuk tujuan ini). Mudah dilakukan, Anda dapat memindahkannya, mengeditnya, menghapusnya, atau melakukan apa pun yang Anda suka dengannya.
Gunakan sebagian atau seluruh baris mode (yang sudah Anda pertimbangkan, tampaknya).
Gunakan baris tajuk.
Gunakan judul bingkai.
Jika itu saya, saya mungkin akan memilih # 1. (Tapi saya tidak benar-benar ingin / memerlukan tampilan info status penuh waktu. Saya lebih cenderung mendefinisikan perintah yang menunjukkan kepada saya info (bahkan riwayat / log) sesuai permintaan.)
Diperbarui setelah komentar Anda:
Anda sudah mengatakan, dalam pertanyaan Anda, " pesannya menghilang segera setelah area gema digunakan lagi ". Jadi itu terdengar seperti menggunakan ruang sesaat seperti area gema tidak akan sesuai dengan kebutuhan Anda. Balasan komentar Anda tampaknya bertentangan dengan ini.
Jika Anda benar-benar ingin menggunakan area gema, maka gunakan
minibuffer-inactive-mode-hook
, seperti yang Anda sebutkan, atau gunakan timer untuk memanggilmessage
atau untuk memasukkan pesan waktu di area gema dengan cara lain. Namun, Anda sudah mencatat masalah dengan itu. Masalah-masalah tersebut (menimpa, menghapus) mengikuti dari sifat singkat yang dimaksudkan ( dimaksudkan ) dari area gema .Singkatnya, Anda ingin menggunakan area yang ditujukan untuk pesan singkat, tetapi Anda tidak ingin pesan Anda menghilang segera setelah area itu digunakan lagi.
(BTW - wrt penyebutan Anda bahwa info mode-line diulang di setiap baris mode: Itu tidak perlu terjadi. Anda dapat membuat garis mode menjadi spesifik untuk buffer tertentu dll. IOW, Anda dapat memilih satu baris mode untuk selalu (atau secara berkala) tunjukkan jam Anda atau apa pun.)
sumber
org-clock
contoh dari pertanyaan: Saya ingin timer berdetak untuk mengingatkan saya tentang apa yang harus saya lakukan, dan bahwa saya seharusnya melakukan itu sekarang , seperti sesering mungkin.minibuffer-inactive-mode-hook
dan keluar dari minibuffer, pesannya akan ditampilkan. Kemudian jika beberapa perintah lain mencetak sesuatu ke area gema, pesan baru ini ditambahkan, dan pesan singkat tidak kembali (karena minibuffer tidak terlibat saat ini).message
ataupost-command-hook
, jika Anda mau. Tetapi masalah penting menghilang / ditimpa kadang-kadang akan memundurkan kepalanya, karena Anda mencoba menggunakan area tampilan sementara untuk sesuatu yang Anda tidak ingin bersifat sementara.