Как эффективно использовать автозаполнение вкладки Cmd?

45

Я годами использовал оболочку Bash в Linux и очень быстро с ней справляюсь. Часто обращаясь к автозаполнению, нажимая клавишу табуляции, я могу писать длинные команды в несколько нажатий клавиш.

Недавно на своей работе я начал использовать командную строку Windows и Cmd. Я очень медленно в Cmd. Он имеет функцию автозаполнения, но работает по-другому. Я думаю, что понимаю, как это работает, но я не понимаю, как использовать это эффективно, на самом деле это часто замедляет меня. Поэтому я спрашиваю, как использовать, как эффективно использовать автозаполнение Cmd?


Позвольте мне привести пример. Сначала я опишу, как я использую Bash, затем как я пытаюсь использовать Cmd и что идет не так.

Предположим, что папки в текущем каталоге имеют имена, сделанные из континента и страны, например. africa-nigeria, asia-india, europe-france, И что я хочу поменять папку с europe-norway.

Автозаполнение Bash работает так, что клавиша Tab раскрывается только при наличии уникального расширения. В противном случае ничего не происходит, но вы можете нажать Tab во второй раз, чтобы увидеть список возможных расширений.

Поэтому, чтобы переехать в Норвегию в Баш, я набираю cdи затем нажимаю следующие клавиши:

  1. e tab для europe-
  2. n tab (Ничего не произошло)
  3. tabопять таки. В нем перечислены europe-netherlandsи в europe-norwayкачестве потенциальных расширений.
  4. o tabдля europe-norway.

Большой! Спасибо Баш.

Тем не менее, когда я пытаюсь использовать те же ключи в Cmd, он расширяется e tabдо: europe-albaniaэто первая папка, начинающаяся с 'e', ​​но не та папка, которую я хотел! Что мне теперь делать - возможно ли превратить Албанию в Норвегию? Или я должен отменить команду Escapeи ввести все с нуля?

Полковник паника
источник
Можете ли вы использовать меню, например. пакетное меню?
Эндоро
На данный момент ответ Стефана правильный для вас. Просто введите, cd eа затем нажмите TABклавишу. Что Windows делает здесь, она начинает сортировать папки в алфавитном порядке в словах. Как и Europe-albaniaраньше europe-norway, просто продолжайте нажимать TABклавишу до тех пор, пока не получите нужный каталог.
13
5
@Avirk, поэтому самый быстрый путь из Албании в Норвегию - нажать клавишу табуляции 27 раз?
полковник Паник

Ответы:

47

Обновление за 1 год : я пришел к выводу, что автозаполнение Cmd невозможно, и прекратил его использовать.

Я установил Clink, который дает вам автозаполнение в стиле Bash в Cmd.

Clink сочетает в себе встроенную оболочку Windows cmd.exe с мощными функциями редактирования командной строки библиотеки GNU Readline, которая обеспечивает богатые возможности завершения, истории и редактирования строк

Это великолепно.

Полковник паника
источник
Какая удивительная находка!
2015 г.
Да, Клинк - лучший для этого. Я использую Clink и Git для Windows, чтобы предоставить лучшую альтернативу cmd.
Мэтт
В отличие от оболочки bash, она не выполняет автозаполнение имен файлов.
Яшбхатт
15

Cygwin позволит вам запускать оболочку Bash (кроме многих других программ POSIX) под Windows.

В противном случае вы можете попробовать альтернативную оболочку, а не древнюю командную строку, чтобы найти ту, которая лучше всего соответствует вашим потребностям.

Вот список некоторых консолей, которые эмулируют bash в Windows:

win-bash
Road Bash
Git Bash описан в этой статье

Другие консоли:

Windows PowerShell от Microsoft и ее статья в википедии (самая мощная)
Консоль со статьей
ColorConsole
PowerCmd
GS.EXE
PyCmd

[ EDIT ] С тех пор я обнаружил Cmder, который является отличной табличной заменой консоли, которая также несет в себе большую часть поведения оболочки Linux, а также порт многих приложений для обработки файлов Linux, таких как grep.

harrymc
источник
3
+1. Cmd всегда был жалким оправданием для оболочки, и Microsoft давно отказалась от всякой разработки. Поскольку вы уже работаете в bash, лучшим вариантом будет продолжать использовать его, установив Cygwin.
Эндрю Шульман
1
конечно, PowerShell - лучший в этом списке;)
Тейлор Гибб
Чтобы завершить список немного больше: было также 4DOSили лучше 4NT, и довольно популярный в прежние времена и гораздо более мощный, чем command.comили cmd.exe. Кажется, что Take Command( jpsoft.com/take-command-windows-scripting.html ) является их преемником. Однако я никогда не использовал это лично (и это коммерческий).
mpy
1
На моем Win7 автозаполнение PowerShell (с использованием TAB) (неправильно) ведет себя так же, как в CMD.
2015 г.
11

Нажатие на TABклавишу переключает все существующие каталоги.

Попробуйте ввести только cdзатем TABнесколько раз , и вы увидите этот принцип.

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

например приведёт вас ко второму матчу (страны / европа-сербия)

Stephan
источник
4

Bash в Linux пытается сопоставить и автоматически заполнить все первые символы, которые являются общими для всех файлов.

С другой стороны, командная строка Windows просто заполняет командную строку первым соответствующим элементом.

Например: В Linux Bash: После ввода CD стран \ E TAB, Bash перейдет в страны \ Европы - так как он соответствует всем именам файлов, которые начинаются с е, а затем вы можете ввести следующие несколько символов и нажмите TABснова.

В командной строке Windows: После ввода cd стран \ e TAB, командная строка будет соответствовать первому возможному имени файла, которое начинается с e, europe-albania в вашем случае, но при этом все равно будет помнить, что вы ввели только «e». Так что, если вы нажмете TABснова, он покажет следующее возможное совпадение (в алфавитном порядке), Европа-Андорра.

Если вы хотите быстрее попасть в Европу-Норвегию, вы можете:

  1. Введите europe-no и нажмите TABили
  2. Введите e, а затем продолжайте нажимать, TABпока он не покажет Европа-Норвегия
Чираг Бхатия - чираг64
источник
2

Обновление: Git Bash - почти все, что мне нужно

Используйте PowerShell ISE вместо просто powershell. Это дает вам доступ к автозаполнению intelliSense, которое порождает список опций после ввода или Ctrl+ Space. ISE также открывает много других интересных возможностей, таких как завершение вкладок и другие вещи.

Недостатком является то, что он не поддерживает интерактивные приложения, такие как оболочка ssh или python.

Я фактически начал использовать ConEmu сегодня из-за этого недостатка. ConEmu довольно крутой.

Интегрированная среда сценариев Windows PowerShell (ISE) является одним из двух узлов для механизма и языка Windows PowerShell. С его помощью вы можете писать, запускать и тестировать сценарии способами, недоступными в консоли Windows PowerShell. ISE добавляет окраску синтаксиса, завершение табуляции, IntelliSense, визуальную отладку и контекстно-зависимую справку.

ISE позволяет вам запускать команды на панели консоли, но также поддерживает панели, которые можно использовать для одновременного просмотра исходного кода вашего сценария и других инструментов, которые можно подключить к ISE. Вы даже можете открыть несколько окон сценариев одновременно, что особенно полезно при отладке сценария, использующего функции, определенные в других сценариях или модулях.

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

ThaJay
источник
1

Удерживайте Tabклавишу для перемещения вперед по опциям и Shift+ Tabдля возврата назад.

Right arrow →ключ будет воспроизводить последний cmdline 1 символ за один раз. Я считаю это полезным при переименовании файлов.

например:

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

Удерживайте right arrow →до 1, затем введите 2. Удерживайте стрелку вправо до 1, затем введите 2. Удерживайте стрелку вправо до 2, затем введите 3, удерживайте стрелку вправо до конца. Результат будет ...

ren file.2.mp4 Guitar.licks.02.Pentatonic.3.notes.per.string.mp4
dchip
источник
трюк со стрелкой вправо - это круто, но, к сожалению, он не работает Ctrl+Tab, и я никогда не нажимаю эту клавишу, чтобы перейти к концу строки. Нажатие стрелки вверх Homeили Ctrl+Tabисправление нескольких символов будет намного быстрее
phuclv
1

В Windows 10 для завершения имени файла и имени каталога могут использоваться подстановочные знаки.

Для примера перехода на europe-norway, любая из этих команд должна работать:

cd *nor*<tab>

или

cd *way<tab>

Вы можете использовать несколько '*', и не существует неявного начального или конечного '*'.

Тимоти
источник
1

Проще говоря, используя regedit:

1) Пуск -> Выполнить -> regedit 2) Перейти к следующему для текущего пользователя или всех пользователей системы,

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Командный процессор HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Командный процессор

3) Дважды щелкните по командному процессору и измените значение на «9» в десятичном виде или «0x9» в шестнадцатеричном. 4) Это позволило бы автозаполнению вкладки.

Снова откройте командную строку и попробуйте.

дикобраз
источник
0

В Windows 10 (7?) Используйте Shift + Tab для циклического перебора доступных вариантов автозаполнения с указанием частичного пути.

При вызове с пустым циклом он будет перебирать все доступные опции в каталоге

Майкл.
источник
1
Это ничего не делает, Shift+Tabпросто переворачивает перебор заказа , так же , как добавление сдвига в любые другие ярлыки переключения , как Ctrl+Tab, Win+Tab, Alt+Tab, Ctrk+K... С Tab в одиночку вы также перебирать все доступные варианты в каталоге
phuclv