Saya ingin membuka file foo.bar
dua kali (atau lebih) dalam emacs, jadi saya dapat mengedit dua bagian yang berbeda secara bersamaan. Apa itu mungkin? Mungkin pertanyaan yang lebih baik adalah, bagaimana cara melakukannya? Apakah ada cara untuk membuka setiap instance dalam buffer / frame sendiri?
28
Jawaban:
Anda dapat membuka buffer yang sama di lebih dari satu jendela (yang dapat tersebar di antara berbagai bingkai), tetapi itu tidak terlalu nyaman. Setiap jendela memiliki titik sendiri, tetapi mereka semua berbagi tanda, mode file, penyempitan dan karakteristik lainnya, karena terlepas dari titik hampir semua karakteristik terikat dengan buffer. Juga, jika Anda mengunjungi buffer lain di satu jendela, Anda akan kehilangan tempat Anda di file.
Anda dapat membuat buffer tidak langsung yang memiliki titik, tandai, mode, dan sebagainya, tetapi konten yang sama dengan buffer asli (dan menyimpan salah satu buffer menulis ke file yang sama). Untuk membuat buffer kedua yang merupakan klon dari buffer saat ini, jalankan
M-x clone-indirect-buffer RET
. Untuk membuka buffer kedua di jendela yang berbeda, Anda bisa mengetikC-x 4 c
.sumber
C-x 4 c
menjalankanclone-indirect-buffer-other-window
, jadi ini akan digunakan alih-alihclone-indirect-buffer
, tidak mengikuti perintah itu. Namun, pada sistem saya, kedua perintah ini tampaknya melakukan hal yang sama.C-x 4
adalah awalan untuk windows,c
untuk klon . Anda dapat menentukan binding lainnya jika Anda mau.C-x c
tidak digunakan dalam konfigurasi default, Anda dapat menggunakannya jika Anda tidak takut untuk memukul secara tidak sengajaC-x C-c
. Saya menetapkanC-x 5 c
untuk mengkloning dalam bingkai baru di file init saya.Mode layar terbagi: di mana ctrl+ xberarti tekan dan tahan tombol ctrl dan ketik x. Kemudian ketikkan nomor berikut.
ctrl+ x2 (pemisahan horizontal)
atau
ctrl+ x3 (pemisahan vertikal)
Kemudian Anda dapat menggulirnya secara independen pada file yang sama atau membuka buffer lain jika Anda menginginkannya.
Untuk kembali ke jenis tampilan tunggal
ctrl+ x1
Jika mau, Anda dapat membagi setiap layar (bagian) sebanyak yang diperlukan. Pilih layar yang ingin Anda bagi terlebih dahulu dan kemudian lakukan pemisahan horizontal atau vertikal.
sumber
C-x o
berjalanother-window
dan berputar melalui "jendela" yang terlihat di setiap "bingkai". (Menggunakan konfigurasi emacs di mana window manager windows disebut frame, dan panel terpisah di dalamnya disebut windows (saya tahu, saya tahu, tapi saya tidak bertanggung jawab untuk itu).)Emacs bias ke panel (windows), bukan bingkai. Sering diinginkan untuk membuka buffer yang sama di bingkai lain, bukan hanya jendela lain di bingkai yang sama. Tetapi
C-x 5 c
tidak terikat secara default. Kode ini mendefinisikanclone-indirect-buffer-other-frame
fungsi yang hilang :sumber