Emacs'ta kaydırırken imleç konumunu değiştirmeyin


18

EmacsKaydırma yaparken metin imleci konumumu (aka, nokta) otomatik olarak hareket ettirmeyi durdurmanın bir yolu var mı ? Bu can sıkıcı davranışla konumumu ve izlerimi kaybetmeye devam ediyorum.

Aşağıdaki öneriyi başarı ile test ettim:

(setq scroll-preserve-screen-position t
scroll-conservatively 0)

( EmacsUbuntu ve OS X üzerinde 24.2 çalıştırıyorum .)

Yanıtlar:


11

Sana gibi olmalıdır imlecin (nokta) ve görünür alanın davranışını istediğini düşünüyorum notepad, gedityetenek noktası pozisyonunun bağımsız görünür alanını değiştirmek ve hemen gelin taşıdıktan sonra nokta pozisyonuna görünür alanını döndürmek için:, diğerleri Modern editörler. Ancak emacsbaşka bir anlayışı var: görünür alan her zaman nokta konumunu takip eder ve bunun tersi de geçerlidir.

Ayrıca bkz. Https://stackoverflow.com/questions/9616623/ctrl-up-down-style-scrolling-in-emacs

Önceki cevap özel deyimi gösterir: görünür alanı (nokta ile birlikte) geçerli konumdan uzağa taşımak ve ardından noktayı tam olarak önceki konuma döndürmek istiyorsanız, kullanmak için bir alışkanlığınız olmalıdır mark-ring. Her zaman bir yol boyunca vardır mark ringbirçok komutları gibi: Mevcut çalışma pozisyonuna isearch-forward, beginning-of-buffer, ace-jump-modeotomatik olarak bir önceki pozisyonda tasarrufu mark ringve kullanmak gerekir C-<SPC> C-<SPC>ama sadece, daha önce C-u C-<SPC>atlama sırt için. scroll-upVeya gibi kaydırma komutları mwheel-scrollvarsayılan olarak önceki konumu otomatik olarak kaydetmez, çünkü çok fazla aşırı işaret üretebilir.

Komutları clone-indirect-bufferveya view-buffer-other-windowarabellekle birkaç yerde bağımsız çalışma için kullanabilirsiniz . Ve noktayı görünür alanın merkezinde tutmak için command recenter-top-bottom( C-l) komutunu kullanın .


2
Teşekkürler. İlginç bir cevap. Emacs'ımla ilgili bir sorun var gibi görünüyor (Mac'te ve Ubuntu'da): C-u C-<SPC>çalışmıyor gibi görünüyor. Bunun bir sorunu olup olmadığını bilmiyorum cua-mode. Emacs'ı -qseçenekle çalıştırmayı denedim , ancak hiçbir şey değişmedi. Herhangi bir fikir?
NVaughan

Bu çok kötü ... Bunu çok sinir bozucu buluyorum, çünkü kullanıyorum highlight-symbol-mode. İmleci bir değişkene ayarladım ve tüm olayları vurgular. Kaydırmaya başladığımda, imleç değişkenten ayrılıyor ve tüm vurgular kayboluyor. Emacs, en azından kaydırma öğelerinde diğer çağdaş editörler gibi davranırsa çok daha iyi olurdu.
itmuckel

7

Kaydırma sırasında emacs'ın noktanızı hareket ettirmesini engellemenin bir yolu olup olmadığını bilmiyorum. Ancak daha sonra geri dönmek için konumunuzu kaydetmek isterseniz, işaret halkasını kullanabilirsiniz .

Yani, C-<SPC> C-<SPC>geçerli nokta konumunu işaret halkasına itmek için yazın , daha sonra C-u C-<SPC>noktayı işaret halkasında bir önceki konuma ayarlamak için yazın.


3

Bunu kullanıyorum:

;;; scrollers - M-f, M-b
(global-set-key "\M-f" "\C-u1\C-v")
(global-set-key "\M-b" "\C-u1\M-v")

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.