क्या VI संपादक में खुली फाइल से क्लिपबोर्ड तक सभी लाइनों को कॉपी करने का कोई तरीका है। मैंने कोशिश कीyG लेकिन यह क्लिपबोर्ड का उपयोग करके उन पंक्तियों के स्टोर करने के लिए नहीं है।
तो क्या यह संभव है?
क्या VI संपादक में खुली फाइल से क्लिपबोर्ड तक सभी लाइनों को कॉपी करने का कोई तरीका है। मैंने कोशिश कीyG लेकिन यह क्लिपबोर्ड का उपयोग करके उन पंक्तियों के स्टोर करने के लिए नहीं है।
तो क्या यह संभव है?
जवाबों:
आपको पाठ को *
या +
रजिस्टरों को छोड़ देना चाहिए :
gg"*yG
स्पष्टीकरण:
gg
फ़ाइल के पहले वर्ण में कर्सर लाने के लिए"*y
*
पहली पंक्ति से रजिस्टर करने के लिए एक yank कमांड शुरू करने के लिए , जब तक ...G
फ़ाइल के अंत में जाने के लिए"
।
:version
vim में, और के लिए देखो +xterm_clipboard
झंडा। यदि यह एक ऋण चिह्न द्वारा पूर्ववर्ती है, तो आपके पास यह कार्यक्षमता नहीं होगी। यदि यह स्थिति है, तो आप अपने आप को vim संकलित करना चाहते हैं, या gvim चला सकते हैं, जिसमें आमतौर पर यह सुविधा सक्षम होती है।
उपयोग:
:%y+
सभी लाइनों के लिए।
स्पष्टीकरण:
%
सभी लाइनों पर काम करने के लिए अगले आदेश उल्लेख करने के लिएy
उन लाइनों के लिए+
सिस्टम क्लिपबोर्ड पर कॉपी करने के लिएएनबी : विंडोज में, +
और *
बराबर हैं इस जवाब को देखें ।
:help
यह सुनिश्चित करने के लिए टाइप करें कि आप वास्तव में व्यर्थ हैं।
set clipboard=unnamed
, लेकिन फिर इसने बहुत काम किया!
E850: Invalid register name
:(
मैक पर
चयनित भाग की प्रतिलिपि बनाएँ: नेत्रहीन पाठ (प्रकार v
या V
सामान्य मोड में) और प्रकार चुनें:w !pbcopy
पूरी फाइल कॉपी करें :%w !pbcopy
क्लिपबोर्ड से अतीत :r !pbpaste
pbcopy
एक मैक यूटिलिटी है। लिनक्स पर, xsel
इसके बजाय, या clip
विंडोज पर काम कर सकते हैं ।
:%w !pbcopy
अभी भी काम करता है यदि फ़ाइल टर्मिनल की ऊंचाई से अधिक लंबी है।
क्लिपबोर्ड बफर है +। क्लिपबोर्ड पर कॉपी करने के लिए, करें"+y [और आंदोलन] करें।
इसलिए, gg"+yG पूरी फाइल कॉपी कर लेंगे।
इसी तरह, क्लिपबोर्ड से चिपकाने के लिए, "+p
पूरी फाइल को कॉपी करने का एक और आसान तरीका अगर आपको VI का उपयोग करने में समस्या हो रही है, तो बस "कैट फाइलनेम" लिखकर। यह स्क्रीन करने के लिए फ़ाइल गूंज जाएगा और फिर आप बस ऊपर स्क्रॉल कर सकते हैं और नीचे और कॉपी / पेस्ट।
:!cat %
। और मैक ओएस पर क्लिपबोर्ड पर प्रोग्राम की फ़ाइल को कॉपी करने के लिए::!cat % | pbcopy
यह वही है जो मैं पूरी फाइल को करना चाहता हूं:
ggVGy
clipboard
में लिखे पाठ को कॉपी करने के लिए सेट होता तो यह होता +
।
आप "बिल्ली" कमांड का उपयोग फ़ाइल खोलने और कॉपी करने के लिए माउस का उपयोग कर सकते हैं
reset
पहले से टर्मिनल, फिर सभी का चयन करें और कॉपी करें। यह ssh
सत्र के माध्यम से काम करता है ।
(@rshdev के जवाब में, और ओपी पर टिप्पणियों में प्रति @ लाइनस्ट्रॉम के साथ + xterm_clipboard के साथ घूमने से बचने के लिए)
एक प्रोग्राम है जिसे xclip कहा जाता है जो Ubuntu 11 पर पुट्ठे की तरह काम करता है:
:%!xclip -sel clip
u
यह डिफ़ॉल्ट रूप से स्थापित नहीं है। स्थापित करने के लिए, उपयोग करें:
sudo apt-get install xclip
उबंटू 12 पर
आप vim-gnome
पैकेज को स्थापित करने का प्रयास कर सकते हैं :
sudo apt-get install vim-gnome
मैंने इसे आज़माया, क्योंकि vim --version
मुझे बताया कि इसमें ध्वज xterm_clipboard अक्षम होगा (इसके द्वारा संकेत दिया गया है - ) है, जो आदेश क्लिपबोर्ड कार्यक्षमता का उपयोग करने की जरूरत है।
-> उबंटू 12 पर vim-gnome पैकेज स्थापित करके vim का कंसोल आधारित संस्करण भी स्थापित किया गया है, जिसमें यह विकल्प सक्षम है (संकेत दिया गया है + xterm_clipboard ध्वज से पहले )
आर्क लिनक्स पर
आप vim-clipboard
उसी कारण से स्थापित कर सकते हैं ।
आप neovim चलाते हैं तो आप स्थापित करना चाहिए xclip
(से समझाया के रूप में help clipboard-tool
)
यदि आप दृश्य मोड में विम का उपयोग कर रहे हैं, तो मानक कट और पेस्ट कुंजी भी लागू होती हैं, कम से कम विंडोज के साथ।
कम से कम उबंटू टर्मिनल (ग्नोम) के तहत, मानक प्रति भी काम करती है ( CTRLSHIFTC, हालांकि इसके लिए एक मानक कीबोर्ड शॉर्टकट नहीं है ) select all
( ALTEइसके बाद अन्य A)।
मैंने उन कुछ कमांड्स की कोशिश की, जिनका लोगों ने ऊपर उल्लेख किया है। किसी ने काम नहीं किया। फिर मैंने उन सभी को सबसे सरल पकड़ लिया।
चरण 1: vi <filename>
चरण 2: पोटीन विंडो के शीर्षक पट्टी पर राइट क्लिक करें
चरण 3: "स्पष्ट स्क्रॉलबैक" चुनें (अपने एसएसएच सत्र के बाकी हिस्सों की नकल से बचने के लिए)
चरण 4: फिर से राइट क्लिक करें और "सभी को क्लिपबोर्ड पर कॉपी करें" चुनें।
Window > Settings > lines of scrollback
को 40000 तक बढ़ाने की जरूरत थी (टाइटल बार पर राइट क्लिक करके भी उपलब्ध)। यह cat
vi के बजाय उपयोग करने में भी मदद करता है क्योंकि यह सभी पाठ के माध्यम से स्क्रॉल करता है।
:set go=a
ggVG
देखें :help go-a
:
'a' Autoselect: If present, then whenever VISUAL mode is started,
or the Visual area extended, Vim tries to become the owner of
the windowing system's global selection. This means that the
Visually highlighted text is available for pasting into other
applications as well as into Vim itself. When the Visual mode
ends, possibly due to an operation on the text, or when an
application wants to paste the selection, the highlighted text
is automatically yanked into the "* selection register.
Thus the selection is still available for pasting into other
applications after the VISUAL mode has ended.
If not present, then Vim won't become the owner of the
windowing system's global selection unless explicitly told to
by a yank or delete operation for the "* register.
The same applies to the modeless selection.
खैर, ये सभी दृष्टिकोण दिलचस्प हैं, हालांकि आलसी प्रोग्रामर के रूप में मैं नंबर + के संयोजन का उपयोग करके सभी लाइन का उपयोग करता हूं y
उदाहरण के लिए आपके पास कुल 78 लाइनों के साथ स्रोत कोड फ़ाइल है, आप नीचे के रूप में कर सकते हैं:
gg
पहली पंक्ति में कर्सर लाने के लिए y
-> डालें, यह आपके कर्सर और करंट लाइन के नीचे 78 लाइनें देता है बिल जॉय के vi में "क्लिपबोर्ड" की अवधारणा नहीं थी, इसलिए मुझे नहीं लगता कि ऐसा करने का कोई अंतर्निहित तरीका है।
gVim की स्वचालित कॉपी-कुछ भी हाइलाइट-टू-द-क्लिपबोर्ड सुविधा सबसे आसान है या इसके माध्यम से बाहरी प्रोग्राम का उपयोग करें:!
साइगविन के विम के लिए मैं उपयोग करता हूं
:%!putclip
u
शायद उबंटू में पुट्टी जैसा सीएलआई ऐप है ??
यदि आपकी उंगलियां डिफ़ॉल्ट हैं CTRL-A CTRL-C
, तो मैपिंग से प्रयास करें $VIMRUNTIME/mswin.vim
।
" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y
" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG
मैं उन्हें करने के लिए मैप किया गया है <Leader><C-a>
और <Leader><C-c>
।
संपूर्ण फ़ाइल को vim या उसके टैब के अंदर कॉपी करें
y G
फिर एक टैब पर जाएं और पेस्ट करें
p
और पूरी फ़ाइल उपयोग में कटौती करने के लिए
d G
मुझे पता है कि इस पर दस साल लगने चाहिए लेकिन पहले दो जवाब मेरे काम नहीं आए इसलिए मैं खुदाई करता रहा। रेडहैट (दूरस्थ सर्वर) पर - विंडोज 10 (स्थानीय मशीन), यदि आप एक माउस के साथ पूरी चीज का चयन नहीं कर सकते हैं, तो आप अटक जाते हैं क्योंकि सामान्य प्रतियां दूरस्थ और स्थानीय मशीन क्लिपबोर्ड के बीच काम नहीं करती हैं।
इसलिए, दूरस्थ लिनक्स पर कॉपी करने और स्थानीय विंडोज पर पेस्ट करने के लिए, प्राथमिक बफर को इसके साथ निर्दिष्ट करें * और एक अच्छा डबल यैंक करें
का उपयोग करें gg" * yy।
मैंने इस क्रिया को करने के लिए एक फ़ंक्शन बनाया है, इसे अपने पर रखें ~/.vimrc
।
fun! CopyBufferToClipboard()
%y+
endfun
nnoremap <Leader>y :call CopyBufferToClipboard()<CR>
command! -nargs=0 CopyFile :call CopyBufferToClipboard()
OBS: यदि आप नवोन्मेष का उपयोग कर रहे हैं, तो आपको कुछ क्लिपबोर्ड प्रबंधक की आवश्यकता है जैसे कि xclip। अधिक जानकारी के लिए neovim में टाइप करें:h checkhealth
यह भी उल्लेख करना महत्वपूर्ण है कि हमेशा एक साधारण y
क्लिपबोर्ड पर कॉपी नहीं होगा, प्रत्येक कॉपी फीड बनाने के +
लिए "क्लिपबोर्ड रजिस्टर" सेट करने का प्रयास करें :set clipboard=unnamed,unnamedplus
:। नैतिक जानकारी के लिए देखें::h unnamed
।
यहाँ विम विकिया के बारे में अधिक जानकारी।
बाईं माउस बटन पर क्लिक करें, उस अनुभाग पर खींचें, जिसे आप कॉपी और रिलीज़ करना चाहते हैं। कोड स्वचालित रूप से क्लिपबोर्ड पर कॉपी हो जाता है।
vi
तरीका)।
मैं ऊपर दिए गए उत्तरों का उपयोग करके फ़ाइलों की प्रतिलिपि नहीं बना सकता, लेकिन मेरे पास पोटीन है और मुझे Quora पर वर्कअराउंड मिला।
नोट: यह उस सत्र के सभी मुद्रित वर्णों को लॉग फ़ाइल में कॉपी करता है, इसलिए यह अंततः बड़ा हो जाएगा। उस स्थिति में, लॉग फ़ाइल को हटा दें और लक्ष्य फ़ाइल को हटा दें ताकि आपको उस विशेष फ़ाइल की सामग्री आपके मशीन पर कॉपी हो जाए।