ANSI भागने कोड के साथ GNOME टर्मिनल सामग्री कैसे बचाएं?


9

VT100 टर्मिनलों के लिए एक अपेक्षाकृत सरल तरीका है एक फाइल करने के लिए मुक्ति कोड के साथ टर्मिनल सामग्री सहेजने का उपयोग कर Meta- p:

XTerm.VT100.printAttributes: 2
XTerm.VT100.printerCommand: cat - > file
XTerm.VT100.translations: #override Meta <KeyPress> P: print() \n

मैंने काफी आस-पास देखा है, और डिफ़ॉल्ट गनोम टर्मिनल + एक्सटर्म + बैश में काम करने के लिए इसके लिए कोई समाधान नहीं मिल सकता है।

मुझे विंडो की सामग्री के साथ सिर्फ एक छवि नहीं चाहिए।

ऐसा लगता है कि गनोम टर्मिनल को अंततः इसके लिए एक ठीक मिल सकता है , लेकिन इसके बारे में कोई जानकारी नहीं है कि इसे किस संस्करण में शामिल किया जाएगा, और पिछले अपडेट के बाद से लगभग तीन साल हो गए हैं ...


दुर्भाग्य से, ऐसा करने का कोई तरीका नहीं है। देखें: Askubuntu.com/q/20739
Zaz

@ जोश मुझे नहीं लगता कि यह वही सवाल है। मैं सभी आउटपुट को कमांड से नहीं बचाना चाहता, बल्कि टर्मिनल विंडो में सभी दृश्यमान आउटपुट को देखना चाहता हूं।
l0b0

जवाबों:


3

दुर्भाग्य से, l0b0 बॉक्स से बाहर का उत्तर है: यह संभव नहीं है।

मेरे अन्य उत्तर में, मैंने यह करने के लिए स्क्रिप्ट का उपयोग करने का तरीका सूचीबद्ध किया, हालांकि आपके द्वारा उल्लेखित कुछ अंतर हैं। दूसरा तरीका स्रोत को संकलित करना या अस्थिर संस्करण का उपयोग करना है।

सूक्ति टर्मिनल स्रोत टारबॉल

रेरिंग में संस्करण 3.6.1 है, इसलिए आप इस स्रोत को देख सकते हैं। टर्मिनल-विंडो के अंदर लाइन 115 पर:

/*
 * We don't want to enable content saving until vte supports it async.
 * So we disable this code for stable versions.
 */

#include "terminal-version.h"

#if (TERMINAL_MINOR_VERSION & 1) != 0
#define ENABLE_SAVE
#else
#undef ENABLE_SAVE
#endif
#endif

विकल्प:

  1. इसके तहत #define ENABLE_SAVE जोड़ें।
  2. संस्करण को एक अस्थिर में संशोधित करें।
  3. .DEB का एक अस्थिर संस्करण डाउनलोड करें।

उम्मीद है की यह मदद करेगा।


क्या यह एएनएसआई भागने की कुंजी, या सिर्फ पाठ को बचा सकता है?
l0b0

मैंने सत्यापित किया है और vte_terminal_write_contents () ANSI कोड लिखने के लिए प्रकट नहीं होता है, इस समय, मेरी मूल प्रतिक्रिया सबसे सटीक है "जो आप चाहते हैं वह संभव नहीं है (बॉक्स से बाहर)।" यदि आप डेवलपर-दिमाग वाले हैं, तो आप संभवत: टर्मिनल-विंडो.c 3340 save_contents_dialog_on_response (...) में फ़ंक्शन को फिर से लिख सकते हैं। 3372 के बारे में आप देखते हैं कि vte_terentinal_write_contents को कॉल कहाँ किया जाता है। मैं आगे नहीं जाने वाला क्योंकि यह इस साइट के दायरे से परे है। अन्य टर्मिनल आपकी उपयोगिताओं को पुन: स्थापित करने की तुलना में कम लागत पर इसे प्रदान करते हैं।
लिम्पिंगनिंजा

+100। यदि संभव हो तो मैं इसे और आपके अन्य उत्तर के बीच विभाजित कर दूंगा, क्योंकि वे दोनों 90% मैं क्या चाहते हैं।
l0b0

3

दुर्भाग्य से, l0b0 बॉक्स से बाहर का उत्तर है: यह संभव नहीं है।

आपके टर्मिनल पर हर समय स्क्रिप्ट चलाकर और सभी आउटपुट को लॉग करके आप इसे सुधारने का प्रयास कर सकते हैं। सूक्ति-टर्मिनल खोलें, संपादन पर जाएँ -> प्रोफ़ाइल प्राथमिकताएँ , फिर टैब शीर्षक और कमांड और अपने कस्टम कमांड के लिए इसका उपयोग करें:

bash -l -c 'script -q -c bash $HOME/sessionlogs/$BASHPID.sessionlog.$(date +%Y%m%d-%H%M).txt'

सुनिश्चित करें कि 'सेशन' $ $ के तहत मौजूद हैं।

दूसरे तरीके को हटा दिया गया है और इस प्रश्न पर दूसरे उत्तर के रूप में जोड़ा गया है।


दरअसल, रीपोस्ट के दौरान होने वाले टाइपो को ठीक करने के लिए उत्तर को सही किया। मैं 'recompile' विकल्प को अलग कर रहा हूं, क्योंकि मैं मानता हूं कि दोनों असंबंधित हैं।
लिम्पिंगनिंजा

less -rवास्तव में प्रिंट के रूप में आउटपुट दिखाता है - धन्यवाद!
l0b0

0

आप टर्मिनल से बचकर फ़ाइल में संग्रहीत टर्मिनल के सभी इनपुट और आउटपुट प्राप्त करने के लिए स्क्रिप्ट (1) के माध्यम से अपने गोले चला सकते हैं ।


1
यह एक अलग उपयोग मामला है। scriptतथ्य के बाद सामग्री को बचाने के लिए उपयोग नहीं किया जा सकता है और यह केवल दृश्यमान आउटपुट को नहीं बचाता है ।
l0b0

1
क्या आपको यकीन है? यह सच है कि इस तथ्य के बाद स्क्रिप्ट को नहीं बचाया जा सकता है, लेकिन जब मैंने इसका परीक्षण किया और आउटपुट के साथ कुछ फ़ाइल अनुमतियों llको आउटपुट किया।
मैट

0

एक पैकेज है जिसे स्क्रीन कहा जाता है - VT100 / ANSI टर्मिनल इम्यूलेशन के साथ एक टर्मिनल मल्टीप्लेक्स।

उबंटू मैनुअल वेबसाइट पर स्क्रीन के मैनपेज के अनुसार , स्क्रीन होने का दावा करता है

एक फुल-स्क्रीन विंडो प्रबंधक जो कई प्रक्रियाओं (आमतौर पर इंटरेक्टिव शेल) के बीच एक भौतिक टर्मिनल को मल्टीप्लेक्स करता है। प्रत्येक वर्चुअल टर्मिनल एक डीईसी VT100 टर्मिनल के कार्यों को प्रदान करता है और, इसके अलावा, आईएसओ 6429 (ईसीएमए 48, एएनएसआई) 3 से कई नियंत्रण कार्य करता है। 64) और ISO 2022 मानकों (जैसे कई चरित्र सेट के लिए लाइन / समर्थन सम्मिलित करें / हटाएं) VT100 / ANSI टर्मिनल एमुलेशन के साथ एक टर्मिनल मल्टीप्लेक्स।

और जब स्क्रीन चल रही हो :

Ctrl ah (हार्डकॉपी) "हार्डकॉपी.एन" फ़ाइल में वर्तमान विंडो की हार्डकॉपी लिखें।

मैंने गनोम टर्मिनल में कोशिश की, रनिंग screenऔर टाइपिंगCtrl ah

स्क्रीन चलाना और Ctrl Alt h टाइप करना

यह Gedit में खोले जाने पर मेरी हार्डकॉपी .1 फ़ाइल का आउटपुट है:

हार्डकॉपी .१ गेडिट में खोला गया

आप पा सकते हैं स्क्रीन उबंटू / 13.04 के मुख्य सॉफ्टवेयर रिपॉजिटरी में है।

यह डिफ़ॉल्ट रूप से स्थापित नहीं है।


-1

हम्म, यह एस्केप कोड्स को कॉपी नहीं करेगा, लेकिन सिर्फ टेक्स्ट को हथियाने के लिए, आप मेनू एडिट -> सेलेक्ट ऑल पर जा सकते हैं, फिर प्रेस करें CtrlShiftCऔर या तो (i) क्लिपबोर्ड को एडिटर या (ii) टाइप करें cat > filenameऔर प्रेस करें CtrlShiftV


यह एक अलग उपयोग का मामला है - जैसा कि स्पष्ट रूप से कहा गया है, मैं ANSI एस्केप कोड को शामिल करना चाहता हूं।
l0b0

-1

man history भागे हुए पात्रों के लिए इतिहास विस्तार की तलाश करें। मेरा मानना history है कि तुम क्या पूछ रहे हो सकता है।


मुझे manपेज में कुछ भी प्रासंगिक नहीं मिला । कृपया और स्पष्ट बताएं।
l0b0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.