මට ටැබ් ස්වයංක්‍රීයව සම්පුර්ණ කිරීමේ අවස්ථාව-බාෂ් හි සංවේදී නොවන බවට පත් කළ හැකිද?


173

උබුන්ටු පර්යන්තය සිද්ධි සංවේදී ස්වයංක්‍රීයව සම්පූර්ණ කිරීම භාවිතා කරයි, මා සිතන පරිදි ලිනක්ස් සඳහා බලාපොරොත්තු වනු ඇත.

නමුත් නමක් ආරම්භ කිරීමේදී නිරවද්‍යතාවයෙන් යුතුව ඔබව බේරා ගැනීම සඳහා, ඒ වෙනුවට සිද්ධි-සංවේදී නොවන එකක් භාවිතා කිරීම වඩාත් පහසු වනු ඇතැයි මම සිතමි. මෙම හැසිරීම වෙනස් කළ හැකිද?


ඉතා හොඳ ප්‍රශ්නයක්. උපයෝගීතා මෙවලමක් ලෙස, දේවල් නම් කිරීමේදී සාමාන්‍යයෙන් පරිගණක පද්ධතිය තරම් ටැබ් සම්පූර්ණ කිරීම දැඩි නොවිය යුතුය.
මාස්ටර්සිලෝ

Answers:


202

කර ගැනීම සඳහා bashවත්මන් පරිශීලක සඳහා නඩුව-අසංවේදී:

පහත ෂෙල් ස්ක්‍රිප්ට් එක පර්යන්තයක ධාවනය කරන්න:

# If ~/.inputrc doesn't exist yet: First include the original /etc/inputrc
# so it won't get overriden
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi

# Add shell-option to ~/.inputrc to enable case-insensitive tab completion
echo 'set completion-ignore-case On' >> ~/.inputrc

නව කවචයක් ආරම්භ කරන්න (පර්යන්තය නැවත විවෘත කරන්න).

පද්ධතිමය වශයෙන් වෙනස්කම් කිරීමට:

# add option to /etc/inputrc to enable case-insensitive tab completion for all users
echo 'set completion-ignore-case On' >> /etc/inputrc
# you may have to use this instead if you are not a superuser:
echo 'set completion-ignore-case On' | sudo tee -a /etc/inputrc

වැඩි විස්තර සඳහා බලන්න man bash. ඔව් එය දිගු පිටුවක්, නමුත් බාෂ් යනු තරමක් සංකීර්ණ වැඩසටහනක් වන අතර, ඔබට අවශ්‍ය නම් අදාළ කොටසට යාමට "සිද්ධි-සංවේදී නොවන" සඳහා එම පිටුව සොයන්න. මිනිසුන් සාමාන්‍යයෙන් වරකට එක් විකල්පයක් හෝ වරකට එක් බැෂ් ස්ක්‍රිප්ට් එකක් ඉගෙන ගන්නා අතර සියලු සූක්ෂ්මතා ප්‍රගුණ කිරීමට බොහෝ කාලයක් ගත වේ. ඔබේ උනන්දුව වෙනස් විය හැකිය.


ස්තූතියි. පරිශීලක-විශේෂිත / පරිපාලක නොවන හිතකාමී විසඳුම මම අගය කරමි. දෝංකාරය රේඛාව ක්‍රියා කර ඇති බවක් පෙනේ, නමුත් දැන් මට කර්සරය ගෙනයාමට Ctrl-Left / Right භාවිතා කිරීමේ හැකියාව නැති වී ඇති බව පෙනේ. එසේම, >>වඩා ආරක්ෂිතද >?
mwfearnley

පොදුවේ >> වඩා ආරක්ෂිත වනු ඇත, මගේ වැරැද්ද, මම සිතුවේ ඔබට ~ / .inputrc නොමැති බවයි. මම ද noclobber =) ඔබේ ඊතල යතුරු ක්‍රියා නොකරන්නේ මන්දැයි මට විශ්වාසයි, මට එය අනුකරණය කළ නොහැක. ඔබට ~ / .inputrc ඉවත් කර නව කවචයක් ආරම්භ කළ හැකිය.
පැන්තර්

ඔව්, මම එය ඉවත් කළහොත් එය නැවත ක්‍රියාත්මක වේ .. linuxfromscratch.org/blfs/view/5.1/postlfs/inputrc.html ට අනුව නව ආදානය ගෝලීය එක ඉක්මවා යා හැකිද?
mwfearnley

3
ශුද්ධ වූ ජරාව, මම මෙය / etc / inputrc වෙත පිටපත් කළ අතර මට තවදුරටත් "i" ටයිප් කළ නොහැකි අතර මම "e" ටයිප් කරන විට එය "ssssssssss [..]" කොන්සෝලය තුළට ස්පෑම් කරයි .. solution emtin4 වෙතින් විසඳුම වඩා හොඳින් භාවිතා කරන්න
ලූකා ස්ටීබ්

3
Uc ලූකාස්ටීබ් මමත් එයට පහර දුන්නා, නමුත් පසුව තේරුම් ගත්තා මේ මුළු කොටසම ඔබේ .inputrc තුළට දැමිය යුතු නැති බව, නමුත් වරක් ටයිප් කරන්න. එකම $include /etc/inputrcහා set completion-ignore-case onඔබේ ~ ..inputrc ගොනු විය යුතුය.
ක්‍රිස්

54

ටර්මිනලයක් විවෘත කර පහත විධානය ටයිප් කරන්න:

echo set completion-ignore-case on | sudo tee -a /etc/inputrc

මුරපදය ඇතුළත් කරන්න. පර්යන්තය නැවත ආරම්භ කරන්න.

යම් අවස්ථාවක දී ඔබට සංවේදී නොවන ඉවත් කිරීමට අවශ්‍ය නම්, set completion-ignore-caseරේඛාව ඉවත් කිරීමෙන් / etc / inputrc ගොනුව සංස්කරණය කරන්න .

එච්චරයි.


හරි, මම ඔබ වෙනුවෙන් එය පැහැදිලි කළා. බාෂ් ගැන ඉගෙන ගැනීමට ටික කාලයක් ගත වේ, නමුත් ගවේෂණය කිරීම, කියවීම සහ විමසීම දිගටම කරගෙන යන්න. linuxcommand.org ජනප්රිය කිරීම ආරම්භ කෙරේ;)
මිදුළු බද්ධයෙන් පසු

3
එක් පරිශීලකයෙකුට වඩා වැඩි ගණනක් සිටී නම්, මෙය සියල්ලන්ටම වෙනස් කරයි, එය අපේක්ෂිත හැසිරීම විය හැකිය හෝ නොවිය හැකිය
වෝල්ටර් ට්‍රොස්

2
මෙහි වඩාත්ම forward
ජු

සරල සහ පැහැදිලි පිළිතුර
සංවර්ධක

16

මෙම ප්‍රශ්නය ඉතා පැරණි බව මම දනිමි, නමුත් මට යමක් මග හැරී ඇත්නම් මිස, ඔබ බාෂ් භාවිතා කරන්නේ නම් මට සුපිරි සරල විසඳුමක් ඇතැයි සිතමි.

echo "bind 'set completion-ignore-case on'" >> ~/.bashrc

නැතහොත් ඔබේ ප්‍රියතම පෙළ සංස්කාරකය භාවිතා කර පේළිය එක් කරන්න. ඔබේ බාෂ් සැසිය නැවත ආරම්භ කර විනෝද වන්න.


3
හොඳයි, ඔබට යමක් මග ~/.inputrcහැරී ඇත : කියවීම මඟින් කියවනු ලැබේ, මෙය සම්පූර්ණ කිරීම සඳහා බාෂ් භාවිතා කරයි. , Readline ද, වෙනත් වැඩසටහන් විසින් භාවිතා කරයි නම්, සාමාන්යයෙන් මෙම සැකසීම් සඳහා ~/.inputrcයෝජනා කරන පරිදි ලොව පිළිගත් පිළිතුර වඩා හොඳ වනු ඇත.
මුරු

ඔබගේ යෝජනාවට ස්තූතියි, එය මට තව ටිකක් උගන්වයි, නමුත් මට කියන්නට ඇත්තේ එය මා පිළිගත් ඒවාට වඩා සරල බවක් නොපෙනෙන බවයි, එය නව ගොනුව පැරණි දේ අහෝසි නොවන බව සහතික කිරීම සඳහා අතිරේක රේඛාවක් භාවිතා කරයි.
mwfearnley

පරිපූර්ණ. මතක තබා bind 'set completion-ignore-case on'ගත යුතු එකම දෙය නම් නව පේළියට යා යුතුය.bashrc
විෂ්රන්ත්

3

GNU සඳහා වින්‍යාස විචල්‍යයක් සැකසීමෙන් ඔබට මෙය කළ හැකිය readline, එය අන්තර්ක්‍රියාකාරී කවචයක ආදානය හසුරුවයි.

අවශ්‍ය විචල්‍යය මෙය completion-ignore-caseවන අතර ඔබේ බැෂ් සැසිය තුළ කෙලින්ම සැකසිය හැකිය:

bind "set completion-ignore-case on"

එය දැමීම මගින් සියලු අනාගත bash සැසි සඳහා සක්රීය කළ හැකි set completion-ignore-case onපරිශීලකයන් ගේ බවට ~/.inputrcගොනු, හෝ මෙම පද්ධතිය /etc/inputrcලෙස සියළුම පරිශීලකයින් සඳහා එය සක්රීය කිරීම. කියවීමේ රේඛාව සඳහා ආරම්භක ගොනුව මෙයයි.

නමුත් ඔබ නිර්මාණය කරන්නේ නම් ~/.inputrcමෙය පද්ධති පිටපත අභිබවා යන බව සලකන්න . (මට මෙය Ctrl-Left/ වැනි යතුරු සිතියම් කිහිපයක් නැති වීමට හේතු විය . ගොනුව පරීක්ෂා Rightකිරීමෙන් කුමන ඒවා දැයි ඔබට දැකගත හැකිය /etc/inputrc.)
මෙම ගැටළුව විසඳීමට මාර්ගය වන්නේ රේඛාව $include /etc/inputrcඉහළින් තැබීමයි ~/.inputrc, උදා:

$include /etc/inputrc

set completion-ignore-case on

වෙනස්කම්, නැවත ඇරඹීම bash හෝ අයදුම් කිරීමට රීලෝඩ් inputrc , උදා: සමඟ Ctrl+x, Ctrl+r.

Readline හා inputrc ගැන තවත් තොරතුරු සොයා ගත හැකි man bashහා man 3 readline.

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.