Wie kann ich die automatische Vervollständigung des Cmd-Tabs effektiv nutzen?


45

Ich habe die Bash-Shell jahrelang unter Linux verwendet und bin sehr schnell damit. Durch häufiges Aufrufen der automatischen Vervollständigung durch Drücken der Tabulatortaste kann ich mit wenigen Tastenanschlägen lange Befehle schreiben.

Vor kurzem habe ich bei meiner Arbeit angefangen, die Windows-Eingabeaufforderung und Cmd zu verwenden. Ich bin sehr langsam in Cmd. Es verfügt über eine Autovervollständigungsfunktion, funktioniert jedoch anders. Ich denke, ich verstehe, wie es funktioniert, aber ich verstehe nicht, wie ich es effektiv einsetzen kann. Tatsächlich verlangsamt es mich oft. Ich frage also, wie man die automatische Vervollständigung von Cmd effektiv nutzt.


Lassen Sie mich ein Beispiel geben. Zuerst beschreibe ich, wie ich Bash verwende, dann, wie ich versuche , Cmd zu verwenden und was schief geht.

Angenommen, die Ordner im aktuellen Verzeichnis haben Namen von einem Kontinent und einem Land, z. africa-nigeria, asia-india, europe-france, Und dass ich auf Ordner wechseln will europe-norway.

Die automatische Vervollständigung von Bash funktioniert so, dass die Tabulatortaste nur dann erweitert wird, wenn es eine eindeutige Erweiterung gibt. Andernfalls passiert nichts, aber Sie können die Tabulatortaste ein zweites Mal drücken, um mögliche Erweiterungen aufzulisten.

cdUm in Bash nach Norwegen zu ziehen, gebe ich die folgenden Tastatureingaben ein:

  1. e tab zum europe-
  2. n tab (nichts passiert)
  3. tabnochmal. Es listet europe-netherlandsund europe-norwayals mögliche Erweiterungen.
  4. o tabfür europe-norway.

Groß! Vielen Dank Bash.

Allerdings, wenn ich die gleichen Schlüssel in Cmd versuchen, dehnt es sich e tabauf europe-albania, was der erste Ordner beginnen ‚e‘ sein geschieht, ist aber nicht der Ordner ich wollte! Was soll ich jetzt tun - ist es möglich, Albanien zu Norwegen zu machen? Oder muss ich den Befehl mit abbrechen Escapeund alles von Grund auf neu eingeben?


Können Sie ein Menü verwenden, z. Batch-Menü?
Endoro

Momentan ist Stephans Antwort für Sie richtig. Geben Sie einfach den ein cd eund drücken Sie dann die TABTaste. Was Windows hier tut, sortiert die Ordner in alphabetischer Reihenfolge in Worten. Als Wenn es Europe-albaniavor europe-norway, halten Sie einfach die Taste TABkontinuierlich gedrückt , bis Sie Ihr gewünschtes Verzeichnis.
Avirk

5
@Avirk, also ist der schnellste Weg von Albanien nach Norwegen, die Tabulatortaste 27 Mal zu drücken?
Oberst Panic

Antworten:


47

1-Jahres-Update : Ich bin zu dem Schluss gekommen, dass die automatische Vervollständigung von Cmd unbrauchbar ist, und habe die Verwendung eingestellt.

Ich habe Clink installiert , mit dem Sie Bash-ähnliche Autovervollständigung in Cmd erhalten.

Clink kombiniert die native Windows-Shell cmd.exe mit den leistungsstarken Befehlszeilen-Bearbeitungsfunktionen der GNU Readline-Bibliothek, die umfangreiche Funktionen für Vervollständigung, Verlauf und Zeilenbearbeitung bietet

Es ist brilliant.


Was für ein toller Fund!
ysap

Ja, Clink ist das Beste dafür. Ich benutze Clink und Git für Windows, um eine bessere cmd-Alternative zu bieten.
Matt

Im Gegensatz zur Bash-Shell werden hierdurch keine Dateinamen automatisch vervollständigt.
Yashbhatt

15

Mit Cygwin können Sie eine Bash-Shell (neben vielen anderen POSIX-Umgebungen) unter Windows ausführen.

Andernfalls können Sie eine alternative Shell anstelle der alten Eingabeaufforderung verwenden, um eine zu finden, die Ihren Anforderungen am besten entspricht.

Hier ist eine Liste einiger Konsolen, die Bash unter Windows emulieren:

Win-Bash
Road Bash
Git Bash in diesem Artikel beschrieben

Andere Konsolen:

Microsofts Windows Powershell und sein Wikipedia - Artikel (die leistungsfähigste)
Konsole mit einem Artikel
Colorconsole
PowerCmd
gs.exe
PyCmd

[ EDIT ] Seitdem habe ich Cmder entdeckt , ein hervorragender Ersatz für eine tabellarische Konsole, der auch einen Großteil des Verhaltens der Linux-Shell sowie einen Port vieler Linux-Dateiverwaltungsanwendungen wie grep mit sich bringt.


3
+1. Cmd war schon immer eine erbärmliche Ausrede für eine Shell, und Microsoft hat vor langer Zeit jede Entwicklung davon aufgegeben. Da Sie bereits in der Bash-Phase erfolgreich sind, können Sie Cygwin am besten weiterhin installieren.
Andrew Schulman

1
Natürlich ist PowerShell die beste auf dieser Liste;)
Taylor Gibb

Um die Liste ein bisschen zu vervollständigen: Es gab auch 4DOSoder besseres 4NT, sowohl früher ziemlich populär als auch viel mächtiger als command.comoder cmd.exe. Es scheint, dass Take Command( jpsoft.com/take-command-windows-scripting.html ) ihr Nachfolger ist. Allerdings habe ich das nie persönlich benutzt (und es ist kommerziell).
mpy

1
Auf meinem Win7 verhält sich PowerShells Autocomplete (mit TAB) (falsch) genau wie in CMD.
ysap

11

Wenn Sie die TABTaste drücken, werden alle vorhandenen Verzeichnisse umgeschaltet.

Versuchen Sie nur cddann TABein paar Mal, und Sie werden das Prinzip sehen.

cd countries/europe-s[TAB][TAB] 

zum Beispiel bringt Sie zum zweiten Spiel (Länder / Europa-Serbien)


4

Bash in Linux versucht, alle ersten Zeichen, die allen Dateien gemeinsam sind, zuzuordnen und automatisch auszufüllen.

Die Windows-Eingabeaufforderung füllt die Eingabeaufforderung hingegen nur automatisch mit dem ersten übereinstimmenden Element aus.

Beispiel: In Linux bash: Nachdem Sie cd countries \ e TABeingegeben haben, wechselt bash zu countries \ europe-, da es mit allen Dateinamen übereinstimmt, die mit e beginnen. Anschließend können Sie die nächsten Zeichen eingeben und TABerneut drücken .

In der Windows-Eingabeaufforderung: Nachdem Sie cd countries \ e TABeingegeben haben, stimmt die Eingabeaufforderung mit dem ersten möglichen Dateinamen überein, der in Ihrem Fall mit e, europe-albania beginnt. Sie merkt sich jedoch weiterhin, dass Sie nur ein 'e' eingegeben haben. Wenn Sie also TABerneut drücken , wird die nächste mögliche Übereinstimmung (alphabetische Reihenfolge) angezeigt, europe-andorra.

Wenn Sie schneller nach Europa-Norwegen kommen möchten, können Sie entweder:

  1. Geben Sie europe-no ein und drücken Sie dann TABoder
  2. Geben Sie e ein und drücken Sie, TABbis Europa-Norwegen angezeigt wird

2

Update: Git Bash ist so ziemlich alles was ich brauche

Verwenden Sie PowerShell ISE anstelle von PowerShell. Auf diese Weise erhalten Sie Zugriff auf die automatische Vervollständigung von intelliSense, aus der beim Eingeben von oder Ctrl+ eine Liste von Optionen hervorgeht Space. ISE eröffnet auch viele andere interessante Möglichkeiten wie das Ausfüllen von Registerkarten und andere Dinge.

Nachteil ist, dass interaktive Anwendungen wie ssh oder Python-Shell nicht unterstützt werden.

Aus diesem Grund habe ich ConEmu heute tatsächlich gestartet . ConEmu ist ziemlich cool.

Die integrierte Windows PowerShell-Skriptumgebung (ISE) ist einer von zwei Hosts für die Windows PowerShell-Engine und -Sprache. Mit ihr können Sie Skripts auf eine Weise schreiben, ausführen und testen, die in der Windows PowerShell-Konsole nicht verfügbar ist. Die ISE fügt Syntax-Coloring, Tab-Vervollständigung, IntelliSense, visuelles Debugging und kontextsensitive Hilfe hinzu.

Mit ISE können Sie Befehle in einem Konsolenfenster ausführen, es werden jedoch auch Fenster unterstützt, mit denen Sie gleichzeitig den Quellcode Ihres Skripts und anderer Tools anzeigen können, die in ISE eingebunden werden können. Sie können sogar mehrere Skriptfenster gleichzeitig öffnen. Dies ist besonders hilfreich, wenn Sie ein Skript debuggen, das Funktionen verwendet, die in anderen Skripten oder Modulen definiert sind.

https://technet.microsoft.com/en-us/library/dd819514.aspx



1

Halten Sie die TabTaste gedrückt, um vorwärts durch die Optionen zu blättern, und Shift+, Tabum rückwärts zu blättern.

Right arrow →Die Taste gibt jeweils das letzte cmdline 1-Zeichen wieder. Ich finde das nützlich beim Umbenennen von Dateien.

z.B:

ren file.1.mp4 Guitar.Licks.01.Pentatonic.2.notes.per.string.mp4

Halten Sie right arrow →bis 1 gedrückt, und geben Sie 2 ein. Halten Sie den rechten Pfeil bis 1 gedrückt, und geben Sie 2 ein. Halten Sie den rechten Pfeil bis 2 gedrückt, und geben Sie 3 ein, und halten Sie den rechten Pfeil bis zum Ende. Ergebnis wäre ...

ren file.2.mp4 Guitar.licks.02.Pentatonic.3.notes.per.string.mp4

Der Trick mit dem rechten Pfeil ist cool, funktioniert aber leider nicht Ctrl+Tab, und ich drücke diese Taste nie, nur um ans Ende der Zeile zu gelangen. Drücken Sie dann den Pfeil nach oben Homeoder Ctrl+Tab, um ein paar Zeichen zu
korrigieren,

1

In Windows 10 können für die Vervollständigung von Dateinamen und Verzeichnisnamen Platzhalter verwendet werden.

Für das Beispiel eines Wechsels zu Europa-Norwegen sollte einer der folgenden Befehle funktionieren:

cd *nor*<tab>

oder

cd *way<tab>

Sie können mehrere '*' verwenden, und es gibt kein implizites führendes oder nachfolgendes '*'.


1

Ganz einfach mit regedit:

1) Start -> Ausführen -> regedit 2) Gehen Sie für den aktuellen Benutzer oder alle Benutzer des Systems wie folgt vor.

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Befehlsprozessor HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Befehlsprozessor

3) Doppelklicken Sie auf den Befehlsprozessor und ändern Sie den Wert in "9" als Dezimalzahl oder "0x9" als Hexadezimalzahl. 4) Dies würde es dem TAB ermöglichen, sich automatisch zu vervollständigen.

Öffnen Sie Ihre Eingabeaufforderung erneut und probieren Sie es aus.


0

Verwenden Sie in Windows 10 (7?) Die Tastenkombination Umschalt + Tab, um die verfügbaren Autovervollständigungsoptionen bei einem Teilpfad zu durchlaufen.

Wenn nichts aufgerufen wird, werden alle verfügbaren Optionen im Verzeichnis durchlaufen.


1
Das macht nichts, Shift+Tabnur die Iterieren Ordnung umkehrt , so wie das Hinzufügen Verschiebung zu anderen Schaltkombinationen wie Ctrl+Tab, Win+Tab, Alt+Tab, Ctrk+K... Mit Tab allein werden Sie auch durch alle verfügbaren Optionen im Verzeichnis
phuclv
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.