Satır içi görüntüler için yumuşak (fare) kaydırma?


23

Görüntüleri begin_src & result blokları ile aynı çizgide gösteriyorum.

Ancak, büyük görüntüler için görüntünün alt tarafını kaydırdığımda bir 'sarsıntı' alıyorum ve tüm görüntü kaydırılıyor. Benzer şekilde yukarı kaydırıp bir görüntüye rastlarsam, bir sarsıntı alıyorum ve onu aşamalı olarak azar azar görmek yerine tüm görüntüyü görüyorum.

Bu org modunda büyük plantuml / graphviz diyagramları ile çalışmayı zorlaştırır.

Bir web tarayıcısında olduğu gibi görüntüyü titretmeden hafifçe kaydırmak için sorunsuz bir deneyim deneyimi istiyorum.

Denedim:

(setq auto-window-vscroll nil)

ve ayrıca

(setq scroll-margin 1
scroll-conservatively 0
scroll-up-aggressively 0.01
scroll-down-aggressively 0.01)

Yumuşak kaydırma paketini ve bu pasajı da denedim .

Bununla birlikte, satır içi görüntünün yalnızca 'tek satır' alması ve emac'leri yalnızca 'tek satır' ile kaydırması düzeltilmesi sorunu çözmüyor.

Bu konuda herhangi bir çözüm var mı?

[değiştir] Klavye vs Fare kaydırma:

Fare kaydırma yapılması zorunludur. Ancak, doğru fare kaydırma çalışması işe yararsa, klavye kaydırma bir bonus olacaktır.

[değiştir]
Bir geçici çözümden biraz, ancak org modundaki görüntülerle çalışmak için kullanışlıdır, bunları dosya değişikliğinde otomatik olarak yeniden yüklenen harici bir uygulamada açmaktı. Örnek olur eog (eye of gnome)ya da shutterya da prievew (on OS X). org-file-appsEkleyerek yapılandırılabilir :

extension: \.png\'
Command:   eog "%s"

Klavye tabanlı kaydırma veya fare kaydırma mı yapıyorsunuz?
mankoff

fare kaydırma, açıklama için teşekkür ederiz.
Leo Ufimtsev

Emacs için bir yama gerektirebilir. Mac'e özgü bağlantı noktasının özellikleri / yararları hakkında bilgi sahibi olduğumuzu biliyorum: yumuşak kaydırma: github.com/railwaycat/emacs-mac-port/blob/master/README-mac Ama bu sadece bir fare. Klavyeler satırlara göre hareket eder ve görüntüler yalnızca bir satır yüksektir ...
mankoff 27.03.2015

Böyle bir yama yapmak güzel olurdu ...
Leo Ufimtsev

(setq scroll-conservatively 101)Yukarıdaki soruda belirtilen diğer tüm kaydırma ayarlarınız hakkında ne düşünüyorsunuz ve yorumunuzu yapın ve bu yumuşak kaydırma paketini ve / veya pasajını devre dışı bırakın? Şunlar için doc-string scroll-conservatively: " Değer 100'den büyükse, yeniden görüntüleme hiçbir zaman noktayı yeniden göstermez, ancak uzaklara taşınsanız bile, her zaman yalnızca metni görecek kadar kaydırır. Sıfır değeri her zaman yeniden girilen nokta anlamına gelir eğer ekranın dışına çıkarsa. "
kanun listesi

Yanıtlar:


7

Emacs 26.1'den beri, tampon, fare tekerleğini kullanarak görüntülerin üzerinde yumuşak bir şekilde kaydırmak için kullanılabilen, sadece çizgiler yerine ayrı ayrı piksellerle kaydırılabilir. Bunu başarmak için aşağıdaki konfigürasyonu kullandım:

;;; Scrolling.
;; Good speed and allow scrolling through large images (pixel-scroll).
;; Note: Scroll lags when point must be moved but increasing the number
;;       of lines that point moves in pixel-scroll.el ruins large image
;;       scrolling. So unfortunately I think we'll just have to live with
;;       this.
(pixel-scroll-mode)
(setq pixel-dead-time 0) ; Never go back to the old scrolling behaviour.
(setq pixel-resolution-fine-flag t) ; Scroll by number of pixels instead of lines (t = frame-char-height pixels).
(setq mouse-wheel-scroll-amount '(1)) ; Distance in pixel-resolution to scroll each mouse wheel event.
(setq mouse-wheel-progressive-speed nil) ; Progressive speed is too fast for me.

Düzenle:

Bu çözümün bilmek için yardımcı olabilecek birkaç uyarısı olduğunu buldum:

  • Pencereden daha yüksek bir görüntünün üzerine kaydırmak, görüntü artık görünmeyene kadar pencere kaydırmasını gören büyük sarsıntıya neden olur (sonraki satır pencerenin en üstündedir).
  • Kaydırma işlemini anında yapamazsınız (daha az yoğun), ancak yine de çizgiler yerine pikselleri kaydırmaya devam edebilirsiniz.
  • Mevcut animasyon tamamlanmadan önce yeni bir kaydırma olayı yayınlandığında, pencere bir sonraki animasyonun başlangıcına atlar ve düzgün kaydırmada bir süreksizlik olur.
  • Birçok kişi bu yöntemi kullanarak böyle bir performans düşüşü yaşadı, bu sadece kullanılamıyor. Görünüşe göre bu bazı mod satırı modifikasyonları kullanıldığında yaygındır.

Otomatik olarak yüklendiğinden, gerek (require 'pixel-scroll)duymamanız gerekir pixel-scroll-mode.
Tobias,

Ah evet, haklısın. Pixel-scroll.el belgesindeki talimatları izliyordum ama sanırım biraz farklı bir kitleye göre.
Matthew Palermo,

1

Buna ne dersin:

;; scroll one line at a time (less "jumpy" than defaults)
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time
(setq mouse-wheel-progressive-speed nil) ;; don't accelerate scrolling
(setq mouse-wheel-follow-mouse 't) ;; scroll window under mouse
(setq scroll-step 1) ;; keyboard scroll one line at a time

1

Anladığım kadarıyla sorun, görüntünün tek bir çizgi olması. Kaydırmanın nasıl davrandığını değiştirmek sorunu çözmez.

Bildiğim tek çözüm teknik olarak daha kısa görüntülerin oluşabilmesi için görüntüyü dilimlemek. Bu kullanılarak yapılabilir insert-sliced-image.


Kullanımı hakkında ayrıntılı bilgi verebilir misiniz insert-sliced-image? org-toggle-inline-imagesBunları önce dilimlemek geçersiz kılınabilir mi?
Adam

insert-sliced-imageDeğerlendirerek okuyabilirsiniz (describe-function 'insert-sliced-image)- Dokümantasyona eklemek için yararlı bir çalışmam yok. Koda baktım org-display-inline-imagesancak görüntülerin gerçekte nereye eklendiğini anlayamıyorum. Eminim kullanmak üzere yeniden yazmak mümkün insert-sliced-image, ama nasıl yapılacağını bilmiyorum.
Ista
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.