VIM හි බහු ගොනු සංස්කරණය කරන්නේ කෙසේද?


180

vimවැනි දෙයක් කිරීමෙන් මට බහුවිධ ලිපිගොනු විවෘත කළ හැකි බව මම දනිමි vim 2011-12*.log, නමුත් ගොනු අතර මාරු වී එකවර ගොනු වසා දැමිය හැක්කේ කෙසේද? එසේම, මා සංස්කරණය කරන වත්මන් ගොනුවේ ගොනුවේ නම කියන්නේ කෙසේද?


Answers:


188

පළමුව, විම් ඔබ ඇතුලත් කළ හැකිය :(බඩවැලේ) හා එවකට උදව් help, අල :helpකෙටි සටහනකට ඇතුළු ස්වයං මාතෘකා, ලැයිස්තුවක් සඳහා. මාතෘකා ලැයිස්තුව තුළ ඔබේ කර්සරය උනන්දුවක් දක්වන මාතෘකාව හරහා ගෙන ගොස් ඔබන්න, ctrl]එවිට එම මාතෘකාව විවෘත වේ.

ඔබට ආරම්භ කිරීමට හොඳ ස්ථානයක් මාතෘකාව වනු ඇත

|usr_07.txt|  Editing more than one file

හරි, ඔබේ පිළිතුරට අනුව.

ලිපිගොනු ලැයිස්තුවක් සමඟ vim ආරම්භ කිරීමෙන් පසුව, ඔබට ඇතුලත් කිරීමෙන් :nextහෝ :nකෙටියෙන් ඊළඟ ගොනුව වෙත යා හැකිය . :wnextවත්මන් වෙනස්කම් ලිවීමට කෙටි වන අතර ඊළඟ ගොනුව වෙත යන්න.

ප්‍රතිසමයක් ද ඇත :previous, :wpreviousසහ :Next. (සටහන ඒ :pසඳහා වන සරල යෙදුමකි :print. සඳහා කිමෙක්ද යන්න සාරාංශ :previousකියන්නේ :prevහෝ :N.)

ගොනු ලැයිස්තුවේ ඔබ සිටින්නේ කොතැනදැයි බැලීමට ඇතුලත් කරන්න :argsසහ දැනට සංස්කරණය කර ඇති ගොනුව [](වරහන්) තුළ දිස්වනු ඇත .

උදාහරණයක්:

vim foo.txt bar.txt
:args

ප්‍රති result ලය:

[foo.txt] bar.txt

31
: wn යනු කෙටිම වේ: wnext.
කොව්

ඔබට ද කළ හැකිය: පළමු ගොනුව වෙත ආපසු යාමට rew. : e # ගොනු 2 ක් අතර හුවමාරු වේ. : n! ලිවීමකින් තොරව ඊළඟ ගොනුවට යයි. එසේම බලන්න: ස්වයංක්‍රීයව සකසන්න.
සාස්කිහා

4
බහු බෆර / වින්ඩෝස් / ටැබ් සම්බන්ධයෙන් ද බලන්න ස්ටැක් ඕවර්ෆ්ලෝ හි Vim හි බහු ගොනු සමඟ effectively ලදායී ලෙස ක්‍රියා කරන්නේ කෙසේද? සහ බෆර් වැනි Vim ටැබ් භාවිතා කිරීම .
mmoya

1
22 වන පරිච්ඡේදය "සංස්කරණය කිරීමට ගොනුව සොයා ගැනීම" ද ඉතා ප්‍රයෝජනවත් විය. ඔබට අවශ්‍ය ලිපිගොනු සංස්කරණය කිරීම සඳහා ඩිරෙක්ටරි ගවේෂකය භාවිතා කරයි.
හැරී මොරෙනෝ

: නියමයි.
rammayur

61

Vim විවෘතව තිබියදී ඔබට වෙනත් ගොනුවක් විවෘත කළ හැකි අතර :tabe filenameඔබ ටයිප් කරන අනෙක් ගොනුවට මාරුවීමට :tabnහෝ ඒ :tabpඅනුව ඊළඟ සහ පෙර සඳහා.

යතුරු පුවරු කෙටි මාර්ග GT හා gt ඔබ මාදිලිය (එනම් ඇතුලත් කරන්න තුළ, හිලව් කළ නොහැකි ආදිය මාතයන්), සංස්කරණය නොමැති විට ද ස්විචය ටැබ් කිරීම සඳහා භාවිතා කල හැක. සමහර පද්ධතිවල Ctrl+ Alt+ Page Upසහ Ctrl+ Alt+ Page Downටැබ් මාරු කිරීමටද ඉඩ දෙයි, නමුත් මෙය සැමවිටම ක්‍රියා නොකරයි (නිදසුනක් ලෙස, එය OS X පර්යන්තය 'කොටුවෙන් පිටත' ක්‍රියා නොකරයි).

තවද ඔබට vim යෙදුමේ ඉහළින් ඇති ගොනු නාමය දැකිය හැකිය.


20
මෙය. ටැබ් වලින් ලිපිගොනු විවෘත කරන්න:vim -p file1 file2
දැන් නොවේ

මවිත කරන්න! අවුරුදු ගණනාවක් තිස්සේ මායාකාරිත්වය භාවිතා කර තිබියදීත්, මම මීට පෙර කවදාවත් මෙය හමු නොවෙමි. මෙය සියල්ල වෙනස් කරයි .
me_and

2
ටැබ් බහු ගොනු සමඟ වැඩ කිරීමට අදහස් නොකරන බව සලකන්න. ඒවා බහු පිරිසැලසුම් සමඟ වැඩ කිරීමට අදහස් කරයි . ලිපිය බලන්න .
patryk.beza

7
පසෙකින්: ඔබ දැනටමත් දුර්වල වී ඇති අතර වෙනත් ගොනුවක් එක් කිරීමට අවශ්‍ය නම්, ඔබට භාවිතා කළ හැකිය: :argadd filenameඉන්පසු :nextඑයට. එලෙසම, ඔබට :argdel filenameසංස්කරණයේ ඇති එක් ගොනු ඉවත් කිරීමට භාවිතා කළ හැකිය .
Luv2code

43

බෆර අතර මාරු වීමට විධාන:

:bf            # Go to first file.
:bl            # Go to last file
:bn            # Go to next file.
:bp            # Go to previous file.
:bw            # Close file.

:help buffer වැඩි විස්තර සොයා ගැනීමට

ගොනු නාම භාවිතය දැන ගැනීමට Ctrl+ G, :fileහෝ:f


1
:bwගොනුව වහන්න haha. ඔබ :bwඑය කරන්නේ කුමක් දැයි ඔබ දන්නේ නම් පමණක් එය භාවිතා කළ යුතු යැයි පවසන තැන සඳහා උපකාරය කියවීමට අමතක නොකරන්න . එය ලොකු දෙයක් නොවේ, නමුත් ඔබට ගොනුව පිළිබඳ සියලු ලකුණු සහ තොරතුරු අතුගා දැමීමට අවශ්‍ය නම් මිස, සාමාන්‍ය පුද්ගලයෙකු මෙන් වඩා හොඳ භාවිතය :bdහෝ භාවිතා කිරීම:q
ඩිලන්

1
:bwඔබ කුතුහලයෙන් සිටින විට වැඩි විස්තර : vi.stackexchange.com/questions/2212/…
wisbucky

31

ලබා දී ඇති පිළිතුරු හැරුණු විට තවත් විකල්පයක් වන්නේ කවුළුව පහත පරිදි බෙදීමයි:

:sp
:vsp

:vspසිරස් බෙදීම සඳහා වේ. ඉන්පසු Ctrl+W <ARROW_KEYS>කවුළුවල ගමන් කිරීමට භාවිතා කරන්න.


5
ඔබට :vsඒ වෙනුවට භාවිතා කළ හැකිය:vsp
Khaja Minhajuddin

3
නැතහොත් Ctrl+W, vසිරස් බෙදීම් සහ Ctrl+W, sතිරස් භේදය සඳහා පවා .
රුස්ලාන්

2
මම CTRL+Wවසර ගණනාවක් තිස්සේ භාවිතා කර ඇති අතර මෑතකදී මම වෙබ් පිටු තුළ VI සංස්කරණයන් රාශියක් කරමි. සෑම අවස්ථාවකදීම, මම සිතීමකින් තොරව විධානය ටයිප් කර ... whammmm ... බ්රවුසර පටිත්ත GONE! මට දිගටම අමතක වෙනවා. මට ඇත්තටම නව කෙටිමඟක් ඉගෙන ගැනීමට අවශ්‍යයි.
Jeach


13

මම සුපර් යූසර්හිදී සමාන ප්‍රශ්නයක් ඇසුවෙමි.

"VI සමඟ විවෘත කර ඇති විවිධ බාෂ් කවුළු සහ ගොනු අතර පිටපත් කර අලවන්නේ කෙසේද?"

මගේ ප්‍රශ්නයට පිළිතුර වූයේ ඔබට නොහැකි නමුත් VIM :splitවිධානය භාවිතා කර එක් බාෂ් කවුළුවක ගොනු දෙකක් විවෘත කළ හැකිය :

  1. සමග ගොනුව විවෘත $ vim file1, භාවිතා විම් තුළ දෙවන ගොනුව විවෘත :split file2විධාන.
  2. නැතහොත්, $ vim -o file1 file2bash වලින් භාවිතා කරන්න .
  3. ගොනු අතර මාරුවන්න - සක්‍රීය ගොනුව ටොගල් කරන්න - VIM සමඟ ctrl- w ctrl- w.
  4. උදාහරණ මෙහෙයුමක් වන්නේ ගොනුව 1 හි පිටපත් කිරීම (හෝ යැං) yy, ස්විචය (3), පසුව pඅන්තර්ගතය ගොනු 2 තුළට අලවන්න (හෝ දමන්න) .
  5. එක් කවුළුවක් සක්‍රිය වූ විට අනෙක් සියල්ල සාමාන්‍ය වේ, මේ අනුව :qඉවත්ව :q!බලහත්කාරයෙන් ඉවත් වේ.

මගේ බෑෂ් කළු සහ සුදු ය, එබැවින් එක් එක් තිරයේ ගොනු නාමය එහි සඳහන් කර ඇති ගොනු නම සමඟ ආපසු හරවන ලද 'තෝරාගත්' රේඛාවක් ලෙස සකසා ඇත.

Woot!


6

බහු ලිපිගොනු සංස්කරණය කිරීමේ වඩාත් පහසුම ක්‍රමය වන්නේ ටැබ් භාවිතා කිරීමයි. විධාන රේඛාව හරහා ඔබට වෙනම ටැබ් වලින් ගොනු කිහිපයක් විවෘත කළ හැකිය:

vim -p file1.txt file2.txt

නැතහොත් ඔබට දැනටමත් විවෘතව තිබේ නම්, ඔබට නව ගොනුවක් නව ටැබ් එකකින් විවෘත කළ හැකිය:

:tabe file2.txt

ඔබ ටැබ් විවෘත කළ පසු, gtඊළඟ ටැබ් gTඑක බැලීමට සහ පෙර ටැබ් එක බැලීමට භාවිතා කරන්න.

ඔබට පළමු පටිත්ත සමඟ 1gt, දෙවන පටිත්ත සමඟ 2gtයනාදිය වෙත යා හැකිය.

භාවිතයෙන් ඔබට ටැබ් වසා දැමිය හැකිය :tabc

අවසාන වශයෙන් ඔබ වෙත ටැබය ගමන් කළ හැකි nසමග වන ස්ථානය :ntabmඑහිදී nඕනෑම වැඩි සංඛ්යාවක් වඩා හෝ සමාන 0.


6
argadd a/b c/d e/f

argadd ...සියලු ලිපිගොනු ආග්ස් වෙත එකතු කරනු ඇති අතර :ls/ :buffersසහ ඒවා සංස්කරණය කිරීමට ඔබට ඉඩ සලසයි.


බලන්න :h arglsit& :h argedit&:h argsd


එසේම, ඔබට යම් ක්‍රියා සිදු කළ හැක්කේ ආග්ස් සමඟ පමණක් වන අතර :argdo ..., එසේ කිරීමෙන් ඔබට ඔබේ ආග්ස් සමඟ නැවත ආරම්භ කළ හැකිය :argsd*.


1

එසේ කිරීමට බොහෝ ක්‍රම තිබේ. පළමුවැන්න, අඩු පහසුකමක්, vimඔබට සංස්කරණය කිරීමට අවශ්‍ය ලිපිගොනු සමඟ ඇමතීමයි - සාදන්න:

vim first_file second_file ...

එය ගොනු දෙක බෆර දෙකකින් අමතයි. ගොනුව සිට තවත් මාරුවීමට, භාවිතා කරන්න :nසහ :N. ඔබ සංස්කරණය කරන ලිපිගොනු ලැයිස්තුගත කිරීම සඳහා, :argsඑම කාර්යය කරනු ඇත. :help bufferමේ පිළිබඳව ඔබට තවත් උදව් වනු ඇත.


මෙය ඔබේ ප්‍රශ්නයට පිළිතුරු සැපයිය යුතුය. නමුත් වැඩි විස්තර මෙන්න:

Vim භාවිතා කර ඔබේ කොන්සෝලය තිරය බෙදීමෙන් ඔබේ ලිපිගොනු වඩාත් පහසු ආකාරයකින් සංස්කරණය කිරීමට ක්‍රමයක් තිබේ . මෙය සිදු කිරීම සඳහා, vim භාවිතා කරන අතරතුර :split( :sp) හෝ :vsplit( :vs) සමඟ රාමු දෙකක් විවෘත කරන්න . ඉන්පසු + > + සංයෝජනය භාවිතා කරමින් මෙම රාමු තුළ සැරිසැරීම . ඔබ ද භාවිතා කළ හැකිය + + ඊතල හෝ යතුර ( , , හෝ ඉදිරි රාමුව අනුරූප). මෙය සිදු කළ විට, ඔබට අවශ්‍ය ගොනුව සංස්කරණය කරන්න . මේ පිළිබඳව ඔබට තවත් උදව් වනු ඇත.CtrlWCtrlWCtrlWHJKL:e file_name:help opening-window

දැන්, ඔබ ලිපිගොනු අතර ඇති වෙනස්කම් දැකීමට කැමති නම්, -dතර්කය භාවිතා කරන්න හෝ අදාළ ලිපිගොනු සමඟ vimdiff වැඩසටහන අමතන්න (එය සමාන වේ). :help diffමේ පිළිබඳව ඔබට තවත් උදව් වනු ඇත.

vim -d first_file second_file ...

ඔබට යම් ගැටළුවක් ඇත්නම් කරුණාකර මට දන්වන්න.


1

බහු ගොනු සංස්කරණය කිරීම සඳහා තිරස් හා සිරස් යන බෙදීම් කවුළු භාවිතා කිරීමට මම කැමතියි.

එම කවුළු වඩාත් පහසුවෙන් කළමනාකරණය කිරීමට මම tmux භාවිතා කරමි

https://tmux.github.io/ "ටර්මිනල් බහුමාපකය යනු කුමක්ද? එය ඔබට එක් පර්යන්තයක වැඩසටහන් කිහිපයක් අතර පහසුවෙන් මාරු වීමටත්, ඒවා වෙන් කිරීමටත් (ඒවා පසුබිමේ ක්‍රියාත්මක වෙමින් පවතී) සහ වෙනත් පර්යන්තයකට නැවත සම්බන්ධ කිරීමටත් ඉඩ සලසයි. අත්පොත බලන්න.

උදාහරණය: දකුණු පසින් ලිපිගොනු බැලීම හෝ පරීක්ෂණ ධාවනය කිරීම, වම් පස ඇති පරීක්ෂණ සහ ප්‍රභව ගොනු සංස්කරණය කිරීම: රූප විස්තරය මෙහි ඇතුළත් කරන්න


0

:e #(filename) විවෘත කළ ගොනු දෙකක් අතර ටොගල් කිරීමට

:p පෙර ගොනුව සඳහා

:n ඊළඟ ගොනුව සඳහා


යූ ඇන්ඩ් එල් වෙත සාදරයෙන් පිළිගනිමු, මෙය වසර ගණනාවකට පෙර පළ කරන ලද වෙනත් පිළිතුරකට කිසිවක් එකතු නොකරයි.
ආකේමාර්
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.