Vraag Kan ik het automatisch afhandelen van het tabblad niet hoofdlettergevoelig maken in de terminal?


Ubuntu's Terminal maakt gebruik van hoofdlettergevoelige automatische aanvulling, zoals ik veronderstel dat dit voor Linux zou worden verwacht.

Maar ik denk dat het vaak handiger zou zijn om een ​​niet-hoofdlettergevoelige in plaats daarvan te gebruiken, om te voorkomen dat je accuraat moet zijn bij het starten van een naam, en waarschijnlijk de extra false positives waard zou zijn. Is het mogelijk om dit gedrag te veranderen?


112
2017-12-12 05:19


oorsprong




antwoorden:


Open een terminal, ren

# If ~./inputrc doesn't exist yet, first include the original /etc/inputrc so we don't override it
if [ ! -a ~/.inputrc ]; then echo '$include /etc/inputrc' > ~/.inputrc; fi

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

Start een nieuwe shell / terminal.

om deze wijziging voor alle gebruikers te maken, bewerken /etc/inputrc

Zie voor meer informatie man bash . Ja, het is een lange pagina, maar bash is een ietwat complex programma en als je gewoon die pagina wilt zoeken naar "hoofdletterongevoelig" ga je naar de relevante sectie. Mensen leren meestal bash één optie tegelijk of één bash-script tegelijk en het duurt lang om alle nuances onder de knie te krijgen. Uw interesse kan variëren.


135
2017-12-12 05:48



Bedankt. Ik waardeer de gebruikersspecifieke / niet-beheerdersvriendelijke oplossing. De echolijn lijkt te hebben gewerkt, maar nu lijkt het erop dat ik de mogelijkheid heb verloren om Ctrl-Links / Rechts te gebruiken om de cursor te verplaatsen. Ook zou >> wees veiliger dan >? - mwfearnley
Over het algemeen zal het veiliger zijn, mijn fout, ik veronderstelde dat je geen ~ / .inputrc had. Ik heb ook noclobber ingesteld =) Weet zeker waarom je pijltoetsen niet werken, ik kan dat niet repliceren. Je kunt ~ / .inputrc verwijderen en een nieuwe shell starten. - Panther
Ja, het werkt weer als ik het verwijder .. Volgens linuxfromscratch.org/blfs/view/5.1/postlfs/inputrc.html de nieuwe inputrc mogelijk de wereldwijde overschrijdt? - mwfearnley
Holy shit, ik heb dit gekopieerd naar / etc / inputrc en ik kan "i" niet meer typen en als ik "e" typ, spams het "ssssssssss [..]" in de console .. beter gebruik de oplossing van @ emtin4 - Luca Steeb
@LucaSteeb Ik heb dat ook geraakt, maar toen besefte ik dat dit hele blok niet in je .inputrc moet worden geplaatst, maar een keer moet worden getypt. Enkel en alleen $include /etc/inputrc en set completion-ignore-case on moet in je ~ ..inputrc-bestand staan. - Chris


Open een terminal en typ de onderstaande opdracht:

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

Voer wachtwoord in. Start terminal opnieuw.

Als u in sommige gevallen hoofdletterongevoelig wilt verwijderen, bewerkt u / etc / inputrc-bestand door de set completion-ignore-case lijn.

Dat is alles.


41
2017-12-12 05:45



OK, ik heb dat voor jou verduidelijkt. Het duurt een tijdje om meer te weten te komen over bash, maar blijf ontdekken, lezen en vragen. linuxcommand.org is een populaire start;) - Panther
In het geval dat er meer dan één gebruiker is, verandert dit dit voor iedereen, wat al dan niet het gewenste gedrag kan zijn - Walter Tross
verreweg het meest eenvoudige en simplistische antwoord hier - workabyte
eenvoudig en duidelijk antwoord - tinybyte


Ik weet dat deze vraag heel oud is, maar tenzij ik iets mis, denk ik dat ik een supereenvoudige oplossing heb als je bash gebruikt.

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

Of voeg gewoon de regel toe met uw favoriete teksteditor. Start je bash-sessie opnieuw en geniet ervan.


9
2018-01-31 02:41



Nou, je mist iets: ~/.inputrc wordt gelezen door leesregel, wat bash gebruikt om deze aanvulling te bieden. Readline wordt ook gebruikt door andere programma's, dus voor het algemeen instellen hiervan ~/.inputrczoals voorgesteld het geaccepteerde antwoord zou beter zijn. - muru
Bedankt voor uw suggestie, het leert me iets meer, maar ik moet zeggen dat het niet eenvoudiger lijkt dan degene die ik heb geaccepteerd, die gewoon een extra regel gebruikt om ervoor te zorgen dat het nieuwe bestand het oude niet tenietdoet. - mwfearnley
perfect. nou, het enige om te onthouden is bind 'set completion-ignore-case on' zou in een nieuwe rij moeten gaan .bashrc - Vishrant