ইম্যাক্স: স্ক্রোল / পৃষ্ঠা উপরে / ডাউনের পরে কীভাবে শেষ অবস্থানে ফিরে আসবেন?


14

ইস্যু করার পরে scroll-upscroll-downইমাক বা ইমাকগুলিতে, বিন্দুটিকে পূর্ববর্তী অবস্থানে ফেরানোর জন্য কি দ্রুত উপায় আছে (ধরে নিচ্ছি যে এটি চিহ্নের রিংয়ের সাথে যুক্ত করার কথা মনে নেই)?

বিকল্পভাবে স্ক্রোলিং আচরণে পরিবর্তন আনার জন্য কোনও উপায় (চিহ্নের রিংয়ের সাথে হস্তক্ষেপ না করে) রয়েছে যাতে স্ক্রোলিং ডাউন করে স্ক্রোলিং (বা বিপরীতে) পয়েন্টটিটিকে তার মূল অবস্থানে ফিরিয়ে দেয়? (উদাহরণস্বরূপ, স্ক্রোলিংটি বিন্দুটিকে ঠিক x লাইনগুলি সরানো করুন যেখানে এক্স স্ক্রিনের উচ্চতা)

আমি নিজেকে ইমাসের সাথে অভ্যস্ত করার প্রক্রিয়াতে চলেছি এবং এটি একটি সাধারণ অভিশাপ-উদ্দীপক পরিস্থিতিগুলির মধ্যে একটি: আমি আমার কোডের অন্য একটি অংশটি চিহ্নের সাথে আমার রেখাটি যুক্ত করার কথা স্মরণ না করেই দেখতে স্ক্রোল করছি এবং তারপরে চেষ্টা করা কষ্টদায়ক আমি যে কোডের কাজ করছিলাম সে লাইনের স্থানান্তরিত করতে। যেমন, আমি যখন কোনও প্রযুক্তিগত সমাধান চাইব, তখন আমিও শুনতে আগ্রহী যে কীভাবে পাকা ব্যবহারকারীরা এই সমস্যাটি এড়ান। আপনি কি কেবল একটি চিহ্ন স্থাপনের জন্য স্মৃতিচারণ করতে, চারপাশে দেখার জন্য উইন্ডোটি বিভক্ত করতে বা অন্য কোনও প্যাটার্ন ব্যবহার করতে অভ্যস্ত হয়ে পড়েছেন?

ধন্যবাদ

উত্তর:


13
(setq scroll-preserve-screen-position t)

এই সেটিংটি সহ , আপনি পৃষ্ঠাটি উপরে নিচে রাখলে কার্সারটি তার মূল লাইনে ফিরে আসে। এটি ইমাস সংস্করণ 23 বা আরও নতুন সংস্করণে এটির আসল কলামটি ধরে রাখে।

আপনি পছন্দ করতে পারেন বা নাও পারেন

(setq scroll-preserve-screen-position 'always)

মূল অবস্থানটি এখনও দৃশ্যমান থাকলে বাফারে কার্সার অবস্থান সংরক্ষণের পরিবর্তে স্ক্রল করার সময় কার্সরের স্ক্রিন অবস্থানটি সর্বদা সংরক্ষণ করে।


2
আমার কাছ থেকেও ধন্যবাদ! (উম্মে অনেক!) বছর ধরে, আমি প্রায় স্ক্রোল করার আগে "<>" টাইপ করেছি, ফিরে আসার জন্য কেবল একটি অনুসন্ধানের লক্ষ্য রেখেছি।
জারউবার্ট

আমার জন্য এটি scroll-up-line(যা আমি আমার স্ক্রোল হুইল দিয়ে ব্যবহার করি) কার্সারটি যখন একটি স্ক্রিনের উপরের বা নীচে আঘাত করে তখন একটি চরিত্রকে এগিয়ে নিয়ে যেতে পারে।
asmeurer

পছন্দ করুন আপনার থিম ফাইলটিতে কিছু অদ্ভুত কিছু থাকতে হবে বা আপনার ইমাসের সংস্করণে একটি বাগ থাকতে হবে।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

হ্যাঁ, আমি এটি পোস্ট করার পরে আমি এটি বুঝতে পেরেছি। আমি emacs.stackexchange.com / জিজ্ঞাসা / 12439/ … এ একটি নতুন প্রশ্ন খুললাম
asmeurer

আমি মনে করি এটি হওয়া উচিত (setq scroll-preserve-screen-position 'always)। অন্যথায়, C-v M-vবিন্দু ফিরে আপনি যেখানে শুরু করা না (দ্বিতীয় বিন্দু অবস্থান প্রথম screenful তাই বিন্দু পিছান করে না দৃশ্যমান।)।
উইলফ্রেড হিউজেস

6

আমি goto-last-change.elযা ভালভাবে কাজ করতে পেরেছি তা হ'ল ব্যবহার করা হচ্ছে , যা আপনাকে সর্বশেষে সম্পাদনা করে এমন স্থানে ফিরিয়ে আনবে। আমি বাঁধাই পছন্দ করি:

(require 'goto-last-change) ;; download this package and install in load-path
(global-set-key (kbd "C-x C-\\") 'goto-last-change)

2
সমতুল্যভাবে, অতিরিক্ত প্যাকেজের প্রয়োজন ছাড়াই: C-_ C-f C-_(পূর্বাবস্থায় ফিরিয়ে আনুন, পূর্বাবস্থায় ফেরা)।
গিলস 'অশুভ হওয়া বন্ধ করুন'

1
@ গিলস ট্রু, তবে তারপরে আপনার পূর্বাবস্থায় ফিরে আসা স্ট্যাক আরও দুটি উপাদান দ্বারা বৃদ্ধি পেয়েছে। :)
ট্রে জ্যাকসন

1

আপনার বর্ণিত সমস্যাটিকে আমি কীভাবে এড়াতে পারি সে সম্পর্কে আপনার প্রশ্নের উত্তরে (কোডের অন্য কোনও দিকে তাকানো এবং তারপরে আমি যেখানে কাজ করছি সেখানে ফিরে যাচ্ছি) ...

সাধারণত, আমার যখন সংক্ষিপ্তভাবে অন্য কোথাও দেখার দরকার হবে তখন আমি স্ক্রিনটি বিভক্ত করব। তারপরে আমি আসল পর্দায় ফিরে আসতে পারি C-x o, আনস্প্লিট দিয়ে C-x 1এবং আমি আবার স্বাভাবিক অবস্থায় ফিরে আসি।

আমি কোডটিতে আগ্রহের একটি নির্দিষ্ট পয়েন্ট সন্ধান করতে এগিয়ে এবং বিপরীত আই-অনুসন্ধানও ব্যবহার করি। আমি যখন সন্ধান করছি তখন আমি কোড নেভিগেট করার পক্ষে এটি বেশ কার্যকর উপায়।


0

আমি বর্তমানে যেখানে আছি সেখান থেকে কেবল কয়েকটি লাইন স্ক্রল করছি, আমি বিন্দু না নিয়েই উইন্ডোটি স্ক্রোল করতে এটি ব্যবহার করতে পারি:

(defun scroll-in-place (scroll-up)
  "Scroll window up (or down) without moving point (if possible).

SCROLL-Up is non-nil to scroll up one line, nil to scroll down."
  (interactive)
  (let ((pos (point))
        (col (current-column))
        (up-or-down (if scroll-up 1 -1)))
    (scroll-up up-or-down)
    (if (pos-visible-in-window-p pos)
        (goto-char pos)
      (if (or (eq last-command 'next-line)
              (eq last-command 'previous-line))
          (move-to-column temporary-goal-column)
        (move-to-column col)
        (setq temporary-goal-column col))
      (setq this-command 'next-line))))

;;;; ------------------------------------------------------------------------
(defun scroll-up-in-place ()
  "Scroll window up without moving point (if possible)."
  (interactive)
  (scroll-in-place t))

;;;; ------------------------------------------------------------------------
(defun scroll-down-in-place ()
  "Scroll window up without moving point (if possible)."
  (interactive)
  (scroll-in-place nil))

(global-set-key (read-kbd-macro "M-<down>") 'scroll-up-in-place)
(global-set-key (read-kbd-macro "M-<up>") 'scroll-down-in-place)

যদি আমি কোনও ফাইলের সম্পূর্ণ আলাদা বিভাগে চলে যাই (বা সম্পূর্ণ আলাদাভাবে একটি ফাইলের কাছে), আমি মাঝে মাঝে ব্যবহার করি breadcrumbযদিও একই রকম কাজ করে এমন অনেকগুলি প্যাকেজ রয়েছে।

যদি আমার একই সাথে কোডের দুটি ক্ষেত্র দৃষ্টিভঙ্গি দেখতে হয় তবে আমি ফ্রেমটিকে আনুভূমিকভাবে দুটি উইন্ডোতে বিভক্ত করব এবং তারপরে আমি শেষ হয়ে গেলে দ্বিতীয় উইন্ডোটি বাতিল করব।

বেশিরভাগ ক্ষেত্রে, যদিও আমি কেবল দুটি ফ্রেম ব্যবহার করি, একটি হ'ল আমার বর্তমান ওয়ার্কিং ফ্রেম এবং অন্যটি হ'ল আমার রেফারেন্স ফ্রেম, যা একই বা অন্যান্য ফাইলগুলির চারপাশে জাম্পের জন্য ব্যবহৃত হয়।


আপনি যা করতে চান তা যদি সেখানে না গিয়ে বর্তমান পয়েন্টের উপরে বা নীচে দেখতে পান তবে আপনি চক্রটি চালিয়ে যেতে পারেন C-l
asmeurer

0

প্যাকেজ পুনরুদ্ধার পয়েন্ট বাক্সের বাইরে আপনি যা বর্ণনা করেছেন ঠিক সেভাবেই করে।

এটি (কনফিগারযোগ্য) কমান্ডের একটি সেট কার্যকর করা হয়েছে কিনা তা পরীক্ষা করে (ডিফল্টরূপে, চিহ্নিত কমান্ডগুলি, স্ক্রোল এবং পৃষ্ঠা-আপ / ডাউন) এবং তারপরে আপনাকে আঘাত করে পূর্ববর্তী পয়েন্ট (কার্সার) অবস্থানে ফিরে যেতে দেয় keyboard-quit, সাধারণত C-gবা আবদ্ধ হয় ESC

দাবি অস্বীকার: আমি এই প্যাকেজের লেখক।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.