ইমাকস - চিহ্ন-পুরো-বাফার এবং ইনডেন্ট-অঞ্চলের পরে কার্সারটিকে আবার সরিয়ে দিন


4

আমি ইমাক্স নবাগত এবং ইমাসে আমার উত্স কোডগুলি স্বয়ংক্রিয়ভাবে পুনরায় গঠনের জন্য আমি সিজে শর্টকাটে ম্যাপযুক্ত সহজ ম্যাক্রো mark-whole-bufferএবং indent-regionকমান্ডগুলি তৈরি করেছি :

(fset 'format-document
"\C-[xmark-whole-buffer\C-m\C-[xindent-region\C-m")
(global-set-key (kbd "C-j") 'format-document)

যাইহোক, কার্যকর করা হলে, কার্সারের আসল অবস্থানটি হারিয়ে যায় এবং নতুন কার্সার অবস্থান বাফারের শুরুতে সেট করা হয়। এই ম্যাক্রো সঞ্চালন এবং কার্সারটিকে তার আগের অবস্থানে ফিরিয়ে দেওয়ার কীভাবে কোনও উপায় আছে? আমি উবুন্টু ১৪.০৪-তে জিএনইউ / ইম্যাকস 24.3 ব্যবহার করছি।

ধন্যবাদ

উত্তর:


2

ম্যাক্রো ব্যবহারের পরিবর্তে কোনও ফাংশন ব্যবহার করার বিষয়টি বিবেচনা করুন। ফাংশন indent-regionশুরুতে এবং অঞ্চলের সমাপ্ত জন্য আর্গুমেন্ট উপস্থিত রয়েছে। সুতরাং, আপনি (indent-region (point-min) (point-max))পুরো বাফারটি পরিচালনা করতে মূল্যায়ন করতে পারেন । আপনি একই জিনিসটি করতে একটি সাধারণ ফাংশন ব্যবহার করতে পারেন:

(defun my-format-document ()
(interactive)
  (indent-region (point-min) (point-max)) )

যদিও এখানে প্রয়োজন নেই, ভবিষ্যতে আপনার এমন কিছু ব্যবহার করতে হতে পারে save-excursionযা আপনাকে মূল পয়েন্টে ফিরিয়ে আনবে।


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