Answers:
remap
සිතියම් පුනරාවර්තව ක්රියා කරන විකල්පයකි . පෙරනිමියෙන් එය ක්රියාත්මක වන අතර එය එලෙසම තබන ලෙස මම නිර්දේශ කරමි. ඉතිරිය පහත විස්තර කර ඇති සිතියම්කරණ විධානයන් ය :
:map
හා :noremap
ය ආවර්තනික හා නොවන ආවර්තනික විවිධ සිතියම් විධාන සංස්කරණ. එයින් අදහස් කරන්නේ ඔබ එසේ කරන්නේ නම්:
:map j gg
:map Q j
:noremap W j
j
වෙත සිතියම් ගත කෙරේ gg
. Q
ඇත ද චේට කළ gg
නිසා, j
ආවර්තනික සිතියම්ගත කිරීම සඳහා පුළුල් කරනු ලබනවා. W
චේට ඇත j
(සහ නොව gg
නිසා) j
කැමැත්ත-ආවර්තනික නොවන සිතියම්ගත කිරීම සඳහා පුළුල් කරනු නැත.
දැන් මතක තබා ගන්න Vim යනු මොඩල් සංස්කාරකයෙකි . එය සාමාන්ය මාදිලියක්, දෘශ්ය මාදිලියක් සහ වෙනත් මාතයන් ඇත.
මෙම සෑම සිතියම් කට්ටලයක් සඳහාම, සාමාන්ය, දෘශ්ය, තෝරාගත් සහ ක්රියාකරු මාතයන් ( සහ ), සාමාන්ය ප්රකාරයේදී ( සහ ) ක්රියා කරන, දෘශ්ය ප්රකාරයේ ( සහ ) යනාදී වශයෙන් ක්රියා කරන සිතියම්කරණයක් ඇත.:map
:noremap
:nmap
:nnoremap
:vmap
:vnoremap
මේ පිළිබඳ වැඩි මග පෙන්වීමක් සඳහා, බලන්න:
:help :map
:help :noremap
:help recursive_mapping
:help :map-modes
noremap
කළේ ඊට හාත්පසින්ම වෙනස් දෙයක් ලෙසයි map
. මම අදහස් කළේ සිතියමක් ඉවත් කරන දෙයක්. පිළිතුරට ස්තූතියි. එය මට පැහැදිලි කළා
:map
ආදිය සෑම ආකාරයකින්ම ක්රියා නොකරන බව සැලකිල්ලට ගත යුතුය . හරියටම සියලුම පොදු ඒවා (විශේෂයෙන්, සාමාන්ය මාදිලිය, දෘශ්ය ප්රකාරය, තෝරාගත් මාදිලිය සහ ක්රියාකරු-අපේක්ෂිත ප්රකාරය). ඇතුළත් කිරීමක්, විධාන රේඛාවක් හෝ ලැන්ග්-ආර්ග් මාදිලියක වැඩ කිරීමට ඔබට සිතියමක් අවශ්ය නම්, ඔබ භාවිතා කළ යුතුය :map!
. (මුලාශ්රය: vimdoc.sourceforge.net/htmldoc/map.html#map-overview )
මෙම විධානයන් නම් කිරීම පිටුපස ඇති අර්ථය Vim ප්රලේඛනය මගින් පැහැදිලි කළ යුතු යැයි මම සිතමි. ඔවුන් කරන දේ ඔබට පැවසීමෙන් ඔබට නම් මතක තබා ගැනීමට උපකාරී නොවේ.
map
සියලු පුනරාවර්තන සිතියම්කරණ විධානයන්හි “root” වේ. මූල පෝරමය "සාමාන්ය", "දෘශ්ය + තේරීම" සහ "ක්රියාකරු-අපේක්ෂිත" මාතයන් සඳහා අදාළ වේ. ( වාග් විද්යාවේදී මෙන් මම "මූල" යන යෙදුම භාවිතා කරමි .)
noremap
සියලු පුනරාවර්තන නොවන සිතියම්කරණ විධානයන්හි “root” වේ. මූල ස්වරූපය එකම ආකාරයන්ට අදාළ වේ map
. ( nore
"පුනරාවර්තන නොවන" යන්නෙහි අර්ථය සඳහා උපසර්ගය ගැන සිතන්න .)
( ඇතුළු කිරීමට සහ විධාන රේඛාවට අදාළ වන !
මාතයන් ද ඇති බව සලකන්න map!
.)
මෙම සන්දර්භය තුළ "පුනරාවර්තන" යන්නෙන් අදහස් කරන්නේ කුමක්ද යන්න පහත බලන්න.
n
සිතියම්ගත කිරීම ක්රියාත්මක වන මාතයන් වෙනස් කිරීම වැනි මාදිලි ලිපියක් සැකසීම. එයට අදාළ වන මාතයන් ලැයිස්තුවේ උප කුලකයක් තෝරා ගත හැකිය (උදා: “දෘශ්ය” පමණි), නැතහොත් map
අදාළ නොවන වෙනත් මාතයන් තෝරා ගන්න (උදා: “ඇතුළු කරන්න”).
help map-modes
සිතියම්ගත කිරීම අදාළ වන කුමන ආකාරයන් පාලනය කරන්නේ කෙසේද යන්න පැහැදිලි කරන වගු කිහිපයක් භාවිතය මඟින් පෙන්වනු ඇත.
මාදිලි අකුරු:
n
: සාමාන්ය පමණිv
: දෘශ්ය හා තෝරන්නo
: ක්රියාකරු-අපේක්ෂාවෙන් සිටීx
: දෘශ්ය පමණිs
: පමණක් තෝරන්නi
: ඇතුළු කරන්නc
: විධාන රේඛාවl
: ඇතුළු කරන්න, විධාන රේඛාව, රීජෙක්ස්-සෙවීම (සහ වෙනත්. සාමූහිකව "ලැන්ග්-ආර්ග්" ව්යාජ මාදිලිය ලෙස හැඳින්වේ)“ පුනරාවර්තන ” යන්නෙන් අදහස් කරන්නේ සිතියම්කරණය ප්රති result ලයක් දක්වා පුළුල් වන අතර පසුව ප්රති result ලය වෙනත් ප්රති result ලයකට පුළුල් වන අතර යනාදියයි.
මේවායින් එකක් සත්ය වූ විට ප්රසාරණය නතර වේ:
එම අවස්ථාවෙහිදී, අවසාන ප්රති result ලයේ Vim හි පෙරනිමි "අර්ථය" යෙදේ / ක්රියාත්මක වේ.
“ පුනරාවර්තන නොවන ” යන්නෙන් අදහස් වන්නේ සිතියම්ගත කිරීම එක් වරක් පමණක් පුළුල් වන අතර එම ප්රති result ලය ක්රියාත්මක / ක්රියාත්මක වේ.
උදාහරණයක්:
nmap K H
nnoremap H G
nnoremap G gg
ඉහත හේතු K
දක්වා පුළුල් වීමටත් H
, පසුව H
පුළුල් G
වීමටත් නැවැත්වීමටත් හේතු වේ. එය නතර වන්නේ nnoremap
, එය පුළුල් වන අතර වහාම නතර වේ. අර්ථය ක්රියාත්මක G
වනු ඇත (එනම් "අවසාන පේළියට පනින්න"). බොහෝ විට පුනරාවර්තන නොවන සිතියම්ගත කිරීමක් පුළුල් කිරීමේ දාමයක යෙදේ (එය සිදුවීමට ඇති අවසාන ප්රසාරණය වනු ඇත).
හා සිතියම්ගත G
කිරීම gg
ඔබ විසින් නම් පමණි G
ඔබ ඔබන්න නම්, නමුත් K
. පුනරාවර්තව සිතියම් ගත කර K
ඇත්ද යන්න නොසලකා මෙම සිතියම්ගත කිරීම සම්පීඩනයට බලපාන්නේ G
නැත, මන්ද එය 2 වන පේළියේ ප්රසාරණය K
නැවැත්වීමට හේතු වන බැවින් 3 වන පේළිය භාවිතා නොකෙරේ.
map
අදාළ වන්නේ සාමාන්ය, දෘශ්ය, තේරීම් සහ ක්රියාකරු-අපේක්ෂිත මාතයන්ට පමණි, සියලු මාතයන්ට නොවේ.
එක් වෙනසක් නම්:
:map
කරන්නේ nvo
සාමාන්ය + (දෘශ්ය + තෝරා) + ක්රියාකරු තෙක් ==:map!
කරන්නේ ic
== ඇතුලත් කරන්න + විධාන රේඛාව මාදිලියhelp map-modes
වගු වල සඳහන් පරිදි .
එබැවින්: map
සියලුම මාතයන් වෙත සිතියම් ගත නොකරයි .
සියලුම මාතයන් වෙත සිතියම් ගත කිරීම සඳහා ඔබට අවශ්ය වන්නේ :map
සහ :map!
.
command mode
යනු තවත් historical normal mode
තිහාසික නමකි . පරිච්ඡේදය 5 vimdoc.sourceforge.net/htmldoc/intro.html#vim-modes-intro ). 'C' යන කෙටි යෙදුම 'විධාන රේඛාව' සඳහා වේ. වෙනත් වචන වලින් කිවහොත්, පෙරනිමියෙන්: ඇතුළු කිරීමේ + විධාන-ලයින් මාතයන් සඳහා map! lhs rhs
පුනරාවර්තන ලෙස lhs rhs වෙත සිතියම් ගත කරයි . එය පෙරනිමි විකල්පය ~ / .vimrc සමඟ පැහැදිලිව අක්රිය කර නොමැති නම් පමණි. එවැනි අවස්ථාවක සිතියම්ගත කිරීම පුනරාවර්තන නොවේ (සුදුසු නොවේ). remap
set noremap[!]
vnoremap
සහvmap
දෘශ්ය හා තේරීම් ආකාරයෙන් වැඩ කටයුතු. සිතියම් ගත කිරීම දෘශ්ය ප්රකාරයේදී පමණක් භාවිතා කිරීමටxmap
සහ භාවිතා කරන්නxnoremap
.