كيف يمكنني نسخ النص من جهاز xterm الخاص بي بدون ماوس؟

StackOverflow https://stackoverflow.com/questions/312213

سؤال

أريد استخدام جزء من إخراج الأمر الذي يتم تشغيله من سطر الأوامر في xterm آخر، أو كجزء من أمر مختلف.على سبيل المثال:

> grep error error.log
error: can't find file ~/<some very long path>/thisfile

وأريد أن أفعل هذا:

>ls ~/<some very long path>/

أعرف طريقتين للقيام بذلك:
1.ينسخ ~/<some very long path>/ مع الفأرة.
2.استخدام بعض مزيج من head/tail/awk/sed/perl/cut/إلخ...لاستخراج ما أحتاجه فقط من الإخراج ثم استخدامه الذي - التي داخل backticks.

هل هناك أي طريقة لنسخ النص دون استخدام الماوس؟المثال الذي يتبادر إلى ذهني هو الوضع المرئي داخل VIM، لكنني لا أعرف كيفية القيام بذلك داخل xterm.

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

المحلول

يمكنك استخدام أوامر النسخ واللصق الموجودة على شاشة GNU.

برنامج تعليمي سريع:

  1. فتح الشاشة: screen (أو screen myprog my args here)
  2. قم بتشغيل البرنامج الخاص بك، وإنتاج المخرجات التي تريد نسخها
  3. الدخول إلى وضع النسخ: يتحكم+أ+[
  4. حرك المؤشر إلى نقطة البداية
  5. يضرب يدخل
  6. حرك المؤشر إلى نقطة النهاية
  7. يضرب يدخل
  8. معجون: يتحكم+أ+]

الشاشة أقوى بكثير من ذلك (أستخدمها لتبويب العديد من المحطات الافتراضية دون الحاجة إلى محاكي طرفي خاص، وكذلك حتى لا أفقد جلساتي عندما يتعطل X أو شيء من هذا القبيل).للخروج من الشاشة، ما عليك سوى إنهاء جلسة الصدفة أو الكتابة كنترول+أ, كنترول+\.

نصائح أخرى

XSel هو مفيد في حالات مماثلة. إنها أداة والذي يتحكم في اختيار X. على سبيل المثال، وهذا سيتم تخزين إخراج الأمر الخاص بك إلى الحافظة:

grep error error.log | xsel -bi

يمكنك أيضًا استخدام tmux الذي لديه قدرات مماثلة ل screen.بمجرد دخولك tmux وكان لديك الإخراج الذي تريد نسخه، يمكنك القيام بما يلي لنسخه ثم لصقه:

  1. الدخول إلى وضع النسخ باستخدام السيطرة + ب, [
  2. حرك المؤشر باستخدام مفاتيح الأسهم ثم ابدأ التحديد باستخدام السيطرة + الفضاء
  3. حرك المؤشر لتحديد النص/المنطقة المراد نسخها ثم النسخ بها البديل + دبليو (سيؤدي هذا إلى إخراجك فورًا من وضع النسخ)
  4. يمكنك الآن لصق (داخل tmux فقط) باستخدام السيطرة + ب, ]

تفترض هذه التعليمات ايماكس تم تمكين الارتباطات الرئيسية.ل السادس الارتباطات ترى هذا مقارنة أو اتبع فقط هذا دليل خطوة بخطوة.

وقال OP انه لا يريد للقيام بذلك، ولكن هنا هو الطريقة التي يونكس تيلس للقيام بذلك للأجيال القادمة. إذا كنت تعلم هذه القليل المرافق يونيكس أنها يمكن أن تكون قوية جدا.

<اقتباس فقرة>   

وليرة سورية $ (dirname $ (البقرى خطأ error.log | رئيس -1 | قطع -d "" -f 5-))

ملحوظة: بناء جملة من الذاكرة

ويمكنك إرسال الإخراج مباشرة إلى تيرم المعنيين باستخدام جهاز إكس تيرم لا. هنا الأمر.

xyz$ls /home/ankit/documents/etc/x/y/z > /dev/pts/0 

و(أو watever هو اسم الجهاز، يمكنك الحصول عليه باستخدام الأمر 'ث' للتيرم فتح)

وجربه ونأمل أن يكون هذا قد يحل مشكلتك.

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