X11 में टर्मिनल विंडो के बीच टैब को कॉपी और पेस्ट करें


11

जब मैं दो टर्मिनल विंडो के बीच X11 माउस चयन का उपयोग करके कॉपी और पेस्ट करता हूं, तो टैब अक्सर होते हैं, लेकिन हमेशा नहीं, रिक्त स्थान में परिवर्तित हो जाते हैं। यह शामिल टर्मिनल अनुप्रयोगों और उनके अंदर चल रहे कार्यक्रमों पर निर्भर करता है।

यह वही है जो मैंने प्रयोग द्वारा पाया है:

  • यह पूरी तरह से स्रोत (कॉपी) पक्ष पर चल रहा है पर निर्भर करता है। यदि स्रोत ने उन्हें संरक्षित किया है, तो लक्ष्य (पेस्ट) पक्ष टैब को कोई फर्क नहीं पड़ेगा, जो चल रहा है।
  • केवल gnome-terminalस्रोत की ओर टैब को संरक्षित करता है। xtermऔर konsoleनहीं।
  • यदि फ़ाइल का उपयोग करके आउटपुट किया गया है तो टैब केवल संरक्षित हैं cat। अन्य अनुप्रयोगों जैसे less, vim, emacs, या nanoटैब की रक्षा नहीं है।

इसके लिए स्पष्टीकरण क्या है? क्या ये कीड़े अंदर konsoleऔर xterm, या उन्हें अलग तरीके से कॉन्फ़िगर किया जा सकता है? क्या lessआउटपुट में टैब संरक्षित करने के लिए इसे कॉन्फ़िगर किया जा सकता है?

जवाबों:


3

हां, आपका अवलोकन सही है। जब आप कॉपी-पेस्ट करते हैं तो क्या होता है कि लक्ष्य स्रोत से डेटा प्राप्त करता है। अपने टैब प्रदर्शित करते समय, xterm(और konsole), जाहिरा तौर पर, उन्हें स्वयं रिक्त स्थान में अनुवाद करें (यदि टर्मिनल के अंदर चल रहे एप्लिकेशन ने पहले ही ऐसा नहीं किया है)। इस प्रकार, जब चयनित पाठ के लिए एक अनुरोध आता है, तो उन्हें सभी प्रस्ताव देने होंगे कि रिक्त स्थान है।

मैं भी अस्पष्ट रूप से एक xterm- अनुचर बरसों पहले की प्रतिक्रिया याद कर रहा हूं, यह दावा करना कि इसे ठीक करना बहुत मुश्किल होगा ...

मुझे यकीन नहीं है, कैसे gnome-terminal सही काम करता है, लेकिन मुझे खुशी है कि वे करते हैं :) एक और विकल्प का उपयोग करना है gvim(चित्रमय संस्करण vim) - vimएक टर्मिनल एप्लिकेशन के अंदर चलने के बजाय - आप gvim से सुरक्षित रूप से कॉपी-पेस्ट कर सकते हैं , टैब खोने के बिना।


0

यह कभी-कभी एक समस्या हो सकती है, खासकर Makefilesजिसके साथ टैब की आवश्यकता होती है। दुर्भाग्य से, विभिन्न कार्यक्रमों के साथ समस्याएं संबंधित नहीं हैं। हर एक के पास शायद बहुत अलग समाधान होगा।

Vim के लिए आपको अपनी फ़ाइल में एक :set noexpandtabजगह या पूर्ववर्ती करना होगा । यदि आप चाहते हैं कि केवल कुछ फिल्टरों को सेट किया जाए, तो आप अपने ऑटोकॉमैंड कर सकते हैं, मेरे पास मेरा निम्नलिखित है:set noexpandtab~/.vimrcnoexpandtab~/.vimrc

"indenting defaults: 4 spaces for an indent
set shiftwidth=4
set softtabstop=4
set expandtab

"exceptions to indenting for specific languages and files--------
"for shell scripts: 2 spaces for an indent
autocmd filetype sh setlocal shiftwidth=2
autocmd filetype sh setlocal softtabstop=2

"for Makefiles: use tabs for indents
autocmd filetype make setlocal tabstop=8
autocmd filetype make setlocal noexpandtab

यह एक टैब के लिए 4 रिक्त स्थान का डिफ़ॉल्ट सेट करेगा vimऔर शेल स्क्रिप्ट और मेकफाइल्स के लिए अपवाद बना देगा।

जैसे अन्य कार्यक्रमों के लिए less, वहाँ आदमी पृष्ठों को देखने का प्रयास करें। उनके पास कॉन्फ़िगरेशन फ़ाइलें, पर्यावरण चर, या कमांड लाइन विकल्प आपके लिए आवश्यक हो सकते हैं। कम मैन पेज को देखते हुए:

-xn,... or --tabs=n,...
       Sets tab stops.  If only one n is specified, tab stops  are  set
       at  multiples  of n.  If multiple values separated by commas are
       specified, tab stops are set at those positions, and  then  con-
       tinue  with  the  same  spacing  as  the last two.  For example,
       -x9,17 will set tabs at positions  9,  17,  25,  33,  etc.   The
       default for n is 8.

आप जो नोटिस कर रहे हैं वह बग नहीं है। "इसकी एक विशेषता है।" एकमात्र समस्या आपको यह जानना है कि इसे कैसे बंद किया जाए।


2
less -xnइसे टैब वर्ण के बजाय n रिक्त स्थान का उपयोग करने के लिए कॉन्फ़िगर करता है। -Uइसे टैब के रूप में प्रदर्शित करता है ^I। मुझे इसे शाब्दिक टैब वर्ण से बाहर करने का कोई तरीका नहीं मिला है ताकि पाठ की प्रतिलिपि बनाने से टैब वर्ण चिपक जाएगा, लेकिन मुझे यह जानना अच्छा लगेगा कि कैसे।
मैट मैकलर

यह ध्यान देने योग्य है कि रोफ ( troffऔर nroff) में, टैबस्टॉप को एक-दूसरे से स्वतंत्र रूप से सेट किया जा सकता है, आधुनिक वर्ड प्रोसेसर में "शासक" टूलबार की तरह (ओपनऑफिस, माइक्रोसॉफ्ट वर्ड, एट अल)। हालांकि, प्रथाएं शायद ही कभी कस्टम टैब-स्टॉप का उपयोग करती हैं।

mandoc(1)उपयोगकर्ताओं को कमांड-लाइन से डिफ़ॉल्ट इंडेंटेशन चौड़ाई को ओवरराइड करने की अनुमति देता है, -O indent=N(5 कॉलमों में चूक)।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.