เลื่อน (เมาส์) อย่างราบรื่นสำหรับภาพอินไลน์หรือไม่


23

ฉันแสดงรูปภาพในบรรทัดพร้อมกับ start_src & บล็อคผลลัพธ์

อย่างไรก็ตามสำหรับภาพขนาดใหญ่เมื่อฉันเลื่อนผ่านด้านล่างของภาพฉันได้รับ 'กระตุก' และภาพทั้งหมดจะถูกเลื่อนออกไป ในทำนองเดียวกันถ้าฉันเลื่อนขึ้นและเรียกใช้เป็นรูปภาพฉันได้รับการกระตุกและดูภาพทั้งหมดแทนที่จะเห็นมันทีละนิดทีละน้อย

สิ่งนี้ทำให้ยากต่อการทำงานกับไดอะแกรม plantuml / graphviz ขนาดใหญ่ในโหมดองค์กร

ฉันต้องการประสบการณ์ที่ราบรื่นในการเลื่อนภาพอย่างเบามือเหมือนในเว็บเบราว์เซอร์โดยไม่กระตุก

ฉันเหนื่อย:

(setq auto-window-vscroll nil)

และนอกจากนี้ยังมี

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

ฉันลองชุดเลื่อนแบบสมูทและตัวอย่างนี้ด้วย

อย่างไรก็ตามดูเหมือนว่ารูปภาพในบรรทัดจะใช้ 'หนึ่งบรรทัด' เท่านั้นและแก้ไข emacs เพื่อเลื่อนโดย 'หนึ่งบรรทัด' เท่านั้นไม่สามารถแก้ไขปัญหาได้

วิธีการแก้ปัญหานี้หรือไม่?

[แก้ไข] คีย์บอร์ด VS เลื่อนเมาส์:

การเลื่อนเมาส์นั้นบอกเป็นนัย แต่การเลื่อนคีย์บอร์ดจะเป็นโบนัสหากการเลื่อนเมาส์ที่เหมาะสมจะทำงานได้

[แก้ไข]
ค่อนข้างมีวิธีแก้ปัญหา แต่มีประโยชน์สำหรับการทำงานกับรูปภาพในโหมดองค์กรคือการเปิดในแอปภายนอกที่โหลดซ้ำอัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์ ตัวอย่างจะเป็นeog (eye of gnome)หรือหรือshutter prievew (on OS X)สามารถกำหนดค่าผ่านทางorg-file-appsโดยการเพิ่ม:

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

คุณกำลังเลื่อนโดยใช้คีย์บอร์ดหรือการเลื่อนเมาส์?
mankoff

การเลื่อนเมาส์ขอขอบคุณสำหรับการชี้แจง
Leo Ufimtsev

อาจต้องใช้โปรแกรมปะแก้กับ emacs ฉันรู้คุณสมบัติและประโยชน์ของพอร์ตเฉพาะของ Mac คือการเลื่อนอย่างราบรื่น: github.com/railwaycat/emacs-mac-port/blob/master/README-macแต่ถึงแม้จะเป็นแค่เมาส์เท่านั้น คีย์บอร์ดย้ายโดยเส้นและภาพที่มีเพียงหนึ่งบรรทัดสูง ...
Mankoff

มันคงจะดีถ้ามีแพทช์แบบนั้น ...
Leo Ufimtsev

วิธีการเกี่ยวกับ(setq scroll-conservatively 101)และแสดงความคิดเห็นการตั้งค่าการเลื่อนอื่น ๆ ของคุณทั้งหมดที่กล่าวถึงในคำถามข้างต้นและปิดการใช้งานแพคเกจการเลื่อนที่ราบรื่นและ / หรือตัวอย่าง? doc-string สำหรับscroll-conservativelyรัฐ: " ถ้าค่ามากกว่า 100 การเล่นซ้ำจะไม่เกิดขึ้นอีกครั้ง แต่จะเลื่อนข้อความให้พอเพียงเพื่อให้จุดเข้ามาดูแม้ว่าคุณจะย้ายออกไปไกลก็ตามค่าศูนย์หมายถึงจุดที่จะกลับมาอีกครั้ง ถ้ามันเคลื่อนออกจากหน้าจอ "
กฎหมาย

คำตอบ:


7

ตั้งแต่ Emacs 26.1 บัฟเฟอร์สามารถเลื่อนโดยแต่ละพิกเซลแทนที่จะเป็นแค่เส้นที่สามารถใช้เลื่อนดูภาพอย่างราบรื่นโดยใช้ล้อเลื่อนของเมาส์ เพื่อให้บรรลุสิ่งนี้ฉันได้ใช้การกำหนดค่าต่อไปนี้:

;;; 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.

แก้ไข:

ฉันพบว่าวิธีนี้มีข้อควรระวังเล็กน้อยที่อาจเป็นประโยชน์ในการทราบ:

  • การเลื่อนไปที่รูปภาพที่สูงกว่าหน้าต่างจะยังคงทำให้เกิดการกระตุกขนาดใหญ่ซึ่งเห็นการเลื่อนหน้าต่างจนกว่าภาพจะมองไม่เห็นอีกต่อไป (บรรทัดถัดไปอยู่ด้านบนของหน้าต่าง)
  • คุณไม่สามารถทำการเลื่อนทันที (เข้มข้นน้อยกว่า) แต่ยังคงเลื่อนเป็นพิกเซลแทนที่จะเป็นเส้น
  • เมื่อมีการออกเหตุการณ์เลื่อนใหม่ก่อนที่ภาพเคลื่อนไหวที่มีอยู่จะเสร็จสิ้นหน้าต่างจะข้ามไปที่จุดเริ่มต้นของภาพเคลื่อนไหวถัดไปซึ่งทำให้เกิดความไม่ต่อเนื่องในการเลื่อนอย่างราบรื่น
  • หลายคนประสบกับการเสื่อมประสิทธิภาพเช่นนี้โดยใช้วิธีนี้ซึ่งไม่สามารถใช้งานได้ง่าย เห็นได้ชัดว่านี่เป็นเรื่องปกติเมื่อมีการใช้การแก้ไขสายโหมด

คุณไม่ควรต้องการ(require 'pixel-scroll)เนื่องจากpixel-scroll-modeมีการโหลดอัตโนมัติ
โทเบียส

อ่าใช่คุณพูดถูก ฉันแค่ทำตามคำแนะนำในสตริงเอกสารใน pixel-scroll.el แต่ฉันเดาว่ามันสำหรับผู้ชมที่แตกต่างกันเล็กน้อย
Matthew Palermo

1

เกี่ยวกับสิ่งนี้:

;; 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

ปัญหาที่ฉันเข้าใจมันคือภาพเป็นเส้นเดียว การเปลี่ยนพฤติกรรมการเลื่อนจะไม่ช่วยแก้ปัญหา

ทางออกเดียวที่ฉันทราบคือการแบ่งภาพขึ้นเพื่อให้มีรูปภาพสั้นลงจำนวนมากในทางเทคนิค insert-sliced-imageซึ่งสามารถทำได้โดยใช้


คุณสามารถอธิบายเกี่ยวกับการใช้งานได้อย่างละเอียดinsert-sliced-imageหรือไม่? เป็นไปได้หรือไม่ที่จะแทนที่org-toggle-inline-imagesชิ้นแรกให้ถูกต้อง?
Adam

คุณสามารถอ่านinsert-sliced-imageโดยการประเมิน(describe-function 'insert-sliced-image)- ฉันไม่มีประโยชน์อย่างละเอียดใด ๆ ในการเพิ่มไปยังเอกสาร ฉันดูorg-display-inline-imagesรหัส แต่ฉันไม่สามารถเข้าใจได้ว่าภาพใส่เข้าไปที่ไหน ฉันแน่ใจว่าเป็นไปได้ที่จะเขียนใหม่เพื่อใช้insert-sliced-imageแต่ฉันไม่เห็นวิธีการทำ
Ista
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.