আমি কীভাবে বর্তমান লাইনটি ইম্যাক্সে মুছতে পারি?


122

ভি এর সমপরিমাণটি কি dd? আমি বর্তমান লাইনটি মুছতে চাই। চেষ্টা করা CTRL+ kতবে এটি কেবল বর্তমান অবস্থান থেকে মুছে ফেলা হয়

উত্তর:


212
C-a # Go to beginning of line
C-k # Kill line from current point

এছাড়াও আছে

C-S-backspace   # Ctrl-Shift-Backspace

যা প্রার্থনা করে M-x kill-whole-line

আপনি যদি কোনও আলাদা গ্লোবাল কী বাঁধাই সেট করতে চান, আপনি এটি ~ / .emacs এ স্থাপন করতে চান:

(global-set-key "\C-cd" 'kill-whole-line)     # Sets `C-c d` to `M-x kill-whole-line`

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

C-u 5 C-S-backspace    # deletes 5 whole lines
M-5 C-S-backspace      # deletes 5 whole lines

C-u C-S-backspace      # delete 4 whole lines. C-u without a number defaults to 4

C-u -5 C-S-backspace   # deletes previous 5 whole lines
M--5 C-S-backspace     # deletes previous 5 whole lines

কখনও কখনও আমি C-x zসহায়ক বলে মনে করি:

C-S-backspace         # delete 1 whole line
C-x z                 # repeat last command
z                     # repeat last command again. 
                      # Press z as many times as you wish. 
                      # Any other key acts normally, and ends the repeat command.

এইটা কাজ করে. একটি কমান্ড ব্যবহার করে এটি করার উপায় আছে? এটি করার জন্য আমাকে কি একটি কাস্টম কী বাঁধাই করতে হবে?
মনোজ গোবিন্দন

14
জানতাম না C-x z, আসলেই দুর্দান্ত। এবং সুন্দর এবং সুনির্দিষ্ট উত্তর বিটিডব্লিউ।
slu

2
এছাড়াও C-k C-kকিন্ডা d$ S-jভিমে একটি মত কাজ করে , কিন্তু এটি লাইনগুলি মোটামুটি সুন্দরভাবে মুছতে পারে।
থিও বেলার

কেন জায়গা নেই C-cd?
এলিয়ট গোরোকভস্কি

@ রেনজি: স্থানটি alচ্ছিক।
আনটবু

11

আপনি যদি লাইনটি হত্যা করতে না চান (এটি এটি ওএস ক্লিপবোর্ডে ফেলে দেয় এবং রিংটি মেরে ফেলবে) তবে কেবল এটি মুছুন:

(defun delete-current-line ()
  "Delete (not kill) the current line."
  (interactive)
  (save-excursion
    (delete-region
     (progn (forward-visible-line 0) (point))
     (progn (forward-visible-line 1) (point)))))

3

কিল রিংয়ের মধ্যে না রেখে লাইনটি মুছে ফেলার আরেকটি পদ্ধতি:

(defun delete-current-line ()
  "Deletes the current line"
  (interactive)
  (delete-region
   (line-beginning-position)
   (line-end-position)))

এটি ফাঁকা লাইনের শুরুতে পয়েন্টটি ছেড়ে যাবে leave এ থেকেও মুক্তি পাওয়ার জন্য, আপনি (delete-blank-lines)ফাংশনটির শেষের মতো কিছু যুক্ত করতে চাইতে পারেন , উদাহরণস্বরূপ, এটি সম্ভবত কিছুটা স্বজ্ঞাত:

(defun delete-current-line ()
 "Deletes the current line"
 (interactive)
 (forward-line 0)
 (delete-char (- (line-end-position) (point)))
 (delete-blank-lines))

1

কোনও কিছু বাছাই না করেই লাইনের যে কোনও বিন্দু থেকে একটি সম্পূর্ণ লাইন মুছে ফেলার (হত্যা) সবচেয়ে দ্রুত / সহজতম উপায়:

C-w  ; kill-region

এটি নির্বাচিত যা কিছু মুছে ফেলার ক্ষেত্রে বহুমুখী, বা কিছুই না নির্বাচিত হলে ডিফল্টরূপে একটি লাইন।

প্রশ্নটি দেওয়া, আপনি সম্ভবত ভিমের "ইয়াঙ্ক" প্রতিরূপ করতে আগ্রহী, yy(যদিও এমাক্স পার্লেন্সে একটি "ইয়ঙ্ক" বিভ্রান্তিকরভাবে ভিমের "পুট", p) রয়েছে) এই:

M-w  ; kill-ring-save

সুন্দর এবং একত্রিত, এবং মনে রাখা বেশ সহজ। এমনকি ভিমের সাথে সামান্য মিল রয়েছে i_CTRL-W

উপরের যেকোন একটির সাথে একবার আপনি কিল রিংয়ে কিছু রাখলে আপনি সম্ভবত এটি "ইয়াঙ্ক" (পেস্ট) করতে চান:

M-y  ; yank-pop

(দ্রষ্টব্য যে সিএস-ব্যাকস্পেস টার্মিনাল ইমাসে কাজ করতে পারে না))


1

লাইন মুছে ফেলার জন্য পৃথক কী থাকা বা উপসর্গ-যুক্তি চাওয়ার চেয়ে। আপনি ক্রোকস-স্মার্ট-কিল-লাইন ব্যবহার করতে পারেন যা "লাইনের শেষ প্রান্তে হত্যা করবে এবং পরবর্তী কলটিতে পুরো লাইনটি মেরে ফেলবে"। তবে আপনি যদি এর deleteপরিবর্তে পছন্দ করেন তবে killনীচের কোডটি ব্যবহার করতে পারেন।

পয়েন্ট-টু-স্ট্রিং অপারেশনের জন্য (কিল / ডিলিট করুন) আমি জপ-টু-চর ব্যবহার করার পরামর্শ দিই

(defun aza-delete-line ()
  "Delete from current position to end of line without pushing to `kill-ring'."
  (interactive)
  (delete-region (point) (line-end-position)))

(defun aza-delete-whole-line ()
  "Delete whole line without pushing to kill-ring."
  (interactive)
  (delete-region (line-beginning-position) (line-end-position)))

(defun crux-smart-delete-line ()
  "Kill to the end of the line and kill whole line on the next call."
  (interactive)
  (let ((orig-point (point)))
    (move-end-of-line 1)
    (if (= orig-point (point))
        (aza-delete-whole-line)
      (goto-char orig-point)
      (aza-delete-line))))

উৎস

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