كيف يمكنني نسخ النص من جهاز xterm الخاص بي بدون ماوس؟
-
10-07-2019 - |
سؤال
أريد استخدام جزء من إخراج الأمر الذي يتم تشغيله من سطر الأوامر في 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.
برنامج تعليمي سريع:
- فتح الشاشة:
screen
(أوscreen myprog my args here
) - قم بتشغيل البرنامج الخاص بك، وإنتاج المخرجات التي تريد نسخها
- الدخول إلى وضع النسخ: يتحكم+أ+[
- حرك المؤشر إلى نقطة البداية
- يضرب يدخل
- حرك المؤشر إلى نقطة النهاية
- يضرب يدخل
- معجون: يتحكم+أ+]
الشاشة أقوى بكثير من ذلك (أستخدمها لتبويب العديد من المحطات الافتراضية دون الحاجة إلى محاكي طرفي خاص، وكذلك حتى لا أفقد جلساتي عندما يتعطل X أو شيء من هذا القبيل).للخروج من الشاشة، ما عليك سوى إنهاء جلسة الصدفة أو الكتابة كنترول+أ, كنترول+\.
نصائح أخرى
XSel هو مفيد في حالات مماثلة. إنها أداة والذي يتحكم في اختيار X. على سبيل المثال، وهذا سيتم تخزين إخراج الأمر الخاص بك إلى الحافظة:
grep error error.log | xsel -bi
يمكنك أيضًا استخدام tmux
الذي لديه قدرات مماثلة ل screen
.بمجرد دخولك tmux
وكان لديك الإخراج الذي تريد نسخه، يمكنك القيام بما يلي لنسخه ثم لصقه:
- الدخول إلى وضع النسخ باستخدام السيطرة + ب, [
- حرك المؤشر باستخدام مفاتيح الأسهم ثم ابدأ التحديد باستخدام السيطرة + الفضاء
- حرك المؤشر لتحديد النص/المنطقة المراد نسخها ثم النسخ بها البديل + دبليو (سيؤدي هذا إلى إخراجك فورًا من وضع النسخ)
- يمكنك الآن لصق (داخل
tmux
فقط) باستخدام السيطرة + ب, ]
تفترض هذه التعليمات ايماكس تم تمكين الارتباطات الرئيسية.ل السادس الارتباطات ترى هذا مقارنة أو اتبع فقط هذا دليل خطوة بخطوة.
وقال OP انه لا يريد للقيام بذلك، ولكن هنا هو الطريقة التي يونكس تيلس للقيام بذلك للأجيال القادمة. إذا كنت تعلم هذه القليل المرافق يونيكس أنها يمكن أن تكون قوية جدا.
<اقتباس فقرة>وليرة سورية $ (dirname $ (البقرى خطأ error.log | رئيس -1 | قطع -d "" -f 5-))
اقتباس فقرة>ملحوظة: بناء جملة من الذاكرة
ويمكنك إرسال الإخراج مباشرة إلى تيرم المعنيين باستخدام جهاز إكس تيرم لا. هنا الأمر.
xyz$ls /home/ankit/documents/etc/x/y/z > /dev/pts/0
و(أو watever هو اسم الجهاز، يمكنك الحصول عليه باستخدام الأمر 'ث' للتيرم فتح)
وجربه ونأمل أن يكون هذا قد يحل مشكلتك.