Emacs - Birden çok sütun bir tampon


165

Uzun ama ince listelerde biçimlendirilmiş eğilim bazı montaj kodu düzenlemeye çalışıyorum. Sahip olduğum yatay alanın dönümlerinden bazılarını kullanabilmek ve bir seferde ekranda daha fazla kod görmek istiyorum. Aynı tamponu gösteren birden fazla sütun göstermek için Emacs (veya başka bir editör) almak için bir yöntem var mı?

Cx 3 (emacs) ve: vsplit (vim) koda birden fazla ayrı görünüm için mükemmeldir, ancak bir sütundan diğerine (bir gazetedeki metin gibi) akmasını istiyorum.


1
Cx 3 ve: vsplit, koda birden fazla ayrı görünüm için mükemmeldir, ancak bir sütundan diğerine (bir gazetedeki metin gibi)
akmasını

1
Teşekkürler! Tüm kodumu 30-40 karakter olarak biçimlendirmeye çalıştığım 4-6 sütun kod görüntülemeye aşık oldum ve sonucu çok seviyorum - tüm satırları kısa, doğal olarak kısa olanları değil, çok daha az alan yaparak israf edilir ve tüm ekran alanım metin görüntülemek için kullanılır; ayrıca, kod blokları görsel kavrayışı ve yapısal gözetimi kolaylaştırarak daha 2 boyutlu hale gelir.
Erik Kaplun

Yanıtlar:


248

İzleme moduna bakın . Alıntı:

İzleme modu, her ikisi de aynı arabelleği gösteren iki pencere yapan, tek bir uzun “sanal pencere” olarak kaydırma yapan küçük bir moddur. Takip modunu kullanmak için, yalnızca bir pencereli bir kareye gidin, Cx 3 kullanarak iki yan yana pencereye bölün ve ardından Mx takip modu yazın. O andan itibaren, arabelleği iki pencereden birinde düzenleyebilir veya ikisinden birini kaydırabilirsiniz; diğer pencere de onu takip eder. Takip modunda, noktayı bir pencerede görünen bölümün dışına ve diğer pencerede görünen bölüme taşırsanız, bu diğer pencereyi seçer - yine ikisine tek bir büyük pencerenin parçalarıymış gibi davranır.

3
Bunu ikiden fazla pencereyle kullanabilir miyim? Bunu kullanarak dört pencerem olabilir mi?
Yktula

Aynı kaynağın iki sütununu iki pencereye bölünmemiş olarak bireysel bir şekilde düzenlemenin mümkün olup olmadığını merak ediyorum. Bu en iyi örnek değil ama ben komut dosyası kodu için bir sütun ve yorumlar için diğeri olduğunu hayal o zaman ikinci sütunda ise "enter" tuşuna basın ve sonraki satırda devam ama ikinci sütunda istiyorum. Emacs veya başka bir metin düzenleyici ile bu mümkün müdür?
sw.

Uzun uzun fonksiyon veya yöntemi düzenlemek çok yararlıdır. ben her zaman bu modu bulmak ve iki tampon açmak ve bunu kendim yapmak, teşekkürler huaiyuan
Yuan O

17

follow-modeFarklı bir ekran boyutu için özelleştirme gerekir, ancak bu işlevi çağırmak için kullanın :

;;; I want a key to open the current buffer all over the screen.
(defun all-over-the-screen ()
  (interactive)
  (delete-other-windows)
  (split-window-horizontally)
  (split-window-horizontally)
  (balance-windows)
  (follow-mode t))

Artı 1 sadece (denge pencereleri) işaret için! Her ne kadar parametrik sayıda bölünebilir ve işlevi etkileşimli hale getirebilirsiniz. Ayrıca, ayar scroll-marginiçin 0mantıklı olacaktır follow-mode.
Erik Kaplun


2

Vim bunu :vsplit- kullanarak yapabilir ve aynı tamponu birden fazla "pencerede" açabilirsiniz (bunlar aslında tek bir "pencere" içindeki bölümlerdir).

Buradaki belgeler


3
emacs da soruda belirtildiği gibi bunu yapabilir, ancak sorulan şey bu değildir.
justinhj

1
Bunu ile birleştirin :scrollbindve oradasınız.
bastibe

@Kragen - Bunu yapmanın yöntemi: 1. pencereyi dikey olarak bölmek, böylece tek bir arabellek iki pencerede görünür 2. ikinci pencerede kaydırın, böylece ikinci pencerede ilk satır ilk pencerede son satırdan sonra gelir, 3. :set scrollbindpencerelerin her birinde issue komutu . Şimdi pencereler istenildiği gibi birlikte kayacaktır. (Not: scrollopt 'ver' seçeneği içermelidir.)
Herbert Sitz

Hmm, bu bir çeşit iş yapıyor. Güzel! Teşekkürler! Birisi bunu otomatik olarak yapmak için bir vim betiği yazmalıdır.
Kragen Javier Sitaker

-1

Emacs wiki'ye hızlı bir bakış, sizin tarif ettiğiniz gibi bir mod göstermez. Ancak, bir tane yazmak çok zor olmamalı ... Pencereyi Cx 3 ile bölmeniz ve metni diğer pencerede aşağı taşımanız yeterlidir ve metni her hareket ettirdiğinizde diğer pencereye de aynısını yapın. ..

Arabellek dibine ulaştığınızda sorunlar oluşabilir, imlecin hemen üstteki diğer pencereye gitmesini ister misiniz?

Hmm, belki bu o kadar kolay değil. Ama yine de yapılabilir olmalı ...


1
... ve böylece Elisp öğrenmem gerekenler listesine
ekleniyor

Açıkçası, birisi zaten yaptı, ama evet, elisp inanılmaz bir araç!
Brian Postow

-5

bu pencereyi böldüğünüzde varsayılan emacs davranışıdır (dikey bölme için Cx 3), her ikisi de geçerli arabelleği açık olan iki sütun alırsınız


1
Ancak bu durumda, izleme modunda değildir. İzleme modu, her tamponun "sonraki sayfada" konumlandırılmasını sağlar, böylece noktayı hareket ettirmek yerine gözlerinizi hareket ettirerek tamponu okuyabilirsiniz.
jrockway

-7

Cx 3 ile dikey bölme kullanın. Bu, geçerli arabelleği Cx o ile geçiş yapabileceğiniz iki sütuna böler.


2
Bu otomatik olarak bir sütundan diğerine akmaz.
kmarsh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.