জিএনইউ ইমাক্সে লাইনে কীভাবে স্ক্রোল করবেন?


87

এটিকে সহজভাবে বলতে গেলে, আমি ভিএম এবং বেশিরভাগ অন্যান্য সম্পাদকের মতো ইম্যাকগুলিতে স্ক্রোলিং নেওয়ার চেষ্টা করছি; যখন আমি উদাহরণস্বরূপ আছি, নীচে / উপর থেকে দুই লাইন, এবং আমি নিচে প্রেস / আপ ( Ctrl- p, n, , ) এটি শুধুমাত্র এক লাইন আপ বা ডাউন, না অর্ধেক পর্দা যায়।


4
আমি নিশ্চিত যে এটি কখনই স্থির হবে না। এটি সর্বশেষ 90 এর দশকে ফিরে আসার ঘাটতি ছিল এবং এটি 2010 সালে এখনও এটি ভেঙে গেছে
স্টিভ কুও

12
@ স্টিভ কুও: বাশিং ছেড়ে দিন - এটি নকশাকৃত হিসাবে কাজ করছে , তবে একটি সাধারণ সেটিংসের মাধ্যমে পরিবর্তন করা যেতে পারে (বা "স্থির")।
টেডি

17
@ টেডি এবং এই "সাধারণ সেটিং" কী?
স্টিভ কুও

4
@ টেডি হ্যাঁ, এটা কি?
স্কুটার

@ রুক: আসলে আমি ইমাসের z.অনুভূতি পেতে আরও বেশি ঘন ঘন ভিএম ব্যবহার করার পরামর্শ দেব ;-) এটি অস্বাভাবিক হতে পারে তবে আইএমএইচও লাইন দ্বারা স্ক্রোলিং লাইনের চেয়ে এটি আসলে বেশি কার্যকর।
মার্কিন উইন্ডল

উত্তর:


52

EmacsWIki তে কিছু পরামর্শ দেখুন:

(setq স্ক্রোল-পদক্ষেপ 1
      স্ক্রোল-রক্ষণশীলভাবে 10000)

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

4
কেন এটি প্রস্তাবিত নয় তা আমি দেখতে পাচ্ছি না। আমি অনুরূপ কনফিগারেশন ব্যবহার করেছি এবং এটি বেশ ভালভাবে কাজ করছে। আপনাকে আরও নিশ্চিত করার জন্য, এই স্ক্রোল-পদক্ষেপের দস্তাবেজটি দেখুন (শেষ বাক্যটি লক্ষ্য করুন): * পয়েন্ট যখন সরে যায় তখন উইন্ডো স্ক্রোল করার চেষ্টা করার জন্য লাইনের সংখ্যা। যদি এটি ফ্রেমে পয়েন্ট ফিরিয়ে আনতে ব্যর্থ হয় তবে পয়েন্টটি পরিবর্তে কেন্দ্রিক হয়। এটি যদি শূন্য হয় তবে ফ্রেম বন্ধ হয়ে যাওয়ার পরে পয়েন্টটি সর্বদা কেন্দ্রীভূত হয়। আপনি সবসময় একটি সময়ে একটি লাইন হতে স্ক্রলিং চান, আপনি `স্ক্রোল রক্ষণশীল 'একটি বড় মান বরং এই সেট চেয়ে 1. সেট করা উচিত
an0

হ্যাঁ, আরও কিছুটা ঘুরে দেখছি আমি উইকিতে সেই সতর্কতামূলক নোটটিকে ব্যাক আপ করতে আরও বেশি কিছু দেখতে পাচ্ছি না। উদাহরণস্বরূপ, গুগল অনুসন্ধানের মাধ্যমে একাধিক .emacs ফাইলগুলিতে স্ক্রোল-পদক্ষেপটি বেশ সাধারণ বলে মনে হচ্ছে। সম্ভবত উইকি লেখক ইমাসের একটি পুরানো সংস্করণ উল্লেখ করছেন?
Ars

কখনও কোন সমস্যা ছিল scroll-conservatively। এর বিরুদ্ধে সতর্কতাগুলি কিছুটা অদ্ভুত - এটি যদি সমস্যা সৃষ্টি করে তবে আপনার init.el থেকে লাইনটি সরিয়ে ফেলা সহজ!
dbr

4
@ars গ্রুপ. google.com/group/gnu.emacs.help/browse_thread/thread/… সুতরাং ইমাস <23.1 এবং বড় ফাইলের সাহায্যে এটি মাঝে মাঝে কার্সারটিকে মাঝখানে ফেলে দিতে পারে, যা সবচেয়ে বড় সমস্যা বলে মনে হয় না
ডিবিআর

51

আপনি যদি স্ক্রিনটি ঠিক অবস্থান করতে চান তবে আপনি Ctrl-L ব্যবহার করতে পারেন।

  • ডিফল্টরূপে এটি পর্দার মাঝখানে বর্তমান রেখাকে অবস্থান করে।

  • ESC 0 Ctrl-L শীর্ষে বর্তমান লাইনটি অবস্থান করে।


14
এটিকে ভুল হিসাবে গ্রহণ করবেন না, তবে এটি লাইন দ্বারা স্ক্রোলিং লাইনের সাথে কী করেছে? (প্রশ্ন অর্থাৎ)
দাড়কাক

9
একটি বিকল্প ওয়ার্কফ্লো যা (লেখকের মতে) হাতে থাকা সরঞ্জামের সাথে আরও প্রাকৃতিকভাবে অফার করা যুক্তিসঙ্গত। তবে আপনাকে এটিকে একটি দাবি অস্বীকার করে উপস্থাপন করা উচিত এবং যদি সম্ভব হয় তবে এই পদ্ধতিটি কেন "আরও ভাল"।
dmckee --- প্রাক্তন-মডারেটর বিড়ালছানা

4
@ ডিএমকেই - আমি ভিম ... উহম, বহুদিন ব্যবহার করেছি এটি দিয়ে খুব ভাল। যাইহোক, যেহেতু আমি লিসপ দিয়ে কিছু করছি, আমি নিজেকে কমপক্ষে আবার ইম্যাক্সের সাথে আঁকড়ে ধরতে বাধ্য করতে শুরু করেছি এবং এই "বিকল্প" চলার উপায়টি আমার কাছে এই মুহুর্তে খুব বেশি। টিউটোরিয়ালটি পড়ুন, এটি জানুন ... তবে, এটি খুব অদ্ভুত, ইমো। প্রাকৃতিক নয়।
দাড়কাক

4
@ আইডিগাস: অবশ্যই এটি ন্যায্য, এবং আপনাকে স্টার ব্লুয়ের পরামর্শ নেওয়ার দরকার নেই। তবে আমি মনে করি এই ধরণের উত্তর কার্যকর হতে পারে যদি এটি সম্মুখভাগে থাকে এবং এতে একটি বাধ্যতামূলক ব্যাখ্যা অন্তর্ভুক্ত থাকে।
ডিএমকেকে --- প্রাক্তন মডারেটর বিড়ালছানা

4
হ্যাঁ, এটি বেশ কয়েকটি কীস্ট্রোকের কাজ করে। (আমি "কীভাবে লাইন দিয়ে লাইন স্ক্রোল করব" গুগল করেছি কারণ এটি "আমার যেখানে কোড চান সেখানে কীভাবে যেতে হবে" কীভাবে অনুসন্ধান করার একটি দরকারী উপায় বলে মনে হয়েছিল।) ধন্যবাদ!
এন্নেল

42

আমি একটু পক্ষের কাছে দেরি করে ফেলেছি, কিন্তু আপনি যদি একটি প্যাকেজ ইনস্টল করার কিছু মনে না করেন তাহলে মসৃণ-স্ক্রলিং ( GitHub , এছাড়াও উপলব্ধ Melpa ) হতে পারে আপনি যা খুঁজছেন তা - এটি অবশ্যই আমার জন্য কাজ করে।

একবার এটি ইনস্টল করার পরে আপনি নিম্নলিখিতটি আপনার init.el এ পপ করতে পারেন:

(require 'smooth-scrolling)
(smooth-scrolling-mode 1)
(setq smooth-scroll-margin 5)

শেষ লাইনটি alচ্ছিক; এটি এর চেয়ে স্ক্রিন প্রান্তের নিকটে স্ক্রোলিং শুরু হয়, তাই আপনি সর্বদা পয়েন্টটির চারপাশে কিছুটা প্রসঙ্গ পেয়েছেন। স্বাদ সামঞ্জস্য করুন।


7
আমি যখন এটি পড়ি তখন কাঁদতে কাঁদতে কাঁপতে। খুব নিশ্চিত যে এটি প্রশ্নের উত্তর।
এরিক ব্রাউন 21

4
হ্যাঁ, একজন ভিম ব্যবহারকারী হিসাবে ইমাকস চেষ্টা করছেন এটি ঠিক আমি যা খুঁজছিলাম।
juanjux

আমি এই সমাধান এবং স্ক্রোল-পদক্ষেপ সমাধান উভয়ই ব্যবহার করেছি, মিশ্রণটি আকর্ষণীয় যখন আমি নীচে থেকে 6th ষ্ঠ লাইনে চলে যাই এবং নীচে টিপুন তবে এটি একটি লাইন এবং উপরে থেকে একই স্ক্রোল করবে।
এমাদ এলসায়ীদ

দুঃখের বিষয়, মসৃণ-স্ক্রোলিং এখন প্রায়শই ব্যর্থ হয় যখন আপনি যখন আপনার ফাইলের চারপাশে ঝাঁপিয়ে পড়ে থাকেন, উদাহরণস্বরূপ, ঘটনার মোড বা সন্ধান: উভয়ই পয়েন্টটি অফ স্ক্রিন আনতে পারে এবং আপনার ফলাফলটি প্রদর্শনের জন্য আপনাকে সিএল চাপতে হবে।
এরিক নোলস

27

আমার সমাধানটি ইমাকের ডিফল্ট স্ক্রোলিংটি পরিবর্তন না করে ম্যাক্রো থেকে একটি মূল সিকোয়েন্স কমান্ড তৈরি করা। আপনি চান এমন সময়ে একবারে একটি লাইন স্ক্রোল করার আপনার পক্ষে সুবিধাজনক উপায়। আদর্শ নয়, তবে অত্যন্ত সহজ। এটি কেবল ঘটে যায় যে এম- (↓) এবং এম- (↑) উপলব্ধ, তাই আমি এটি ব্যবহার করেছি।

এইভাবে আমি এটি করেছি। প্রথমত, আপনাকে এক লাইন স্ক্রোলগুলির জন্য উপরে এবং নীচে ম্যাক্রো রেকর্ড করতে হবে।

ম্যাক্রো শুরু করুন

C-x ( 

একটি নীচে স্ক্রোল

C-u 1 C-v

ম্যাক্রো বন্ধ করুন

C-x )

একটিকে স্ক্রোল আপ করতে, ব্যবহার করুন

C-u 1 M-v

এরপরে আপনার ম্যাক্রোর নাম রাখা দরকার।

M-x name-last-kbd-macro

অনুরোধ জানানো হলে একটি নাম দিন:

down-one-line

তারপরে সেই কমান্ডের নামের সাথে একটি মূল অনুক্রম বাঁধতে কেবল নিম্নলিখিতটি ব্যবহার করুন:

M-x global-set-key

এবং অনুরোধ করার পরে, এর মতো কিছু ব্যবহার করুন:

M-(down arrow)

তারপরে এটি আপনাকে জিজ্ঞাসা করবে যে আপনি কোন আদেশটি বাঁধতে চান এবং আপনার এটি আগে নামকরণ করা উচিত, উদাহরণস্বরূপ, ডাউন-ও-লাইন।

এই তথ্যটি আমি এখানে পেয়েছি। আপনি আপনার ম্যাক্রো .emacs ফাইলটিতে যুক্ত করার জন্য নীচে এবং অন্য কোথাও নির্দেশাবলী পেতে পারেন।

ম্যাক্রো সংজ্ঞা ব্যাখ্যার জন্য এখানে

কীভাবে স্ক্রোলিং নিয়ন্ত্রণ করবেন তা এখানে


23

আমি .emacs2000 এ থেকে এটি আমার ফাইলে ব্যবহার করছি ।

(global-set-key (quote [M-down]) (quote View-scroll-line-forward))
(global-set-key (quote [M-up]) (quote View-scroll-line-backward)) 

এইভাবে, আমি যা করছি তার উপর নির্ভর করে আমি ইমাসকে ডিফল্ট আচরণের পাশাপাশি একবারে একটি লাইন স্ক্রোল করতে পারি।

এই কাজ কমপক্ষে গনুহ গিয়ে Emacs 22. আমি সম্প্রতি এ গিয়ে Emacs 24 আপগ্রেড এবং আবিষ্কার করেন যে পর্যন্ত View-scroll-line-forwardএবং View-scroll-line-backwardএখন আর পাওয়া যায়। কিছু শিকারের পরে, আমি আবিষ্কার করেছি যে স্ক্রোল-আপ-লাইন এবং স্ক্রোল-ডাউন-লাইন কাজ। সুতরাং আপনি যদি ইমাস 24 ব্যবহার করছেন তবে আপনি এটি ব্যবহার করতে পারেন।

(global-set-key (quote [M-down]) (quote scroll-up-line))
(global-set-key (quote [M-up]) (quote scroll-down-line)) 

আমি বেশিরভাগই ইমাসকে 23 এড়িয়ে গেছি, সুতরাং যদি আপনি যে সংস্করণটি ব্যবহার করছেন সেটি যদি হয় তবে আপনি উপরের দুটিটি নিয়েই পরীক্ষা করতে পারেন।

দ্রষ্টব্য: scroll-up-lineআসলে এক লাইন নীচে স্ক্রোল করে , কারণ বাফারটি এক লাইনে উপরে সরানো হচ্ছে।


: ধন্যবাদ, এই কাজ ... কিন্তু আমি অন্য ইস্যু আমি এখানে সম্পর্কে জিজ্ঞাসা করেছি আঘাত stackoverflow.com/questions/19256551/...
scorpiodawg

13

স্ক্রোলিং ক্রিয়াকলাপ সম্পাদন করতে আমি আমার তীরচিহ্নগুলি পুনর্নির্মাণ করি।

(global-set-key [up] (lambda () (interactive) (scroll-down 1)))
(global-set-key [down] (lambda () (interactive) (scroll-up 1)))

(global-set-key [left] (lambda () (interactive) (scroll-right tab-width t)))
(global-set-key [right] (lambda () (interactive) (scroll-left tab-width t)))

4
এটি ঠিক আমি যা খুঁজছিলাম তা নয়। আমি স্ক্রিনটি স্ক্রোল করার জন্য চাই না (যেমন এটি স্ক্রোল-লকটি সক্ষম করা চাই) তবে পর্দার জন্য "সরানো" ... ওহ, ... কীভাবে নোটপ্যাড এটি করেন :)
রুক

12

সরলরা এটি করে:

(global-set-key [M-up] (lambda () (interactive) (scroll-up 1)))
(global-set-key [M-down] (lambda () (interactive) (scroll-down 1)))

তারপরে মেটা কার্সার আপ উপরে চলে যায় এবং মেটা কার্সর নীচে নেমে আসে।

কিউইডি উপরের সমস্ত লোকেরা কী ধূমপান করছিল তা নিশ্চিত নন!


বা, যেমন আমি সবেমাত্র পোস্ট করেছি, আপনি স্ক্রোল-আপ-লাইন এবং স্ক্রোল-ডাউন-লাইন ব্যবহার করতে পারেন।
রাজেশ জে আদভানি

5

একটি ভাল সিটিআরএল-আপ, সিআরটিএল-ডাউন স্ক্রোলিং আচরণ সক্ষম করতে আমার .emacs ফাইলটিতে নিম্নলিখিতগুলি রয়েছে। আমি এটি মাউসওয়েলের জন্যও ব্যবহার করি।

(defun scroll-down-in-place (n)
  (interactive "p")
  (previous-line n)
  (scroll-down n))

(defun scroll-up-in-place (n)
  (interactive "p")
  (next-line n)
  (scroll-up n))

(global-set-key [mouse-4] 'scroll-down-in-place)
(global-set-key [mouse-5] 'scroll-up-in-place)
(global-set-key [C-up] 'scroll-down-in-place)
(global-set-key [C-down] 'scroll-up-in-place)

আমি এটি চেষ্টা করেছি, তবে এটি যে আচরণটি আমি খুঁজছিলাম তা নয়। এটি আপনাকে স্ক্রিনের শেষ লাইনে যেতে সক্ষম করে, তবে নীচে ক্লিক করার পরে এটি "বেশ কয়েকটি লাইন দিয়ে পর্দাটি ঝাঁকুনি" করবে ... কীভাবে এটি আরও ভাল ব্যাখ্যা করবেন তা জানেন না।
রক

আমি মাউস হুইল ম্যাপিং ধারণা পছন্দ করি। কিন্তু বিল্ট-ইন ভিউ-স্ক্রোল-লাইন-ফরোয়ার্ড এবং ভিউ-স্ক্রোল-লাইন-পিছনে (বা আরও নতুন স্ক্রোল-আপ-লাইন এবং স্ক্রোল-ডাউন-লাইন) নিজের ফাংশনগুলি সংজ্ঞায়িত করার পরিবর্তে কাজ করবে না?
রাজেশ জে আদভানি

2

"ভিআইএম" স্ক্রোলিংটি আপনার .emacs ফাইলটিতে রাখার জন্য:

(defun next-line-and-recenter () (interactive) (next-line) (recenter))
(defun previous-line-and-recenter () (interactive) (previous-line) (recenter))
(global-set-key (kbd "C-n") 'next-line-and-recenter)
(global-set-key (kbd "C-p") 'previous-line-and-recenter)

@ ম্যাট এটি আমার জন্য কাজ করে
jjpikoov

2

যেহেতু এটি ব্যবহার করতে বিরক্তিজনক হতে পারে M-up, M-downকারণ এটি org-মোডে হস্তক্ষেপ করে যা এই আদেশগুলি ওভারলোড করে। এই সমস্যাটি এড়াতে আমি ব্যক্তিগতভাবে সেই আদেশগুলি ব্যবহার করি যা সংযুক্ত করে M-page-up M-page-down"" এখানে আমি স্ক্রোলটি উপরে এবং নীচে 1 লাইনে সংজ্ঞায়িত করেছি।

;;;scroll by `number-of-lines' without the cursor attached to the screen
(global-set-key [M-prior] (lambda () (interactive) (let ((number-of-lines 1))
                                                  (scroll-down number-of-lines)
                                                  (forward-line (- number-of-lines)))))
(global-set-key [M-next] (lambda () (interactive) (let ((number-of-lines 1))
                                                  (scroll-up number-of-lines)
                                                  (forward-line number-of-lines))))

;;;scroll by `number-of-lines' with the cursor attached to the screen
(global-set-key [S-M-prior] (lambda () (interactive) (let ((number-of-lines 1))
                                                  (scroll-down number-of-lines))))
(global-set-key [S-M-next] (lambda () (interactive) (let ((number-of-lines 1))
                                                  (scroll-up number-of-lines))))

1

M-x customize-variable scroll-conservatively

এটি 1 এ সেট করুন।

যদিও আপনি সত্যিই এটি করতে চান না।


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

4
আপনি যদি আমাদের জন্য noobs বানান করতে পারেন তবে কেন এটি ভাল ধারণা নয় তা কার্যকর হবে।
ড্যানিয়েল

কেন এটি ভাল ধারণা নয় তা আমি কেবল ভাবতে পারি যে স্ক্রোলিং ধীর হয়ে যায়: আপনাকে সর্বদা ডিফল্ট অর্ধ-স্ক্রিনফুলের পরিবর্তে একবারে একটি লাইনে স্ক্রোল করতে হবে। (আমি অনুমান করি?)
শ্রীভাতসার

1

আপনি যদি কোনও স্ক্রোল-এর মতো প্রভাব তৈরি করার জন্য দ্রুত উপায় খুঁজছেন তবে প্রবেশ করুন C-nএবং C-lধারাবাহিকভাবে প্রবেশ করুন যা কার্সারটিকে নীচে নামায় এবং তারপরে এটি কেন্দ্র করে।


0

আপনি যদি .xsession এ ইম্যাক্স শুরু করেন তবে আমার ক্ষেত্রে রক্ষণশীলভাবে 100+ তে স্ক্রোল সেটিংটি কাজ করবে না এবং স্ক্রোল-ধাপ 1ও কাজ করবে না তবে আপনি যদি এক্স এর পরে ইম্যাক শুরু করেন তবে এটি কার্যকর হয়।


0

যদি আপনি মাউসটি ব্যবহার করতে আপত্তি করেন না এবং কোনও স্ক্রোল হুইল করেন তবে আপনি পরিবর্তনশীল মাউস-হুইল-স্ক্রোল-পরিমাণকে কাস্টমাইজ করতে পারেন:

সি ভি ভি মাউস-হুইল-স্ক্রোল-পরিমাণ (কাস্টমাইজ ক্লিক করুন, মানকে "নির্দিষ্ট রেখার নির্দিষ্ট" 1 এ প্রয়োগ করুন, প্রয়োগঅ্যান্ডসেভ করুন))

অথবা লাইন .emacs যোগ করুন: '(মাউস-চাকা-স্ক্রোল-পরিমাণ' (1 ((শিফট)। 1) ((মেটা)) ((নিয়ন্ত্রণ)। পাঠ্য-স্কেল)))

Https://www.emacswiki.org/emacs/Scrolling এ অনেকগুলি সম্ভাব্য তালিকাভুক্ত রয়েছে

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