දෘශ්‍ය මාදිලියේ තේරීමක් ඔබ නැවත භාවිතා කරන්නේ කෙසේද?


170

බොහෝ විට කේතය සංස්කරණය කිරීමේදී, මම දෘශ්‍ය ප්‍රකාරයේදී බ්ලොක් එකක් තෝරාගෙන සෙවීමක් කර බ්ලොක් එක වෙනුවට ආදේශ කරමි. කෙසේ වෙතත්, මම වෙනස්කම් කළ පසු, එය දෘශ්‍ය ප්‍රකාරයෙන් ඉවත් වේ. එකම තේරීම හරහා ඔබ නව සොයාගැනීමක් හා ප්‍රතිස්ථාපනය කරන්නේ කෙසේද?


හොඳයි, මම එක් ක්‍රමයක් සොයා ගත්තෙමි, නමුත් එය ටිකක් කරදරකාරී ය: '<,'> s / old / new / g මෙය කිරීමට ඕනෑම ක්‍රමයක් '<,'> ටයිප් කිරීම අවශ්‍යද?
ලිබරින්ට්

Answers:


255

අවසන් වරට තෝරාගත් දෘශ්‍ය ප්‍රදේශය සමඟ ඔබට නැවත තෝරා ගත හැකිය gv.


4
නියමයි! Stack මෙම විධානය මා විසින්ම සොයා ගන්නේ කෙසේද?
ස්කයිවින්ඩර්

6
ky ස්කයිවින්ඩර්: උදව් gv
හෙප්ටයිට්

6
E හෙප්ටයිට්: ඔබ මෙහි කම්මුලට දිව ඇත්දැයි මට විශ්වාස නැත, නමුත් එම විධානය මඟින් ඔබට පෙන්වන්නේ කුමක්ද: gv ඔබ ඒ ගැන දැනගත් පසු එය කරයි. නමුත් මම එසේ නොකළේ නම් කුමක් කළ යුතුද? (වෝ) මිනිසෙකුට මසුන් ඇල්ලීමට උගන්වන්න.
බෙන් තුල්

En බෙන්තුල්: මම හිතන්නේ මම ප්‍රශ්නය වරදවා වටහා ගත්තා. Vim හි බොහෝ විශේෂාංග ගැන මම දනිමි, කාලයත් සමඟ ලියකියවිලි විශාල ප්‍රමාණයක් කියවීමෙන්, " :help" වලින් ආරම්භ වේ .
හෙප්ටයිට්

4
:help select-visualvim @skywinder තුළ නිවැරදි අත්පොත වෙත ඔබව ගෙන යා යුතුය.

15

gv නියත වශයෙන්ම වේගවත්ම ක්‍රමයයි (අවසාන තේරීම භාවිතා කරන්න), නමුත් ඔබට ස්ථාවර සුරකින තේරීම් කලාපයක් (හෝ කිහිපයක්) අවශ්‍ය නම්, ඔබට සැමවිටම මැක්‍රෝස් සෑදිය හැකිය.

මගේ වර්තමාන ක්‍රමයේ තේරීමක් 25-35 පේළි වලින් ගබඩා කිරීමට මට අවශ්‍ය යැයි කියමු. ටයිප් කිරීමෙන් සමස්ත ක්‍රමයම තෝරා ගන්නා සාර්වයක් මට නිර්මාණය කළ හැකිය

q    //start recording
a    //use register a
25G  //Go to line 25
V    //visual-line mode
35G  //Go to line 35
q    // stop recording

ටයිප් කිරීමෙන් මට එම තේරීම නැවත ලබා ගත හැකිය @a(ලේඛනයේ මැක්‍රෝ ධාවනය කරන්න). ඔබට අවශ්‍ය ඕනෑම ලේඛනයක්, රේඛා හෝ රේඛා කොටස් සමඟ නැවත නැවත කරන්න. නිසැකවම ඔබ ගොනුවේ වෙනස්කම් කළහොත් තේරීමද වෙනස් විය හැකිය, එබැවින් ඔබට "දෘ c කේත" රේඛා අංක වෙනුවට ලකුණු භාවිතා කිරීම සලකා බැලිය යුතුය.


ඔබට රේඛා අංක දැන ගැනීමට අවශ්‍ය බව zmto ඇතුළත් කරන්න. ලකුණු දෙකක් නිර්වචනය කර ඒවා භාවිතා කිරීම වඩා හොඳ යැයි මම සිතමි: 'a,' b ඒවා අතර පරාසය මත ක්‍රියාත්මක වීමට (හෝ රේඛාවක් තුළ කැටිති අවශ්‍ය නම්
බැක්ටික්ස්

ඔව්, රේඛා අංක ගොළු විය - තේරීමේ සාර්වයක් නිර්මාණය කරන්නේ කෙසේද යන්න සඳහා මම එය උදාහරණයක් ලෙස භාවිතා කළෙමි. ලකුණු පරාසයක් භාවිතා කිරීම සිත්ගන්නා අදහසකි ...
ඇලෙක්ස්මා

6

gvඅවසාන තේරීම නැවත ලබා ගැනීම සඳහා විශිෂ්ට ලෙස ක්‍රියා කරයි. නමුත් කෙනෙකුට සමහර විට තව ටිකක් අවශ්‍යයි.

ඔබට කවදා හෝ වඩා ස්ථිර වාර්තාවක් අවශ්‍ය නම්, අපි දැනට GitHub හි වැඩ කරමින් සිටින මෙම ප්ලගිනය දෙස බලන්න .

ඔබේ ලිපිගොනු වල නිශ්චිත ස්ථාන සුරැකීමට හා සලකුණු කිරීමට මෙන් දෘශ්‍යමය වශයෙන් තෝරාගත් ප්‍රදේශ සුරැකීමට සහ ප්‍රතිෂ් restore ාපනය කිරීමට VisualMarks ඔබට ඉඩ දෙයි m. ස්ථාපනය කිරීමෙන් පසුව සහ පෙරනිමි විකල්ප සමඟ, භාවිතා කරන්න:

ma

දෘශ්ය ආකාරයෙන් ලකුණ ඔබේ වත්මන් තෝරාගැනීම බේරා ගැනීමට aනම්,

<a

මෙම තේරීම වෙත ආපසු යාමට සාමාන්‍ය ආකාරයෙන්.


ඇවැත්නි, එය ඇත්තෙන්ම සිසිල් ය. මට ඒ ප්ලගිනය උත්සාහ කර බලන්න වෙනවා! මාර්ගය වන විට, මෙම VisualMarks ඔබට ලකුණු සමඟ mkview සමඟ පැවතිය හැකිද?
labyrinth

@labyrinth මම නොදනිමි mkviewනමුත් .. වෙනම ගොනුවක ලකුණු සුරකින බැවින් මම ඔව් යැයි සිතමි .. කෙසේ හෝ උත්සාහ කර බැලීමට මම යෝජනා කරමි :) ඒවා ඔබ කැමති ආකාරයට නොපවතින්නේ නම්, ඔබගේ විශේෂාංගය ලැබීම ගැන අපි සතුටු වන්නෙමු GitHub වෙතින් ඉල්ලීමක් කර එය ක්‍රියාවට නැංවීමට උත්සාහ කරන්න.
iago-lito '

1

මට ආයුබෝවන් වෙනුවට ආයුබෝවන් ආදේශ කිරීමට අවශ්‍ය යැයි සිතමු සහ පහත කේතය තෝරාගෙන ඇත:

public static void main(String[] args){
    System.out.println("Goodbye World");
}

මම ටයිප් කරන :s/Goodbye/Hello/හා විම් සියලු අවස්ථා වෙනුවට GoodbyeසමගHello

එය හුදෙක් විම්ගේ නිත්‍ය ප්‍රකාශන සහ දෘශ්‍ය මාදිලි තේරීම්වල එකතුවකි. ඔබ තෝරාගත් විට, එය ස්වයංක්‍රීයව පිරවිය යුතුය'<,'>


1
කණගාටුයි, මම ඉල්ලුවේ එය නොවේ. මා අසන්නේ ඔබ කලින් තෝරාගත් පරාසයම වෙනත් සොයා ගැනීමක් හා ප්‍රතිස්ථාපනය කිරීම සඳහා තේරීම නැවත භාවිතා කරන්නේ කෙසේද යන්නයි.
ලිබරින්ට්

1
ප්රතිස්ථාපනය කිරීමෙන් පසුව, ඔබ දෘශ්ය මාදිලියෙන් ඉවත් වනු ඇත. ටයිප් gvකරන්න, ඔබේ දෘශ්‍ය ප්‍රකාරය පෙර තේරීමේ තත්වයට නැවත පැමිණේ.
ස්කොට් න්ගුයින්

0

අන්තිම තේරීම Vim සිහිපත් කරයි.

ඔබ ඇතුළු කරන්නේ නම් : දෘශ්‍ය ප්‍රකාරයේදී එය ස්වයංක්‍රීයව පුරවනු ඇත : '<,'> එවිට ඔබට දිගටම විධානය ඇතුල් කළ හැකිය, උදා.

:'<,'>s/old/new/    # (Replace pattern in selected area)

එකම දෘශ්‍ය තේරීම මත ඔබට වෙනත් විධානයක් ක්‍රියාත්මක කිරීමට අවශ්‍ය නම්, ඔබට පැරණි එක ඉතිහාසයෙන් ගෙනැවිත් සංස්කරණය කළ හැකිය.

:'<,>'s/abc/xyz/    # (This will run the replace command on the same selection area)

පෙර තේරීම භාවිතා කිරීම සඳහා ගැලපුම් රටාවට සහය දක්වන ප්‍රතිස්ථාපන විධානය සහ වෙනත් විධානයන් පැවසීමට තවත් ක්‍රමයක් නම් රටාවට V% V එකතු කිරීමයි, උදා.

:s/\%Vabc/xyz/      # (Same as above)

වැඩිදුර තොරතුරු සඳහා, කරුණාකර බලන්න :% V උදව් \ .

පෙර තේරීම නැවත තේරීමට gv භාවිතා කරන්න .

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.