سؤال

لقد قرأت في عدة أماكن أن وظائف المستطيل في emacs مفيدة جدًا.لقد قرأت القليل عنهم، ولا أستطيع أن أفهم السبب.أعني، عندما تريد إنهاء فقرة، تضع علامة على الصف/العمود الأول ثم الأخير، وهذا في الواقع مستطيل، أليس كذلك؟ولكن لا يزال بإمكانك استخدام القتل العادي ...

إذن ما نوع التحولات التي ستفعلها معهم؟

هل كانت مفيدة؟

المحلول

إذا كان لديك بيانات في أعمدة في ملف نصي باستخدام M-x delete-rectangle أو M-x kill-rectangle يمكنك حذف عمود واحد من البيانات.بصورة مماثلة، M-x yank-rectangle سيتم لصقه في عمود من النص.

خذ على سبيل المثال النص التالي:

1. alligator    alphorn
2. baboon       bugle
3. crocodile    cornet
4. dog          didgeridoo
5. elephant     euphonium 
6. fish         flugelhorn   
7. gopher       guitar

اختر من a للتمساح إلى g للجيتار.بداية ونهاية التحديد تحدد زاويتين متقابلتين للمستطيل.يدخل M-x kill-rectangle ويكون لديك على الفور:

1. alphorn
2. bugle
3. cornet
4. didgeridoo
5. euphonium 
6. flugelhorn
7. guitar

بعد ذلك، ضع العلامة في نهاية السطر العلوي، وأضف مسافات قليلة إذا لزم الأمر، ثم أدخل M-x yank-rectangle وتا دا!لقد قمت بإعادة ترتيب الأعمدة:

1. alphorn      alligator    
2. bugle        baboon       
3. cornet       crocodile    
4. didgeridoo   dog          
5. euphonium    elephant     
6. flugelhorn   fish         
7. guitar       gopher       

نصائح أخرى

أحب استخدام المستطيل لغرضين رئيسيين، أو إدراج نفس النص في كل سطر، أو قتل عمود من النص (على غرار إجابة ديف ويب).

هناك اختصاران مفيدان لذلك، C-x r k سوف تقتل المستطيل، و C-x r t للإدراج (توجد أوامر مستطيلة أخرى ذات ملف C-x r البادئة، ولكن هذه هي التي أستخدمها).

لنفترض أنك تريد أخذ بعض التعليمات البرمجية وتنسيقها بحيث يمكنك نشرها في منشور Stack Overflow...تحتاج إلى البادئة بـ 4 مسافات.لذا اذهب إلى بداية السطر الأول، C-SPC لوضع علامة، ثم انتقل إلى بداية السطر الأخير و C-x r t <SPC> <SPC> <SPC> <SPC> <RET>, ، وهناك لديك!ثم يمكنك فقط نسخه ولصقه في Stack Overflow.لقد واجهت مواقف أكثر تعقيدًا حيث يكون ذلك مفيدًا، حيث يكون لديك بالفعل نص تريد إدراجه في كل سطر في مكان معين.

لذا فإن الموقف الآخر مثل موقف Dave Webb، إذا كنت تريد قتل مستطيل، فاستخدمه C-x r k رغم ذلك، لأنه أسرع كثيرًا ;-)

وأيضاً بحسب كلامي بطاقة مرجعية التي قمت بطباعتها عندما بدأت لأول مرة، يمكنك القيام بما يلي:

  • C-x r r:نسخة إلى السجل
  • C-x r y:نثر مستطيل
  • C-x r o:افتح مستطيلاً، مع تحريك النص إلى اليمين (مهما كان ذلك يعني...)
  • C-x r c:إفراغ مستطيل (أفترض أن هذا يعني استبداله بمسافات، ولكن عليك تجربته لترى)
  • C-x r t:بادئة مع النص (كما هو موضح أعلاه)
  • C-x r k:القتل (كما هو موضح أعلاه)

في emacs24+ هناك أيضًا وظيفة لترقيم الخطوط:

(rectangle-number-lines START END START-AT &optional FORMAT)

Insert numbers in front of the region-rectangle.

START-AT, if non-nil, should be a number from which to begin
counting.  FORMAT, if non-nil, should be a format string to pass
to `format' along with the line count.  When called interactively
with a prefix argument, prompt for START-AT and FORMAT.

إنه مرتبط به ج-س ص ن بشكل افتراضي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top