রিং মেরে যোগ না করে ব্যাকস্পেস


12

সিআরটিএল + ব্যাকস্পেস বা সিটিআরটিএল + ডেল ব্যবহার করে মুছে ফেলা পাঠ্যটিকে কিলের রিংটিতে যুক্ত করা হয়।
কীভাবে আমি এটি হতে রোধ করতে পারি? মুছে ফেলার সাথে কিলের রিংয়ে পাঠ্যের প্রতিটি টুকরো পাঠানোর দরকার নেই।

পার্শ্ব প্রশ্ন: যাইহোক এই ডিফল্ট সেটিংসের উদ্দেশ্য কী? :)


পার্শ্ব প্রশ্ন সম্পর্কে: সম্ভবত আপনি যা না করে মোছার একটি ব্যাকআপ কপি থাকতে পারে undo। বন্য অনুমান, যদিও।
ম্যানুয়েল উবার্টি

উত্তর:


7

ডকুমেন্টেশন অনুযায়ী:

<C-delete>কমান্ড শব্দটি (গ্লোবাল-ম্যাপে পাওয়া যায়) চালায়, এটি একটি ইন্টারেক্টিভ সংকলিত লিস্প ফাংশন ‘simple.el’

এটা আবদ্ধ <C-delete>, M-d

(কিল-ওয়ার্ড এআরজি)

একটি শব্দের শেষের মুখোমুখি হওয়া অবধি অক্ষরগুলিকে এগিয়ে দিন। আর্গুমেন্ট এআরজি দিয়ে, এটি বহুবার করুন।

এখন, সোর্স কোডটি ব্রাউজ করুন:

(defun kill-word (arg)                                                                                                     
  "Kill characters forward until encountering the end of a word.                                                           
With argument ARG, do this that many times."
  (interactive "p")
  (kill-region (point) (progn (forward-word arg) (point))))

তারপরে, kill-regionফাংশনটির জন্য ডকুমেন্টেশনের অভ্যন্তরে :

বিন্দু এবং চিহ্নের মধ্যে পাঠ্যকে ("কাটা") হত্যা করুন।
This deletes the text from the buffer and saves it in the kill ring। কমান্ড [ইয়াঙ্ক] সেখান থেকে এটি পুনরুদ্ধার করতে পারে। (আপনি যদি অঞ্চলটি না মেরে সেভ করতে চান তবে [কিল-রিং-সেভ] ব্যবহার করুন))

[...]

লিপ্প প্রোগ্রামগুলির পাঠ্য হত্যার জন্য এই ফাংশনটি ব্যবহার করা উচিত। (পাঠ্য মুছতে, ব্যবহার করুন delete-region))

এখন, আপনি যদি আরও এগিয়ে যেতে চান তবে খুনের আংটির অনুলিপি ছাড়াই মোছার জন্য এটি আপনি ব্যবহার করতে পারেন এমন কিছু ফাংশন:

(defun my-delete-word (arg)
  "Delete characters forward until encountering the end of a word.
With argument, do this that many times.
This command does not push text to `kill-ring'."
  (interactive "p")
  (delete-region
   (point)
   (progn
     (forward-word arg)
     (point))))

(defun my-backward-delete-word (arg)
  "Delete characters backward until encountering the beginning of a word.
With argument, do this that many times.
This command does not push text to `kill-ring'."
  (interactive "p")
  (my-delete-word (- arg)))

(defun my-delete-line ()
  "Delete text from current position to end of line char.
This command does not push text to `kill-ring'."
  (interactive)
  (delete-region
   (point)
   (progn (end-of-line 1) (point)))
  (delete-char 1))

(defun my-delete-line-backward ()
  "Delete text between the beginning of the line to the cursor position.
This command does not push text to `kill-ring'."
  (interactive)
  (let (p1 p2)
    (setq p1 (point))
    (beginning-of-line 1)
    (setq p2 (point))
    (delete-region p1 p2)))

; bind them to emacs's default shortcut keys:
(global-set-key (kbd "C-S-k") 'my-delete-line-backward) ; Ctrl+Shift+k
(global-set-key (kbd "C-k") 'my-delete-line)
(global-set-key (kbd "M-d") 'my-delete-word)
(global-set-key (kbd "<M-backspace>") 'my-backward-delete-word)

সৌজন্যে এরগোএম্যাকস


ধন্যবাদ, এটি সমাধান করেছে। পার্শ্ব প্রশ্ন সম্পর্কে কি? : পি
ড্যানিয়েল হিটজেল

3
@ ড্যানিয়েল হিটসেল দুঃখিত, আমার পাশের প্রশ্নের উত্তর নেই :)
নসুকামি _

সুতরাং আমি একা নই: ডি
ড্যানিয়েল হিটজেল

4

যেহেতু ইমাকস 24, কোনও কনফিগারেশন ছাড়াই আপনি যে কোনও পাঠ্যকে কিলের রিংয়ে এটি নির্বাচন করে এবং তারপরে টিপে Backspaceবা টিপে মুছতে পারেন Delete। চিহ্নটি সক্রিয় থাকাকালীন, এই কীগুলি কার্সারের আগে / পরে কেবল অক্ষর মোছার পরিবর্তে অঞ্চলটি মুছে দেয়।

এটি, আপনি মুছে ফেলতে চান এমন পাঠ্যের এক প্রান্তে সরান, Ctrl+ টিপুন Space, অন্য প্রান্তে যান এবং চাপুন Backspace(বা Delete) হাইলাইটেড অঞ্চলটি মুছুন। অথবা এক প্রান্তে চলে Shiftযান, আপনি অন্য প্রান্তে যেতে আন্দোলনের কীগুলি ব্যবহার করার সময় ধরে থাকুন এবং টিপুন Backspace


ওয়েল, ম্যাকসগুলিতে ইমাস 25.1 এর ক্ষেত্রে আমার পক্ষে এটি নয়।
এনভিউন

0

আমার একই সমস্যা ছিল এবং এটিকে আরও সহজে সমাধান করা হয়েছে:

(global-set-key (kbd "<backspace>")
          '(lambda () (interactive) (backward-delete-char-untabify 1 nil)))

কলিং (backward-delete-char-untabify 1 nil)ইমাসকে একটি চরকে পিছনে-মুছতে বলে (এটি 1প্যারামিটার) এবং এটি রিংয়ে অনুলিপি করা থেকে বিরত থাকে (এটি nilপ্যারামিটার)। আপনার একটি ল্যাম্বডা (অর্থাত্ বেনামে) ফাংশন প্রয়োজন কারণ আপনি কোনও কীকে পরামিতি সহ কোনও ফাংশন আবদ্ধ করছেন।

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