मैं Vi / Vim के सभी पाठ कैसे चुनूं?


193

विन्यास फाइल के संपादन के लिए VI टूल का उपयोग करना।

मैं एक फ़ाइल (लगभग 1000 लाइनों) में सभी पाठ का चयन कैसे कर सकता हूं, इसे कॉपी कर सकता हूं, फिर Google डॉक्स में पेस्ट कर सकता हूं?

जवाबों:


158

उपयोग करने का सबसे सरल और तेज़ तरीका है: : % y +और फिर Google डॉक्स (या जहाँ भी) पर जाएँ और पेस्ट करें। स्पष्टीकरण:

  • % सभी लाइनों पर काम करने के लिए अगले कमांड को देखें
  • y  उन लाइनों के लिए
  • +  सिस्टम क्लिपबोर्ड पर कॉपी करने के लिए

एक और तरीका है, g g " + y Gलेकिन आप इस बात को स्वीकार करेंगे कि उपरोक्त तेज और आसान है।


10
@Tuxmentat आप यह बता सकते हैं कि प्रत्येक कुंजी क्या करती है:%y+
Jas

10
यह उत्तर बेहतर होगा यदि यह समझाया जाए कि दोनों अनुक्रमों के लिए प्रत्येक कुंजी क्या करती है।
AsAAnyway

6
मेरा सबसे अच्छा अनुमान: ':' का मतलब है कि हम एक "पूर्व मोड" कमांड का उपयोग कर रहे हैं (मुझे लगता है)। किसी भी तरह, यह एक आदेश है। '%' एक विशेष कमांड-लाइन रेंज स्पेसर है जो पूरी फाइल को निर्दिष्ट करता है। 'y' सब कुछ करता है, और '+' क्लिपबोर्ड रजिस्टर को निर्दिष्ट करता है । : मदद <कमांड> ने मुझे यह पता लगाने में मदद की।
हॉकि पार्कर

11
मुझसे कुछ गलत हो रहा होगा। मैं टाइप करता हूं :%y+, और मुझे मिलता हैE488: Trailing characters
जॉनी क्यों 20

24
मुझे "E850: अमान्य रजिस्टर नाम" मिलता है। दूसरी विधि ने प्रतिलिपि बनाने के लिए ठीक काम किया, लेकिन उबंटू 16.04 पर सिस्टम क्लिपबोर्ड पर नहीं मिलता है (मेरे लिए, कम से कम --- मेरे पास एक .vimrc है जो चीजों को प्रभावित कर सकता है)।
EntangledLoops

95

कई दिए गए उत्तर भी चयन को रद्द कर देते हैं, जिनकी मुझे तलाश नहीं थी।

मैं ggVGइस उद्देश्य के लिए उपयोग कर रहा हूं (सामान्य मोड पर चलाने की आवश्यकता है)। यह आदेश केवल दस्तावेज़ के अंदर पूरे पाठ का चयन करता है।

मैंने Ctrl+Aइस उद्देश्य के लिए भी रीमैप किया है, क्योंकि मुझे शॉर्टकट (डिफ़ॉल्ट Ctrl+Aमानचित्र) के साथ पूर्णांक बढ़ाने की आवश्यकता नहीं है ।

बस इसे अपने में जोड़ें .vimrc:

map <C-a> <esc>ggVG<CR>

यह <esc>पहले है, यह सुनिश्चित करने के लिए कि उपयोगकर्ता सामान्य मोड में है।


2
वास्तव में मैं क्या देख रहा था, और यह देखना अच्छा है कि Ctrl + A डिफ़ॉल्ट रूप से व्यर्थ में कब्जा नहीं करता है। आशा है कि इसके कोई दुष्परिणाम नहीं हैं।
निकोस एलेक्जेंड्रिस

2
मैं व्यक्तिगत रूप से उपयोग करता हूं ggVG, लेकिन gg0vG$यह अधिक उपयुक्त हो सकता है क्योंकि यह अधिक सामान्य रूप से 'सामान्य' Ctrl + A ऑपरेशन को दोहराता है।
12

39

cat fileयदि आप इसे अपने ब्राउज़र में पेस्ट करना चाहते हैं, तो आप आउटपुट का उपयोग कर सकते हैं और फिर कॉपी और पेस्ट कर सकते हैं।

Vi के लिए यह है कि आप सभी पाठ का चयन कैसे कर सकते हैं और इसे एक नई फ़ाइल में लिख सकते हैं:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

सिद्धांत रूप में यह लिनक्स और विंडोज दोनों पर काम करना चाहिए - मैंने इसे मैक पर आज़माया लेकिन यह काम नहीं करता है।


1
वेब ब्राउज़र में पेस्ट करने cat fileका तरीका है। shift vविधि केवल Vi के आंतरिक बफर करने के लिए प्रतियां।
हांग्जो लेवचुक

नहीं यदि आप सिस्टम क्लिपबोर्ड का उपयोग करते हैं जो * रजिस्ट्री का उपयोग करता है - लेकिन यह केवल एक्स पर काम करता है और मैंने विंडोज़ पर सुना है - इसलिए यदि आपको एसएक्स की आवश्यकता है - तो यह जांचने के लिए कि क्या विम के लिए इसका समर्थन है - - क्लिपबोर्ड + सेट करें = अनाम

क्या नई फ़ाइल बनाए बिना ऐसा करने का कोई विकल्प है। यदि हम सर्वर पर लाइव संपादन कर रहे हैं, तो हमें स्थानीय मशीन पर बैकअप कोड रखने की आवश्यकता है ताकि हम वापस लौट सकें।
NJInamdar

बिल्ली के लिए +1 और पोटीन में चयन करें। बेशक, बड़ी फ़ाइलों के लिए काम नहीं करेगा और सबसे उपयोगकर्ता के अनुकूल तरीका नहीं है। लेकिन छोटे स्क्रिप्ट फ़ाइलों की प्रतिलिपि बनाने के लिए जो स्क्रीन व्यूपोर्ट के बाहर जाती है, काफी अच्छा है।
अर्निस जुरगा

16

USE ggVG परीक्षण के शीर्ष पर जाने के लिए "जीजी" टाइप करें फिर वीजी टाइप करें।


7

gg"+yG

या

gg"*yG

सिस्टम क्लिपबोर्ड + या * पर निर्भर करता है। (कई यूनिक्स पर, मध्य-माउस-क्लिक के लिए माउस चयन बफर है, और * सिस्टम क्लिपबोर्ड है)।


1
मुझे लगता है कि यह दूसरा तरीका है: "* चयन है और" + क्लिपबोर्ड है। vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection
मिकेल

आप सही हे। मुझे वह भी पता था, लेकिन गलत बात टाइप की। ☹
frabjous

7

मैं CentOS-7 पर्यावरण में विम 7.4 का उपयोग कर रहा हूं। जिसने मुझे सभी पाठों के चयन के लिए काम किया है

:%y

फिर बस pअगली फाइल में जहाँ मुझे पूरी कॉपी चाहिए।

या

आप कैट कमांड का उपयोग कर सकते हैं।

cat copyfile > pastefile

इस git रेपो में कुछ अन्य उपयोगी कमांड भी हैं।


3

एक मैक के लिए, pbcopy (पेस्टबोर्ड कॉपी) का उपयोग करें:

cat file.txt | pbcopy

File.txt की सामग्री अब एक अन्य एप्लिकेशन (जैसे ब्राउज़र) में चिपकाने के लिए क्लिपबोर्ड पर है।

आप क्लिपबोर्ड की सामग्री को pbpaste के उपयोग से फ़ाइल में पेस्ट कर सकते हैं:

pbpaste > file.txt

जबकि इसमें vi शामिल नहीं है विशेष रूप से यह एक मैक पर एक ही लक्ष्य प्राप्त करता है।


1

यदि आप एक लिनक्स डेस्कटॉप का उपयोग कर रहे हैं, तो आप इसे क्लिपबोर्ड में xclip या xsel का उपयोग करके लोड कर सकते हैं। उस आकार के लिए जो आप Google डॉक्स में अपलोड सुविधा का उपयोग करना चाहते हैं।


1

एक और तरीका होगा:

आप vअपने कीबोर्ड पर की दबाएं और VIM को VISUAL करें

फिर नीचे स्क्रॉल करके सभी टेक्स्ट का चयन करें

^+ INSERTनकल करने के लिए

SHIFT+ INSERTGoogle डॉक्स पर जहाँ चाहें पाठ को चिपकाने के लिए।



0

यह कैसे करें के विकल्पों के लिए http://vim.wikia.com/wiki/Accessing_the_system_clipboard देखें । (यदि "* में संकलित किया गया है तो सिस्टम क्लिपबोर्ड को संदर्भित करना चाहिए)। वहाँ भी निर्देश है कि एक्सएमएल का उपयोग कैसे किया जाए।


* "वह है जो चुना गया था और" + जो कॉपी किया गया था। vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection
मिकेल

0

निम्न आदेश का उपयोग करें।

cat <your file name>

यह फ़ाइल की सामग्री को प्रतिध्वनित करेगा। अब सेलेक्ट करें, स्क्रॉल करें, कॉपी करें, पेस्ट करें।
खेल खत्म

पूर्व .:

cat bobis.txt
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.