Vi / Vim හි ඇති සියලුම පෙළ තෝරා ගන්නේ කෙසේද?


207

වින්‍යාස ගොනු සංස්කරණය කිරීම සඳහා VI මෙවලම භාවිතා කිරීම.

ගොනුවක ඇති සියලුම පෙළ (පේළි 1000 ක් පමණ) තෝරාගෙන එය පිටපත් කර ගූගල් ඩොක්ස් වෙත අලවන්නේ කෙසේද?

Answers:


170

සරලම හා වේගවත්ම ක්‍රමය වන්නේ භාවිතා කිරීමයි: : % y +ඉන්පසු ගූගල් ඩොක්ස් (හෝ කොතැනක හෝ) වෙත ගොස් අලවන්න. පැහැදිලි කිරීම:

  • % සියලුම රේඛාවල වැඩ කිරීමට ඊළඟ විධානය යොමු කිරීමට
  • y  එම රේඛා නාද කිරීමට
  • +  පද්ධති ක්ලිප් පුවරුවට පිටපත් කිරීමට

තවත් ක්‍රමයක් නම් g g " + y Gඉහත කරුණු වේගවත් හා පහසු බව ඔබ පිළිගනු ඇත.


10
@Tuxmentat ඔබ එක් එක් යතුර කරන්නේ කුමක්ද පැහැදිලි කර දෙන්න පුළුවන් කරුණාකර:%y+
යාකො

10
අනුපිළිවෙල දෙකටම එක් එක් යතුර කරන්නේ කුමක්ද යන්න පැහැදිලි කරන්නේ නම් මෙම පිළිතුර වඩා හොඳය.
AsksAnyway

6
මගේ හොඳම අනුමානය: ':' යන්නෙන් අදහස් කරන්නේ අපි "ex mode" විධානයක් භාවිතා කරන බවයි (මම හිතන්නේ). කෙසේ හෝ එය විධානයකි. '%' යනු විශේෂ විධාන රේඛා පරාස පිරිවිතරයකි, එය මුළු ගොනුවම නියම කරයි. 'y' & yanks සියල්ල, සහ '+' විශේෂණය අලවන්න ලේඛනය . : help <command> මට මෙය තේරුම් ගැනීමට උදව් විය.
Hawkeye Parker

11
මම වැරදි දෙයක් කරනවා විය යුතුයි. මම ටයිප් කර :%y+, මට ලැබෙනවාE488: Trailing characters
ජොනී ඇයි

29
මට "E850: අවලංගු ලේඛනයේ නම" ලැබේ. දෙවන ක්‍රමය පිටපත් කිරීම සඳහා හොඳින් ක්‍රියා කළ නමුත් උබුන්ටු 16.04 හි පද්ධති ක්ලිප්බෝඩ් වෙත නොපැමිණෙයි (මට නම් අවම වශයෙන් --- මට .vimrc එකක් තිබේ.
EntangledLoops

110

ලබා දුන් බොහෝ පිළිතුරු ද මා සොයන තේරීම තෝරා නොගනී.

මම මේ ggVGසඳහා භාවිතා කරමි (සාමාන්‍ය මාදිලියේ ධාවනය කළ යුතුය). මෙම විධානය මඟින් ලේඛනය තුළ ඇති සම්පූර්ණ පා only ය පමණක් තෝරා ගනී.

Ctrl+Aකෙටිමඟ (පෙරනිමි Ctrl+Aසිතියම) සමඟ පූර්ණ සංඛ්‍යාවක් වැඩි කිරීමට මට අවශ්‍ය නොවන බැවින් මම මේ සඳහා නැවත සකස් කර ඇත්තෙමි .

මෙය ඔබගේ .vimrc:

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

<esc>පරිශීලකයා සාමාන්‍ය මාදිලියේ සිටින බවට වග බලා ගැනීම සඳහා එය පළමුව ඇත .


3
හරියටම මා සොයන දෙය, සහ Ctrl + A පෙරනිමියෙන් විචක්ෂණශීලී නොවන බව දැකීම සතුටක්. අතුරු ආබාධ නොමැති බව විශ්වාස කරමු.
නිකොස් ඇලෙක්සැන්ඩ්‍රිස්

3
මම පුද්ගලිකව භාවිතා කරමි ggVG, නමුත් gg0vG$එය 'සාමාන්‍ය' Ctrl + මෙහෙයුම වඩාත් සමීපව ප්‍රතිවර්තනය කරන බැවින් වඩාත් යෝග්‍ය වේ.
ෂෙහායාර්

41

ඔබට එය භාවිතා 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 හි අභ්‍යන්තර බෆරයට පමණක් පිටපත් කරයි.
ඇලෙක්සැන්ඩර් ලෙව්චුක්

ඔබ * රෙජිස්ට්‍රි භාවිතා කරන පද්ධති ක්ලිප්බෝඩ් භාවිතා කරන්නේ නම් නොවේ - නමුත් මෙය ක්‍රියාත්මක වන්නේ එක්ස් මත පමණක් වන අතර මම වින්ඩෝස් මත අසා ඇත්තෙමි - එබැවින් ඔබට එස්එච් අවශ්‍ය නම් ඔබට -එක්ස් අවශ්‍ය නම් - මේ සඳහා vim සඳහා සහාය තිබේදැයි පරීක්ෂා කර බලන්න -: ක්ලිප්බෝඩ් + සකසන්න = නම් නොකළ

නව ගොනුවක් සෑදීමෙන් තොරව මෙය කිරීමට වෙනත් විකල්පයක් තිබේද? අපි සේවාදායකයේ සජීවීව සංස්කරණය කරන්නේ නම්, අපට ආපසු හැරවීමට හැකි වන පරිදි දේශීය යන්ත්‍රයේ උපස්ථ කේතය තබා ගත යුතුය.
එන්.ජේනම්දාර්

බළලා සඳහා +1 සහ පුට්ටි වලින් තෝරන්න. ඇත්ත වශයෙන්ම, විශාල ලිපිගොනු සඳහා ක්‍රියා නොකරනු ඇති අතර එය වඩාත්ම පරිශීලක හිතකාමී ක්‍රමය නොවේ. නමුත් තිර පිටපත් දර්ශනයෙන් පිටත ඇති කුඩා ස්ක්‍රිප්ට් ගොනු පිටපත් කිරීම ප්‍රමාණවත්ය.
ආර්නිස් ජුරාගා

17

GgVG භාවිතා කරන්න. පරීක්ෂණයට ඉහළින් යාමට "gg" ටයිප් කර VG ටයිප් කරන්න.


9

මම CentOS-7 පරිසරයේ Vim 7.4 භාවිතා කරමි. සියලුම පෙළ තෝරා ගැනීම සඳහා මට වැඩ කළ

:%y

එවිට පමණක් pඉදිරි ගොනු මම සම්පූර්ණ පිටපතක් අවශ්ය තැනට දී.

හෝ

ඔබට cat විධානය භාවිතා කළ හැකිය.

cat copyfile > pastefile

මෙම git repo හි තවත් ප්‍රයෝජනවත් විධානයන් ද ඇත.


1
වෙනත් ඕනෑම කේතයකට වඩා හොඳම කෙටිමඟ මෙයයි. මම මෙය අත්හදා බලා ඇති අතර එය චාම් එකක් මෙන් ක්‍රියා කරයි.
itsraghz

7

gg"+yG

හෝ

gg"*yG

+ හෝ * යනු පද්ධති ක්ලිප් පුවරුවද යන්න මත පදනම්ව. (බොහෝ යුනික්ස් වල, + යනු මැද-මූසික ක්ලික් කිරීම සඳහා මූසික තේරීමේ බෆරය වන අතර * යනු පද්ධති ක්ලිප් පුවරුවයි).


1
මම හිතන්නේ එය අනෙක් පැත්තයි: "* තේරීම සහ" + යනු ක්ලිප්බෝඩ් ය. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection
මයිකල්

ඔයා හරි. මමත් ඒක දැනගෙන හිටියා, නමුත් වැරදි දේ ටයිප් කළා. ☹
frabjous

3

මැක් සඳහා, pbcopy (පේස්ට්බෝඩ් පිටපත) භාවිතා කරන්න:

cat file.txt | pbcopy

File.txt හි අන්තර්ගතය දැන් වෙනත් යෙදුමකට ඇලවීම සඳහා ක්ලිප් පුවරුවේ ඇත (උදා: බ්‍රව්සරය).

ඔබට ක්ලිප්බෝඩ් එකේ අන්තර්ගතය ගොනුවකට pbpaste භාවිතයෙන් ඇලවිය හැකිය:

pbpaste > file.txt

මෙයට vi සම්බන්ධ නොවන අතර එය මැක් මත එකම ඉලක්කය සපුරා ගනී.


1

ඔබ ලිනක්ස් ඩෙස්ක්ටොප් එකක් භාවිතා කරන්නේ නම්, ඔබට එය xclip හෝ xsel භාවිතා කර ක්ලිප්බෝඩ් එකට පටවනු ඇත. ගූගල් ඩොක්ස් හි උඩුගත කිරීමේ විශේෂාංගය භාවිතා කිරීමට ඔබට අවශ්‍ය විය හැකි ප්‍රමාණයට.


1

තවත් ක්‍රමයක් වනුයේ:

ඔබ vඔබේ යතුරුපුවරුවේ යතුර එබීමෙන් VIM දෘශ්‍ය ලෙස හරවන්න

පහළට අනුචලනය කිරීමෙන් සියලු පෙළ තෝරන්න

^+ INSERTපිටපත් කිරීමට

SHIFT+ INSERTගූගල් ඩොක්ස් හි ඔබට අවශ්‍ය ඕනෑම තැනක පෙළ ඇලවීමට.



0

මෙය කරන්නේ කෙසේද යන්න පිළිබඳ විකල්ප සඳහා http://vim.wikia.com/wiki/Accessing_the_system_clipboard බලන්න . ("* හි සම්පාදනය කර ඇත්නම් පද්ධති ක්ලිප් පුවරුව වෙත යොමු විය යුතුය). Xem සමඟ vim සමඟ භාවිතා කරන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් ද එහි ඇත.


"* යනු තෝරාගත් දෙය වන අතර" + යනු පිටපත් කරන ලද දෙයයි. vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection
මයිකල්

0

පහත විධානය භාවිතා කරන්න.

cat <your file name>

එය ගොනුවේ අන්තර්ගතය දෝංකාර දෙයි. දැන් තෝරන්න, අනුචලනය කරන්න, පිටපත් කරන්න, අලවන්න.
ක්රිඩාව අවසන් වෙනවා

උදා:

cat bobis.txt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.