Dosyayı foo.bar
emacs'de iki kez (veya daha fazla) açmak istiyorum , böylece aynı anda iki farklı bölümünü düzenleyebilirim. Mümkün mü? Muhtemelen daha iyi soru, nasıl yapılır? Her örneği kendi arabelleğinde / çerçevesinde açmanın bir yolu var mı?
Dosyayı foo.bar
emacs'de iki kez (veya daha fazla) açmak istiyorum , böylece aynı anda iki farklı bölümünü düzenleyebilirim. Mümkün mü? Muhtemelen daha iyi soru, nasıl yapılır? Her örneği kendi arabelleğinde / çerçevesinde açmanın bir yolu var mı?
Yanıtlar:
Aynı tamponu birden fazla pencerede açabilirsiniz (farklı çerçeveler arasında yayılabilir), ancak bu pek uygun değildir. Her pencerenin kendi noktası vardır, ancak hepsi işareti, dosya modunu, daralmayı ve diğer özellikleri paylaşır, çünkü noktadan ayrı olarak tüm özellikler ara belleğe bağlanır. Ayrıca, bir pencerede başka bir tamponu ziyaret ederseniz, dosyadaki yerinizi kaybedersiniz.
Bir yapabilirsiniz dolaylı tampon böylece kendi nokta, işareti, modu vardır ve, ancak orijinal tampon aynı içeriğe (ve aynı dosyaya yazma her iki tampon tasarruf). Geçerli arabellek klonu olan ikinci bir arabellek oluşturmak için çalıştırın M-x clone-indirect-buffer RET
. İkinci tamponu farklı bir pencerede açmak için yazabilirsiniz C-x 4 c
.
C-x 4 c
çalışır clone-indirect-buffer-other-window
, bu yüzden bu clone-indirect-buffer
komutu yerine, yerine, bu kullanılacak . Ancak, sistemimde, bu komutların her ikisi de aynı şeyi yapıyor gibi görünüyor.
C-x 4
, pencereler ön ekidir c
içindir klon . İsterseniz diğer ciltleri tanımlayabilirsiniz. C-x c
varsayılan yapılandırmada kullanılmazsa, yanlışlıkla vurmaktan C-x C-c
korkmazsanız kullanabilirsiniz. C-x 5 c
İnit dosyamda yeni bir çerçevede klonlamayı tanımlarım .
Bölünmüş ekran modu: ctrl+ burada xctrl tuşunu basılı tutun ve bir x yazın. Ardından aşağıdaki numarayı yazın.
ctrl+ x2 (yatay bölme)
veya
ctrl+ x3 (dikey bölme)
Ardından, onları aynı dosyada bağımsız olarak kaydırabilir veya bir tanesinde isterseniz başka bir arabellek açabilirsiniz.
Tek bir görünüm türüne dönmek için
ctrl+ x1
İsterseniz her ekranı (bölüm) istediğiniz kadar bölebilirsiniz. Önce bölmek istediğiniz ekranı seçin, sonra üzerine yatay veya dikey bir bölme uygulayın.
C-x o
koşar other-window
ve çevrilir. (Pencere yöneticisi pencerelerinin çerçeveler ve içlerindeki ayrı panellerin pencereler olarak adlandırıldığı emacs yapılandırmasını kullanma (biliyorum, biliyorum ama bundan sorumlu değilim).)
Emacs, çerçevelere değil bölmelere (pencerelere) eğilimlidir. Aynı tamponu, sadece aynı çerçevedeki başka bir pencerede değil, başka bir çerçevede açmak istenir. Ancak C-x 5 c
, varsayılan olarak sınırsızdır. Bu kod eksik clone-indirect-buffer-other-frame
fonksiyonu tanımlar :
(global-set-key [?\C-x ?5 ?c]
'(lambda(newname display-flag)
"Like `clone-indirect-buffer-other-window' but display in another frame."
(interactive
(progn
(if (get major-mode 'no-clone-indirect)
(error "Cannot indirectly clone a buffer in %s mode" mode-name))
(list (if current-prefix-arg
(read-buffer "Name of indirect buffer: " (current-buffer))) t)))
(save-window-excursion
(let ((newbuf (clone-indirect-buffer newname display-flag)))
(switch-to-buffer-other-frame newbuf)
)
)
)
)