Vi සංස්කාරකයේ පේස්ට් අන්තර්ගතය පිටපත් කරන්නේ කෙසේද


193

Vi සංස්කාරක ලේඛනයක අන්තර්ගතය ඇලවීම සඳහා මම Ctrl+ භාවිතා කිරීමට උත්සාහ කළෙමි V, නමුත් Ctrl+ Vපේස්ට් ලෙස අර්ථකථනය නොකෙරේ.


17
සටහනක් පමණක්, Vi භාවිතා කිරීමට ප්‍රධාන හේතුව වන්නේ Vim ස්ථාපනය කර නොමැති වීමයි. ඔබ Vim ස්ථාපනය කර ඇත්නම්, ඒ වෙනුවට එය භාවිතා කිරීම වටී. සෑම යුනික්ස් ස්ථාපනයකම දැනටමත් Vi ට අමතරව Vi ට වාසියක් නොමැත. මගේ මතය අනුව Vim ඉගෙන ගැනීමට ඇති හොඳම ක්‍රමය නම් ඔබේ ටර්මිනල් ඉමියුලේටරය විවෘත කිරීම (Vim තුළ සිට නොවේ) සහ vimtutorඑය ටයිප් කරන්න එය ඔබට විනාඩි 45 කින් පමණ භාවිතා කළ හැකි ස්ථානයට වේගවත් කරයි.
බෙන් මොර්දෙකයි

1
+1 en බෙන් මොර්දෙකයි - එහි පහසු උප-ෂෙල් හැකියාව ඇතුළුව vi (පැරණි සිට) මට දැනටමත් හුරු පුරුදු නමුත් එම නැවුම්බව අවශ්‍ය විය. විශාල ඉගැන්වීම් ටිකක්. සුළඟක් මෙන් ඒ හරහා ගියා. ස්තූතියි.
Cbhihe

Answers:


223

පළමුව, ඔබ සංස්කරණ මාදිලියේ සිටින බවට වග බලා ගන්න (ඔබන්න i). ඔබ වැනි ටර්මිනල් ඉමුලේටරයක සිටී නම් ඔබට Ctrl+ Shift+ සමඟ ඇලවිය හැකිය (නැතහොත් දකුණු-ක්ලික් මෙනුවෙන් "අලවන්න" තෝරන්න).Vgnome-terminal

:set pasteස්වයංක්‍රීය ඉන්ඩෙන්ටින් අක්‍රීය කිරීම සඳහා ඇලවීමට පෙර ඔබට vim ටයිප් කළ හැකිය . ඉන්පසු :set nopasteඔබ අන්තර්ගතය අලවා ගත් පසු.

වැඩි විස්තර සඳහා මෙම ප්‍රශ්නය stackoverflow.com හි පරීක්ෂා කරන්න .

ඔබට පේළි පිටපත් කිරීමට / ඇලවීමට අවශ්‍ය නම් vim(ක්ලිප්බෝඩ් අන්තර්ගතය ඇලවීමට වඩා වෙනස්ව), ඔබට යෑන්ක් විධානය පරීක්ෂා කිරීමට අවශ්‍ය වනු ඇත . මෙන්න උදව් විය හැකි වංචා පත්‍රිකාවක් .


1
මම හිතන්නේ ඔබට මූසික කර්සරය තිබේ නම්, ඔබට Ctrl + Shift + V භාවිතා කර ඇලවිය නොහැක.
ඇල්වින් වොන්

14
සටහනක්, Iඑය සිද්ධි සංවේදී ය. සිම්පල් iයනු ඇතුළු කිරීමේ මාදිලියට ඇතුළු වීමේ සාමාන්‍ය ක්‍රමයයි. ප්රාග්ධනය Iකර්සරය රේඛාවේ ආරම්භයට ගෙන එන අතර පසුව ඔබ ඇතුළු කිරීමේ ප්රකාරයට ඇතුල් වේ.
බෙන් මොර්දෙකයි

69

ගෙඩිට් වැනි සාමාන්‍ය පෙළ සංස්කාරකයකට සාපේක්ෂව Vi (සහ Vim) වෙනස් ආකාරයකින් ක්‍රියා කරයි. එය ද ඉතා තදින් ඉගෙනීමේ වක්‍රය ඇත. ඔබට මූලික විධාන කිහිපයක් ඉගෙන ගැනීමට අවශ්‍ය නම්, මෙම අන්තර්ක්‍රියාකාරී නිබන්ධනය සමඟ ආරම්භ කරන්න .

කෙසේ වෙතත්, ඔබේ ප්රශ්නයට පිළිතුරු දීමට. පද්ධති ක්ලිප්බෝඩ් හි අන්තර්ගතය ප්ලස් ලේඛනය හරහා ලබා ගත හැකිය. එබැවින් පද්ධති ක්ලිප්බෝඩ් එකෙන් යමක් ඇලවීම සඳහා ඔබට සාමාන්‍ය ප්‍රකාරයෙන් එබිය හැකිය: "+p(එකවරම නොව එකින් එක).


3
මෙය මම මේ දක්වා නොදැන සිටි දෙයක්. එසේම, තවත් අපූරු විම් නිබන්ධනයක් සම්බන්ධ කිරීම සඳහා +1.
ආටිලා ඕ.

20
සංස්කාරකවරුන් සඳහා ඉගෙනීමේ වක්‍ර ගැන කථා කරන විට, “සමහර පොදු සංස්කාරකවරුන් සඳහා සම්භාව්‍ය ඉගෙනුම් වක්‍ර” ඇත, blog.thilelli.net/public/store/attached/curves.jpg .
hlovdal

GNOME Terminal හි, පිටපත් කිරීම හා ඇලවීම සඳහා කෙටිමං පිළිවෙලින් Ctrl-Shift-C සහ Ctrl-Shift-V වේ.
Flimm

1
මම <kbd> "</kbd>, <kbd> + </kbd> සහ <kbd> p </kbd>, <kbd>" </kbd> සහ <kbd> p < / kbd> සහ කිසිවක් සිදුවී නැත. මම වැරැද්ද කළේ කුමක්ද? මම භාවිතා viනොවේvim
user907860

1
එය නිවැරදි පිළිතුරයි. උදා. Ctrl-Shift-v වැඩ කරන්නේ සරලම අන්තර්ගතයන් සමඟ පමණි (ඔබ පර්යන්තයේ සිටී නම් රේඛා බිඳීම් සහ ඉන්ඩෙන්ටේෂන් වැරදියි, ඔබට භාවිතා කිරීමට අමතක විය set :paste).
rsenna

30
  1. එකම ගොනුවක් තුළ පේස්ට් අන්තර්ගතය පිටපත් කිරීමට ඔබට අවශ්‍ය නම් , භාවිතා කරන්න yankසහ paste.

  2. ඔබට ටර්මිනල් හරහා පේස්ට් අන්තර්ගතය පිටපත් කිරීමට අවශ්‍ය නම් , පළමු ගොනුව විවෘත කර, ඔබට අවශ්‍ය පා y යං කර, ඉන්පසු ඔබේ දෙවන ගොනුව vim (උදා :tabnew /path/to/second/file) තුළ විවෘත pකර එය ඇලවීමට ඔබන්න .

  3. ඔබට පේස්ට් අන්තර්ගතය vim සිට බාහිර වැඩසටහනකට පිටපත් කිරීමට අවශ්‍ය නම් , ඔබට පද්ධති ක්ලිප් පුවරුවට ප්‍රවේශ විය යුතුය. මම හිතන්නේ ඔබ උබුන්ටු භාවිතා කරයි. Vim හි GUI අනුවාදය සෑම විටම ක්ලිප්බෝඩ් සහාය ඇත, කෙසේ වෙතත්, ඔබ ටර්මිනලයකින් Vim භාවිතා කිරීමට කැමති නම්, ඔබට X11- ක්ලිප්බෝඩ් සහාය සඳහා පරීක්ෂා කිරීමට සිදුවේ.

    කොන්සෝලයෙන්, ටයිප් කරන්න:

    $ vim --version | grep xterm
    

    ඔබ -xterm_clipboard සොයා ගන්නේ නම් , ඔබට විකල්ප දෙකක් තිබේ:

    1) xterm_clipboard ධජය සක්‍රිය කර vim ඔබම සම්පාදනය කරන්න

    2) vim අස්ථාපනය කරන්න, ඒ වෙනුවට gvim (vim-gtk හෝ vim-gnome) ස්ථාපනය කරන්න . ඔබ කලින් කළ ආකාරයටම ටර්මිනලයේ සිට vim ඇමතීමෙන් ඔබට ගුයි නොවන වයිම් වලට ඇලී සිටිය හැකිය. මෙවර ඔබ පරීක්ෂා කරන විට ඔබ + xterm_clipborad සොයා ගත යුතුය .

    දැන්, ඔබ ඔබේ වයිම් සංස්කාරකය තුළ ඇති + රෙජිස්ටරයේ යම් පෙළක් යැවූ විට (උදා: + + yy), එය පද්ධති ක්ලිප් පුවරුවට පිටපත් කරනු ලැබේ, එය Ctrl+ භාවිතා කිරීමෙන් gedit editor වැනි ඔබේ බාහිර වැඩසටහනෙන් ලබා ගත හැකිය V.

  4. ඔබට බාහිර වැඩසටහනකින් පේස්ට් අන්තර්ගතය vim වෙත පිටපත් කිරීමට අවශ්‍ය නම් , පළමුව ඔබේ පා system ය පද්ධති ක්ලිප්බෝඩ් එකට Ctrl+ හරහා පිටපත් කරන්න C, ඉන්පසු vim editor ඇතුළු කිරීමේ ප්‍රකාරයේදී , මූසික මැද බොත්තම ක්ලික් කරන්න (සාමාන්‍යයෙන් රෝදය) හෝ Ctrl+ Shift+ ඔබන්නV ඇලවීමට .

    මේවා vim හා සම්බන්ධ මූලික පිටපත් සහ පේස්ට් කොන්දේසි 4 කි. මම හිතනවා මේක උදව් වෙයි කියලා.


මෙහි තේරුම කුමක්ද: ටැබ්නිව් / මාර්ගය / සිට / තත්පර / ගොනුව? පළමු ගොනුවේ යන්කිං / පිටපත් කිරීම / කැපීම, දෙවන ගොනුව සමඟ විවෘත කිරීම: vi / path / to / second / file සහ එහි ඇලවීම (p / P). අවම වශයෙන් මගේ කාරණයේදී ... නැතහොත් + xterm_clipboard vim විශේෂාංගය සක්‍රීය කර ඇති නිසාද? එසේත් නැතිනම් ඊට වඩා වැඩි යමක් තිබේද?
Cbhihe

1
උබුන්ටු මත vim-gtkඇති xterm_clipboardසහයෝගය හා ෆෙඩෝරා මෙහෙයුම් පද්ධතිය xvimඑය ඇත.
icc97

22

මම නිතරම භාවිතා කරන්නේ Shift+ Insertටර්මිනලය තුළට පෙළ ඇලවීමට අවශ්‍ය විට, සියලු පර්යන්ත වැඩසටහන් වල ක්‍රියා කරයි.

( Insertද්විතීයික යතුරක් එබීමෙන් තොරව ඔබට එබිය නොහැකි ලැප්ටොප් පරිගණකයක් මට කිසි විටෙකත් නොලැබීමට හේතුව එයයි )


3
Vi/ Vim! = පර්යන්තය;)
0xC0000022L

මේ සඳහා +1 .. ඔයා කියන්නේ ඉටු කිරීමට කුමක්ද භාවිතා කරන්නේ Ctrl+A, Ctrl+Cද?
අරුප් රකිත්

මම DE තුළ ටර්මිනලයක් භාවිතා කරන්නේ නම් මම සාමාන්‍යයෙන් මූසිකය සමඟ පෙළ තෝරා Ctrl + Shift + C සමඟ පිටපත් කරමි.
මැග්නස් ජොන්සන්

Shift + ඇතුළු කිරීම gvim හි ද ක්‍රියා කරයි. (මම යම් වෙනසක් කරන්නේ නම් මම උබුන්ටු 13.10 ධාවනය කරමි.)
eksortso

10

ඔබ උද්දීපනය කළ පෙළ වෙනත් තැනකට ඇතුළු කිරීමට මූසිකයේ මැද බොත්තම භාවිතා කරන්න .

ඔබේ පද්ධති ක්ලිප් පුවරුවට ඔබට ප්‍රවේශය නොමැති විට එය ප්‍රයෝජනවත් වේ (නිදසුනක් ලෙස දුරස්ථ SSH සැසියකදී).

Vim සඳහා සංස්කරණ / ඇතුළත් කිරීමේ මාදිලියේ තිබිය යුතුය.


ඔබ සතුව ස්පර්ශක පෑඩ් පමණක් ඇති ලැප්ටොප් පරිගණකයක් භාවිතා කරන්නේ නම් කුමක් කළ යුතුද? එවිට ඔබේ විසඳුම ක්‍රියාත්මක නොවේ.
Phemelo Khetho

7

ඔබ vi ඇතුළු කළ පසු, iඇතුළු කිරීමේ මාදිලියට ඇතුළු වීමට ඔබන්න , ටර්මිනලයට දකුණු ක්ලික් කරන්න, අලවන්න ක්ලික් කරන්න.


මම හිතුවේ ලොකු අකුරක් කියලයි i. ඉහළ නඩුව Iකරන්නේ කුමක්ද?
Flimm

Answer බෙන් මොර්දෙකයි විසින් වෙනත් පිළිතුරක් පිළිබඳව කරන ලද ප්‍රකාශයකින් දැනටමත් පැහැදිලි කර ඇති ෆ්ලිම්.
sierrasdetandil

මම පිළිතුර කුඩා අකුරු ලෙස සංස්කරණය කර ඇත i. ඉහළ නඩුව Iඇතුළු කිරීමේ මාදිලියට ඇතුළු වීමට පෙර කර්සරය පේළියේ ආරම්භයට ගෙන යයි, එය මෙහි අවශ්‍ය නොවේ.
Flimm

6

Vi භාවිතා කරමින් yankසහ පෙළ පෙළ පිටපත් කිරීමට / ඇලවීමට සවිස්තරාත්මක උපදෙස්put

( vi හි විධාන ප්‍රකාරයේදී පහත සඳහන් දෑ භාවිතා කරන්න )

පිටපත් කරන්න (YANK)

Vi හි එක් පේළියක් පිටපත් කිරීමට:

  • විධාන ප්‍රකාරයේදී, කර්සරය පිටපත් කිරීමට අවශ්‍ය රේඛාවට ගෙන ගොස් ටයිප් කරන්න yyහෝ ටයිප් කරන්නY

පේළි 2 ක් vi හි පිටපත් කිරීමට:

  • විධාන ප්‍රකාරයේදී, කර්සරය පිටපත් කිරීමට අවශ්‍ය පළමු පේළියට ගෙන ගොස් ටයිප් කරන්න 2yyහෝ ටයිප් කරන්න2Y

(ඒ හා සමානව, ඕනෑම පේළි ගණනක් පිටපත් කළ හැකිය)

වත්මන් ස්ථානයේ සිට ගොනුවේ අවසානය දක්වා සියලුම රේඛා පිටපත් කිරීමට:

  • විධාන ප්‍රකාරයේදී, කර්සරය පිටපත් කිරීමට අවශ්‍ය පළමු පේළියට ගෙන ගොස් ටයිප් කරන්න yG

වත්මන් ස්ථානයේ සිට වත්මන් වචනයේ අවසානය දක්වා සියලුම පෙළ පිටපත් කිරීමට:

  • විධාන ප්‍රකාරයේදී, කර්සරය පෙළ පිටපත් කළ යුතු ස්ථානයට ගෙන ගොස් ටයිප් කරන්න yw

වත්මන් ස්ථානයේ සිට පේළියේ අවසානය දක්වා සියලුම පෙළ පිටපත් කිරීමට:

  • විධාන ප්‍රකාරයේදී, කර්සරය පෙළ පිටපත් කළ යුතු ස්ථානයට ගෙන ගොස් ටයිප් කරන්න y$

අලවන්න (PUT)

ක්ලිප් පුවරුවේ පෙළ ඇලවීමට - කර්සරයේ පිහිටීමෙන් පසු :

  • විධාන ප්‍රකාරයේදී ටයිප් කරන්න p

ක්ලිප් පුවරුවේ පෙළ ඇලවීමට - පෙර කර්සරයේ පිහිටීමට :

  • විධාන ප්‍රකාරයේදී ටයිප් කරන්න P

2

මගේ Vim ස්ථාපනය ක්ලිප් පුවරුවට සහය නොදක්වන නිසා මට ගැටළුවක් ඇති විය :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

මම vim-gnome (ක්ලිප් පුවරුවට සහය දක්වන) ස්ථාපනය කර නැවත පරීක්ෂා කළෙමි:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

දැන් මට පිළිවෙලින් "+ y සහ" + p භාවිතා කර පිටපත් කිරීමට හැකිය.


මෙය මගේ ගැටලුව විසඳීය!
astrojuanlu

2

ලිනක්ස් හෝ මැක්හි Vim 8+ සමඟ, ඔබට දැන් මෙහෙයුම් පද්ධතියේ ස්වදේශීය පේස්ට් භාවිතා කළ හැකිය ( ctrl+shift+Vලිනක්ස් cmd+Vමත, මැක්හි). iඇතුළු කිරීමේ ප්‍රකාරය සඳහා ඔබන්න එපා .

එය ස්වයංක්‍රීය මෙහෙයුම් පද්ධතියක් එක් නොකර ඔබේ OS ක්ලිප්බෝඩ් එකේ අන්තර්ගතය, අවකාශ සහ ටැබ් ආරක්ෂා කරයි. එය පැරණි සමාන වේ :set paste, i, ctrl+shift+V, esc, :set nopasteක්රමය.

ඔබට තවදුරටත් ස්ථාපනය කර ඇති +clipboardහෝ +xterm_clipboardvim විශේෂාංග අවශ්‍ය නොවේ. මෙම අංගය "වරහන් සහිත පේස්ට්" ලෙස හැඳින්වේ. වැඩි විස්තර සඳහා, /programming/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763 බලන්න


ඒක තමයි මම හොයන පිළිතුර. Vn යනු gnu / linux distros හි සුපුරුදු නොවන බැවින් එය උබුන්ටු වල පවා ස්ථාපනය කළ යුතුය. මීට අමතරව, Vi හි ඉහළ බොත්තම් උබුන්ටු මත ක්‍රියා නොකරන අතර උද්දීපනයක් නොමැත.
snr - මොනිකා නැවත

මෙය ඡන්දය සැලකිය යුතු ලෙස වැඩි නොවන්නේ ඇයි?
ජූල්

1

පළමුව, ඔබේ Vim හි ක්ලිප්බෝඩ් සහාය ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කරන්න

:echo has('clipboard')

එය 1 ක් ආපසු ලබා දෙන්නේ නම් ඔබට ක්ලිප්බෝඩ් සහාය ඇත

එක්කෝ ඔබ පසුරුපුවරුව වෙත පිටපත් කිරීමට ඔබේ ඉලක්ක තෝරා, ඉඩ ගේ ඡේදය මෙසේ vipඑදා සහ "+y, ලේඛණයට ඒ කියන්නේ, +තෝරාගත් කොටසක් පිටපත් හෝ ඔබ හුදෙක් සාමාන්ය ආකාරයෙන් ටයිප් කළ හැක: "+yipඒ කියන්නේ,: ලේඛණයට+ අභ්යන්තර ඡේදය පිටපත් කරන්න.

ක්ලිප්බෝඩ් එකෙන් සාමාන්‍ය ආකාරයෙන් ඇලවීමට ඔබට:

"+p

ඇතුළු කිරීමේ ප්‍රකාරයේදී ඔබට සරලව කළ හැකිය Ctrl-rCtrl-o+ . එය ඔබගේ ක්ලිප්බෝඩ් අන්තර්ගතය ඇතුළු කර ක්ලිප්බෝඩ් එකේ ඇති පරිදි සියලු ඉන්ඩෙන්ටේෂන් ආරක්ෂා කරයි.

ඔබට සම්පූර්ණ බෆරය ක්ලිප් පුවරුවට පිටපත් කිරීමට අවශ්‍ය නම්:

:%y+
% ........ the whole file
y ........ yank (copy)
+ ........ to the clipboard

අවසාන විධානය ක්ලිප් පුවරුවට පිටපත් කිරීමට:

:let @+=@:

අවසාන සෙවුම ක්ලිප් පුවරුවට පිටපත් කිරීමට:

 :let @+=@/

ක්ලිප් පුවරුවට "ආ" සලකුණ තෙක් "අ" සලකුණෙන් පිටපත් කිරීමට:

 :'a,'b y+

ක්ලිප්බෝඩ් එකේ ඇති ඕනෑම ශ්‍රිතයක් පරීක්ෂා කිරීමට

:@+    (and then type Enter)
:call FunctionName() (and then type Enter)

ක්ලිප් පුවරුවේ ඇති දේ බැලීමට:

:reg +

"රටාව" ඇති සියලුම පේළි ක්ලිප් පුවරුවට පිටපත් කිරීමට ඔබට:

:let @a=""
:[range]g/pattern/y A
:let @+=@a

:let @a="" ............ cleanses the register 'a'
:[range]g/pattern/y A   append to the register A every line with pattern
:let @+=@a ............ copy register 'a' to the clipboard


0

වින්ඩෝස් හි Git Bash හරහා Vim භාවිතා කිරීමෙන් ඔබට pඇතුල් කිරීමේ මාදිලියේ නොසිට මූසිකය භාවිතා කළ හැකිය . හරහා විම් භාවිතා පුටි , ඔබ හරි ක්ලික් කළ හැකිය. කැපී පෙනෙන ලෙස පිටපත් කිරීම සිදු කරයි.

මම මෙය සටහන් කර ඇත්තේ උබුන්ටු සඳහා මෙය SE බව මා නොදකින බැවිනි.

වෙනත් ප්‍රයෝජනවත් විධාන:

  • yy(පේළි #) - යැං (පිටපත)
  • dd(පේළි #) - මකන්න
  • p - වත්මන් රේඛාවට පහළින් පේස්ට් පේස්ට් කරන්න
  • Shift+ p- වත්මන් රේඛාවට ඉහළින් පේළිය අලවන්න
  • u - අහෝසි කරන්න
  • r - නැවත කරන්න
  • i - ඇතුළු කිරීමේ මාතය
  • v - දෘශ්‍ය මාදිලිය

එය වින්ඩෝස් ගිට් බෑෂ් හි මට වැඩ කළේ නැත. ඔබ භාවිතා කරන්නේ කුමන කොන්සෝලයද, මින්ටි හෝ වින්ඩෝස් cmd?
wisbucky

මම විශ්වාස කරන්නේ එය මින්ටි බවයි.
ටයිලර් ක්‍රිස්ටියන්

0

ටර්මිනල් අනුවාදය vim හි ඇලවීම සඳහා ඔබට Ctrl+ Shift+ භාවිතා කළ හැකිය V, නමුත් GUI අනුවාදය වැනි සඳහා Neovim-Qt, පද්ධති ක්ලිප්බෝඩ් එකෙන් Ctrl+ Shift+ සමඟ පෙළ ඇලවීම Vසරලව ක්‍රියා නොකරනු ඇත. ඔබට ක්ලිප්බෝඩ් එකට "+හෝ "*වීම් සංස්කාරකයට පිවිසිය යුතුය .

නව යතුරු බැඳීම එක් .vimrcකිරීමෙන් විධාන පිටපත් කිරීම / අලවීම සිදු වේ :

" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
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.