Dalam fungsi "shell" baris ini menampilkan buffer shell dan hampir selalu membuka shell baru dalam bingkai acak. Dan saya harus menukar buffer, itu menjengkelkan.
...
(pop-to-buffer buffer)
...
Dalam dokumen tertulis:
Jika jendela itu berada pada bingkai grafis yang berbeda, bingkai itu diberikan fokus input jika memungkinkan.
Saya tidak mengerti bagaimana saya bisa menampilkan buffer dalam bingkai target, saya tidak cukup baik di elisp. Bagaimana saya bisa melakukan itu? Terima kasih jika ada yang bisa membantu.
Jawaban:
Saya berasumsi bahwa poster asli berarti menargetkan jendela yang saat ini dipilih dalam bingkai yang sama. Jika poster asli berkeinginan menargetkan jendela tertentu dalam bingkai yang berbeda, maka lihat utas terkait ini untuk contoh kompleks: /programming/18346785/how-to-intercept-a-file- sebelum-itu-membuka-dan-memutuskan-bingkai mana
Saya menyalin fungsi
shell
bawaan dan membuat yang baru dipanggilshell-get-buffer-create
, yang menggunakanwith-current-buffer ...
alih-alihpop-to-buffer
. Fungsi baru ini menghasilkan atau menempatkan*shell*
buffer tanpa memilihnya di jendela apa pun.Untuk menampilkan
*shell*
buffer di jendela yang dipilih saat ini gunakan:atau
atau
Saya membuat fungsi khusus yang disebut
my-display-buffer
yang dapat ditampilkan dalam empat arah - kiri, kanan, atas, atau di bawah. Ada tiga kemungkinan: (1) Jika jendela pada bingkai sudah menampilkan buffer target, maka gunakan kembali jendela yang sama. (2) Jika sudah ada jendela dalam arah yang ditentukan sehubungan dengan jendela yang dipilih, maka tampilkan buffer target di jendela tersebut. (3) Jika tidak ada jendela di arah yang ditentukan, lalu buat satu di arah itu dan tampilkan buffer target di jendela tersebut.Penggunaan sampel :
atau
atau
atau
Kode :
Dan, ini adalah
eshell-get-buffer-create
yang berfungsi sama seperti di atas ...sumber
Bukan jawaban langsung untuk pertanyaan Anda, tapi mungkin ini solusi untuk Anda.
Untuk menginstal paket shell-pop dari melpa atau stabil-melpa. Kemudian evaluasi (untuk uji coba
*scratch*
melaluiC-x C-e
, nanti di Anda.emacs
)Ini memunculkan shell di bagian bawah bingkai Anda, dalam hal ini saat menekan ctrl-meta-ret. Mengulangi urutan keyboard kembali ke tempat Anda sebelumnya.
Lihat https://github.com/kyagi/shell-pop-el untuk detailnya.
sumber