tl; dr: වෙනත් බොහෝ වැඩසටහන් වලදී මෙන් පසුබිම වැඩ කිරීමට මෙය ඔබගේ vimrc වෙත එක් කරන්න:
set backspace=indent,eol,start
දිගු පිළිතුර
පෙරනිමි හැසිරීම පුදුමයට කරුණක් වුවද, පසුපස අවකාශය “ක්රියා නොකිරීම” අංගයක් ලෙස සැලකිය හැකිය ; එය අහම්බෙන් ඉන්ඩෙන්ටේෂන් ඉවත් කිරීමෙන් සහ වත්මන් රේඛාවට සහ / හෝ ඇතුළු කිරීමේ ආරම්භයට සීමා කිරීමෙන් ඕනෑවට වඩා පෙළ ඉවත් කිරීමෙන් වළක්වා ගත හැකිය.
:help 'backspace'
අපට කියයි:
Influences the working of `<BS>`, `<Del>`, `CTRL-W` and `CTRL-U` in Insert
mode. This is a list of items, separated by commas. Each item allows
a way to backspace over something:
value effect
indent allow backspacing over autoindent
eol allow backspacing over line breaks (join lines)
start allow backspacing over the start of insert; CTRL-W and CTRL-U
stop once at the start of insert.
ඉතින් මෙම අගයන් හරියටම අදහස් කරන්නේ කුමක්ද?
indent
Vim බොහෝ ගොනු වර්ග සඳහා ස්වයංක්රීය ඉන්ඩෙන්ටේෂන් එක් කරයි; පෙරනිමියෙන්, ඔබට මේ
පිළිබඳව පසුපසට යාමට අවසර නැත ; 'ස්වයංක්රීයකරණය' ලෙස සැලකෙන නීති තරමක් සියුම් ය, උදාහරණයක් ලෙස, අපි මෙය ටයිප් කරන්නේ නම් (මෙහි කර්සරය වේ):
if :; then
█
බැක්ස්පේසිං ක්රියා නොකරයි.
නමුත් අපි නම් විධාන එකතු නම් බව සහ fi
, දක්වා ආපසු යන්න, අපි කරන
මේ එබුම ඉවත් කිරීමට අවසර:
if :; then
█:
fi
මෙයට හේතුව, පළමු උදාහරණයේ දී, ඔබ Enter එබූ විට එය 1 මට්ටමේ ඉන්ඩෙන්ටේෂන් එකක් එකතු කළ යුතු බව Vim තීරණය කළේය; නමුත් දෙවන උදාහරණයේ දී, විම් කිසිවක් ස්වයංක්රීයව නොකළේය, එය ටැබ් අක්ෂර හෝ අවකාශ කිහිපයක් පමණි.
එසේම බලන්න :help 'autoindent'
eol
මෙය වඩාත් පැහැදිලිව පෙනිය යුතුය, Backspace එබීමෙන් EOL සලකුණු ( \n
හෝ \r\n
) ඉවත් කරයි ; අක්රීය කර ඇත්නම්, ඔබ ඊඕඑල් සලකුණක් මකා දැමීමට උත්සාහ කළහොත් බැක්ස්පේස් කිසිවක් නොකරනු ඇත.
ආරම්භය
මෙයින් අදහස් කරන්නේ ඔබට ඇතුළත් කළ හැකි මාදිලිය ආරම්භ කළ දින සිට ඔබ ඇතුළු කළ පෙළ පමණක් මකා දැමිය හැකි අතර කලින් ඇතුළත් කළ කිසිදු පෙළක් මකා දැමිය නොහැක.
පෙරනිමි සැකසුම කුමක්ද?
කවුළුවල GVIM භාවිතා කිරීම මම දුටුවෙමි. කෙසේ වෙතත් බොහෝ ලිනක්ස් පද්ධතිවල පර්යන්තයෙන් VIM භාවිතා කරන අතර පසුපස අවකාශය අපේක්ෂිත පරිදි ක්රියාත්මක වන බව පෙනේ.
මෙයට හේතුව බොහෝ ලිනක්ස් ඩිස්ට්රෝ නෞකාව කලින් සාදන ලද vimrc ලිපිගොනු සහිත පොදු විකල්ප කිහිපයක් සැකසීමයි. උදාහරණයක් ලෙස මා සතුව ඇති මගේ ආරුක්කු ලිනක්ස් පද්ධතියේ /usr/share/vim/vimfiles/archlinux.vim
:
set nocompatible
set backspace=indent,eol,start
" ... and a few more...
ඔබ වින්ඩෝස් මත Vim ස්ථාපනය කරන්නේ නම්, පෙරනිමිය වන්නේ Vim සමඟ නැව්ගත කරන සුපුරුදු vimrc සහ gvimrc භාවිතා කිරීමයි.
මෙම විම් පෙරනිමි සඳහා හිස් අගයක් backspace
. ආරුක්කු ලිනක්ස්, ඩේබියන්, සෙන්ටෝස් හෝ $other_distro
පෙරනිමිය වෙනස් විය හැකිය.
සාමාන්ය ප්රකාරය
මෙම ප්රශ්නය ඇතුළත් කිරීමේ මාදිලියේ බැක්ස්පේස් ගැන ය, නමුත් සාමාන්ය මාදිලියේ බැක්ස්පේස් ගැන කෙටි අදහස් කිහිපයක් ද එක් කිරීමට මට ඉඩ දෙන්න.
සාමාන්ය ප්රකාරයේදී, බැක්ස්පේස් ක්රියා කරන්නේ h
එය වමට ය.
පෙර සැකසුමක් ලෙස, backspace පෙර පේලිය නම් පෙළ ආරම්භයේම යනවා (නම් eol
විය backspace
); ඔබට ධජය 'whichwrap'
හරහා ඇති විකල්පය සමඟ මෙම හැසිරීම පාලනය කළ හැකිය b
(පෙරනිමියෙන් සක්රීය කර ඇත).
X
විධානයට සිතියම් ගත කිරීමෙන් ඔබට බැක්ස්පේස් මකාදැමීමේ අක්ෂර සෑදිය හැකිය :
nnoremap <BS> X
X
(සහ මකාදැමීමx
), නමුත් බොහෝ විට ඔබට සැබවින්ම කිරීමට අවශ්ය වූයේdb
නිදසුනක් ලෙස වචනයේ ආරම්භය තෙක් මකා දැමීම හෝdaw
සම්පූර්ණ වචනය මකා දැමීම යනාදියයි. ඔබට බැක්ස්පේස් තිබේ නම්, මෙය භාවිතා කිරීමේ අවදානම අවශ්ය ප්රමාණයට වඩා වැඩි අවස්ථාවන්හිදී උප ප්රශස්ත යතුර.