Vim හි සම්පූර්ණ පේළියක් අනුපිටපත් කරන්නේ කෙසේද?


1636

මම කොහොමද සමස්තයක් මාර්ගය අනුපිටපත් එපා විම් කිරීමට සමාන ආකාරයකින් Ctrl+ DIntelliJ IDEA / Resharper හෝ Ctrl+ Alt+ / දී එක්ලිප්ස් ?


49
මිනිසුන් තවදුරටත් විම්ටියුටර් ධාවනය නොකරන්නේද? මෙය බොහෝ විට Vim භාවිතා කරන්නේ කෙසේදැයි ඉගෙන ගත් පළමු මිනිත්තු පහ තුළ විය හැකිය.
dash-tom-bang

132
මෙම රේඛාව අනුපිටපත් කිරීමට ඔබ කැමතිද? Yඑස් Pලීසිං. :)
Stavr00

4
FWIW මම පසුගිය මාස 2 තුළ දුසිමක් පමණ vimtutor කර ඇති අතර මෙම සංකල්පය ආවරණය නොවේ. එය “dd” සහ “v - navigation - y” ඉන්පසු “p” කරන්නේ කෙසේදැයි කියයි. මෙහි දී ඉල්ලා ඇති පරිදි එය ඉවත් නොකර තනි පේළියක් පිටපත් කරන්නේ කෙසේදැයි එය නොකියයි.
danielson317

Answers:


2787

yyහෝ Yරේඛාව (mnemonic: පිටපත් කිරීමට y ank )
හෝ
ddකිරීමට elete රේඛාව (ඔබ රැඳවුම් පුවරුවේ-මෙන් "ලියාපදිංචි" බවට මකා දමන දේ විම් පිටපත් වගේ සැපයුම අත්හිටුවන මෙහෙයුම)

එවිට

pකිරීමට පි aste පිටපත් හෝ පෙළ මකා පසු වත්මන් රේඛාවට
හෝ
Pකිරීමට පි aste පිටපත් හෝ මකා පෙළ පෙර වත්මන් රේඛාවට


130
විශිෂ්ට කරුණක්. කිසියම් හේතුවක් නිසා,
ෂිෆ්ට්

26
amcamflan මම හිතන්නේ Y යනු "කර්සරයේ සිට අවසානය දක්වා පිටපතක්" විය යුතුයි
Dzung Nguyen

42
සහ 2yy පේළි 2 ක් පිටපත් කිරීමට භාවිතා කළ හැකිය (සහ වෙනත් ඕනෑම n සඳහා)
අමීර් අලි අක්බාරි

6
XnXqd: ඔව්, පරිශීලකයින්ගෙන් විශාල ප්‍රතිශතයක් සිතියම් ගත Yකරයි y$. (අනුකූල වන Dඅතර C; (නමුත් Vi අනුකූල නොවේ (කිසිවෙකු ගණන් ගන්නේ නැත.))) එය පවා යෝජනා කර ඇත :help Y.
ආරොන් තෝමා

11
රේඛා දෙකක් පිටපත් කිරීමට, එය යෑමට පවා වඩා වේගවත් yjහෝ ykඔබ එක් චරිතය දක්වා දෙගුණ නැහැ, විශේෂයෙන්ම සිට. ප්ලස්, කළ නොහැකි ykපසුගාමී අනුවාදයක් 2yyවන අතර, ඔබට පිටුපසට ලඟා වීමට පේළි ගණන y9jහෝ වෙනත් y2kයනාදිය තැබිය හැකිය . වෙනස වන්නේ ඔබේ ගණන n-1මුළු nපේළි ගණනකට තිබිය යුතු නමුත් ඔබේ හිසට එය ඉගෙන ගත හැකිය කෙසේ හෝ වේවා.
zelk

411

සාමාන්‍ය ප්‍රකාරය: වෙනත් පිළිතුරු බලන්න.

මෙම හිටපු ආකාරය:

  • :t. රේඛාව අනුපිටපත් කරයි,
  • :t 7 7 වන පේළියෙන් පසුව එය පිටපත් කරනු ඇත,
  • :,+t0ගොනුවේ ආරම්භයේ දී වත්මන් සහ ඊළඟ පේළිය පිටපත් කරනු ඇත ( ,+පරාසය සඳහා සමාන පදයකි .,.+1),
  • :1,t$කර්සරයේ පිහිටීම ආරම්භයේ සිට අවසානය දක්වා රේඛා පිටපත් කරනු ඇත ( 1,පරාසය සඳහා සමාන පදයකි 1,.).

ඔබට පිටපත් කිරීම වෙනුවට චලනය කිරීමට අවශ්‍ය නම්, :mඒ වෙනුවට භාවිතා කරන්න :t.

ඔබ සමග එය ඒකාබද්ධ නම් මෙම ඇත්තටම බලවත් විය හැකි :gහෝ :v:

  • :v/foo/m$ “foo” රටාවට නොගැලපෙන සියලුම රේඛා ගොනුවේ අවසානයට ගෙන යනු ඇත.
  • :+,$g/^\s*class\s\+\i\+/t.class xxxකර්සරයට පසුව පෝරමයේ සියලුම පේළි පිටපත් කරනු ඇත .

මූලාශ්ර: :help range, :help :t, :help :g, :help :mහා:help :v


1
ඔබ :දෘශ්‍ය ප්‍රකාරයේදී එබූ විට , එය පරිණාමනය වන '<,'>බැවින් දෘශ්‍ය පරාසය පුරා විහිදෙන රේඛා පරාසය කලින් තෝරා ගනී. එබැවින්, දෘශ්‍ය ප්‍රකාරයේදී, :t0ආරම්භයේ දී රේඛා පිටපත් කරනු ඇත.
බෙනොයිට්

1
වාර්තාව සඳහා: ඔබ කොලන් (:) ටයිප් කරන විට ඔබ විධාන රේඛා මාදිලියට ගොස් එක්ස් විධාන ඇතුළත් කළ හැකිය. vimdoc.sourceforge.net/htmldoc/cmdline.html Ex විධාන සැබවින්ම බලවත් හා දැඩි විය හැකිය. Yyp විසඳුම් "සාමාන්‍ය මාදිලිය" විධානයන් වේ. ඔබට දුර line ත රේඛාවක් හෝ රේඛා පරාසයක් පිටපත් කිරීමට / ගෙනයාමට / මකා දැමීමට අවශ්‍ය නම් Ex විධානයක් වඩා වේගවත් විය හැකිය.
නීල්ස් බෝම්

7
පහත් කොට සලකනු ලැබුවේ එවැනි පිළිතුරක් පිළිබඳ ගැටළුවක් නිසා නොවේ (එය මගේ තත්වය සඳහා ක්‍රියා නොකරනු ඇතත්, මට අනුපිටපත් කිරීමට අවශ්‍ය රේඛා අංකය ගැන මට අදහසක් නැත) නමුත් එය ඇත්ත වශයෙන්ම මේ සඳහා ඉහළම / පිළිගත් පිළිතුර නොවිය යුතු බැවිනි පොදුවේ සෙවූ ප්‍රශ්නය.
mjaggard

9
jmjaggard: පිළිගත් පිළිතුරු ඔවුන්ගේ ලකුණු නොසලකා සෑම විටම ඉහළින්ම සිටී. ඔව්, මම එම පිළිතුර අනුපූරකයක් ලෙස එකතු කළ අතර, එය OP එකට හොඳින් ගැලපෙන බව පෙනේ.
බෙනොයිට්

7
:t.යනු ප්‍රශ්නයට නිශ්චිත පිළිතුරයි.
බුරාක් අර්ඩම්

297

YPහෝ Ypහෝ yyp.


Yසාමාන්‍යයෙන් y$රේඛාවේ අවසානය දක්වා (වත්මන් කර්සරයේ ස්ථානයේ සිට, පේළියේ ආරම්භය නොවේ) දක්වා යං (පිටපත්) වෙත නැවත යවනු ලැබේ. මෙම රේඛාව සමඟ .vimrc::nnoremap Y y$
ආරොන් තෝමා

1
දුප්පත් පැරණි අමතක නොකරන්නyyP
icc97

256

පිටපත් කර අලවන්න

මෙයට වඩා සරල කිසිවක් ලැබෙන්නේ නැත! සාමාන්‍ය ප්‍රකාරයෙන්:

yy

ඉන්පසු ඔබට ඇලවීමට අවශ්‍ය රේඛාවට යන්න

p

34
Gif සෑදීමට ඔබ භාවිතා කළේ කුමක්ද?
සොල්ටන්

4
Ol Zolt youn ඔබට කුඩා ප්‍රමාණයේ LiceCap භාවිතා කළ හැකිය
onmyway133

53

yy

වත්මන් රේඛාව මකා නොදමනු ඇත

dd

වත්මන් රේඛාව මකා දමනු ඇත

p

ඇත putරේඛාවක් පෙර ක්රම විසින් හෝ උදුරා


3
මෙය පළමුව පැමිණි නමුත් එහි අනුපිටපත පිළිගනු ලැබේ: stackoverflow.com/a/73357/1438029
ජෙෆ්රි හේල්

44

මෙය කරන්න:

පළමුව, yyවත්මන් පේළිය පිටපත් කිරීමට, පසුව pඇලවීමට.


20
අවකාශය ටයිප් නොකරන්න.
නීල්ස් බෝම්

1
ඔව්, කර්සරය පේළියේ කෙළවරේ තිබේ නම් සහ ඔබ පෙන්වා ඇති පරිදි අවකාශය ටයිප් කරන්නේ නම්, ඔබ යැවූ රේඛාවට අනුපිටපත් කරන්න.

44

ඔබට වෙනත් මාර්ගයක් අවශ්‍ය නම්:

"ayy: මෙය රේඛාව බෆරයේ ගබඩා කරයි a.

"ap: මෙය බෆරයේ අන්තර්ගතය aකර්සරයේ තබයි.

මේ සම්බන්ධයෙන් බොහෝ වෙනස්කම් තිබේ.

"a5yy: මෙය පේළි 5 බෆරයේ ගබඩා කරයි a.

" විනෝදය සඳහා Vim උදව් ගොනු බලන්න .


ස්තූතියි, මම මෙය බන්ධනයක් ලෙස භාවිතා කළෙමි: සිතියම <Leader> d "ayy" ap
frbl

40

yyp - එය "යිපී" සමඟ මතක තබා ගන්න.

අතර සංඛ්‍යාවක් ඇති පේළි කිහිපයක්:

y7yp


17
7yy යනු y7y ට සමාන වන අතර එය කරන්නේ කෙසේදැයි මතක තබා ගැනීම පහසුය.
අළු

10
y7yp (හෝ 7yyp) කලාතුරකින් ප්‍රයෝජනවත් වේ; කර්සරය පිටපත් කරන ලද පළමු පේළියේ ඉතිරිව ඇති අතර එමඟින් p පිටපත් කළ රේඛා ප්‍රභවයේ පළමු හා දෙවන පේළි අතර අලවනු ලැබේ. පේළි සමූහයක් අනුපිටපත් කිරීම සඳහා 7yyP
Nefrubyr

EfNefrubyr හෝ :.,.+7 copy .+7: P
DarkWiiPlayer

23

yyp - පසු අලවන්න

yyP - පෙර අලවන්න


6
රේඛාව අනුපිටපත් කර ඇති බැවින්, අන්තර්ගතයේ අවසාන ප්‍රති result ලය සමාන වේ.
Acumenus

4
@ABB කෙසේ වෙතත්, මෙහි කුඩා වෙනසක් ඇත - ඔබේ කර්සරය ගොඩ බසින්නේ කුමන රේඛාවටද?
මික්

12

මම කැමතියි: Shift+ v(සම්පූර්ණ පේළිය වහාම තෝරාගෙන ඔබට අවශ්‍ය නම් වෙනත් පේළි තෝරා ගැනීමට ඉඩ දෙන්න), y, p


11

ඔබට <Cx> <Cl> උත්සාහ කළ හැකි අතර එය ඇතුළු කිරීමේ ප්‍රකාරයෙන් අවසාන පේළිය පුනරාවර්තනය වන අතර සියලු පේළි සමඟ සම්පූර්ණ කවුළුවක් ඔබට ගෙන එනු ඇත. එය <Cp> වගේ වැඩ කරයි


මෙය ඉතා ප්‍රයෝජනවත් වේ, නමුත් බොහෝ යතුරු එබීමෙන් වළක්වා ගැනීම සඳහා මම එය CTRL-L වෙත සිතියම් ගත කර ඇත, මෙය මගේ සිතියමයි: inoremap ^ L ^ X ^ L
ජෝර්ජ් ගජොන්

11

තවත් විකල්පයක් වනුයේ:

nmap <C-d> mzyyp`z

කර්සරයේ පිහිටීම ආරක්ෂා කිරීමේ වාසිය ඔබට ලබා දෙයි.


10

Vi නොදන්නා අයෙකුට, ඉහළින් ලැබෙන සමහර පිළිතුරු "පේස්ට් කරන්න ... වත්මන් පේළියට පසු / පෙර" වැනි වාක්‍ය ඛණ්ඩවලින් ඔහුව නොමඟ යැවිය හැකිය .
එය ඇත්ත වශයෙන්ම " කර්සරයට පසු / පෙර / අලවන්න ".

yyහෝ Yපේළිය පිටපත් කිරීමට
හෝ රේඛාව
ddමකා දැමීමට

එවිට

pපිටපත් හෝ මකා පෙළ ඇලවීම පසු එම කර්සරය
හෝ
Pපිටපත් කර හෝ එය මකා දමා ඇති පෙළ ඇලවීම පෙර එම කර්සරය


තවත් යතුරු බන්ධන සඳහා, ඔබට මෙම වෙබ් අඩවියට පිවිසිය හැකිය: vi සම්පූර්ණ යතුරු බන්ධන ලැයිස්තුව


3

1 ගොචා: ඔබ රේඛාව තැබීමට "p" භාවිතා කරන විට, එය ඔබේ කර්සරය ක්‍රියාත්මක වන රේඛාවට පසුව තබයි , එබැවින් ඔබ යොදන රේඛාවට පසුව රේඛාව එක් කිරීමට අවශ්‍ය නම්, කර්සරය රේඛාවකට පහළට ගෙනයන්න එපා නව පේළිය දැමීමට පෙර.


4
හෝ P ප්‍රාග්ධනය භාවිතා කරන්න - පෙර තබන්න
ගෝටි

3

පෙරනිමිය නම් yyp, නමුත් මම වසරක් හෝ ඊට වැඩි කාලයක් තිස්සේ මෙම නැවත භාවිතා කිරීම භාවිතා කර එයට ආදරය කරමි:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv


3

මම සාදයට ප්‍රමාද බව මම දනිමි, නමුත් කුමක් වුවත්; මගේ .vimrc:

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

මෙම :copyවිධානය පමණක් පිටපත් තෝරාගත් තර්කය ලෙස ලබා දී ඇති මාර්ගය අංකය පහත යාම හෝ පරාසය (සෑම විටම සමස්ත රැහැන්).

සාමාන්‍ය ප්‍රකාරයේදී මෙය කරන්නේ copy . මෙම රේඛාව මෙම රේඛාවට පහළින් පිටපත් කිරීමයි .

දෘශ්‍ය ප්‍රකාරයේදී එය '<,'> copy '> තේරීමේ ආරම්භයේ සිට තේරීමේ අවසානය දක්වා තේරීමේ අවසානයට පහළින් ඇති පේළියට පිටපතක් බවට පත්වේ .


1
Here හොඳම පිළිතුර මෙතැන!

2

Vi ඉගෙන ගැනීමට පටන් ගන්නා අය සඳහා, සාමාන්‍ය වින්ඩෝස් GUI සංස්කාරක කර්සරය චලනය සහ කෙටිමං යතුරු සඳහා vi විධානයන් දෙපසින් ලැයිස්තුගත කිරීමෙන් vi සඳහා හොඳ හැඳින්වීමක් මෙහි ඇත. yy(පිටපත් රේඛාව) සහ p(පසු අලවන්න) හෝ P(පෙර අලවන්න) ඇතුළුව සියලුම මූලික විධානයන් එය ලැයිස්තුගත කරයි .

වින්ඩෝස් පරිශීලකයින් සඳහා vi (Vim)


1

සබ්ලයිම් Ctrl+ Shift+ හි මෙන්, පේළියක් අනුපිටපත් කර ධාරාවට පහළින් එය ඇලවීමට Dඔබ කැමති නම්, ඔබට මෙය ඔබගේ .vimrcගොනුවට එක් කළ හැකිය .

nmap <S-C-d> <Esc>Yp

හෝ, ඇතුළු කිරීමේ මාදිලිය සඳහා:

imap <S-C-d> <Esc>Ypa


මෙය ඇතුළු කිරීමේ මාදිලියෙන් ඉවත්ව iයන අතර නැවත ඇතුල් කිරීම සඳහා අවසානයට එකතු කිරීමෙන් එය කැඩී යයි undo, එබැවින් ඇතුළු කිරීමේ මාදිලියේ රේඛා අනුපිටපත් කිරීමේ විසඳුම පෙනෙන තරම් සුළු නොවේ.
DarkWiiPlayer

මෙය මට හොඳින් ක්‍රියාත්මක වේ: imap <S-C-d> <Esc>Ypi ඇතුළු කිරීමේ මාදිලිය සහ nmap <S-C-d> <Esc>Ypසාමාන්‍ය ප්‍රකාරයේදී
jedi

0

මම මෙම සිතියම්කරණය භාවිතා කිරීමට කැමතියි:

:nnoremap yp Yp

මක්නිසාද යත් එය ස්වදේශීය YPවිධානය සමඟ භාවිතා කිරීමට අනුකූල වන බැවිනි .

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.