如何有效使用Cmd选项卡自动完成?


45

我在Linux上使用Bash shell已经有很多年了,我对此非常快。通过频繁地按下Tab键来呼吁自动完成功能,我能够在几次击键中编写长命令。

最近,在我的工作中,我开始使用Windows命令提示符和Cmd。我的Cmd速度很慢。它具有自动完成功能,但工作方式有所不同。我想我了解它的工作原理,但我不了解如何有效地使用它,实际上,它常常使我放慢速度。所以我问,如何有效地使用Cmd的自动完成功能?


让我举个例子。首先,我将描述如何使用Bash,然后如何尝试使用Cmd以及出了什么问题。

假设当前目录中的文件夹具有由大洲和国家/地区制成的名称,例如。africa-nigeriaasia-indiaeurope-france,和我想要改变文件夹europe-norway

Bash的自动完成功能的工作方式是,只有在存在唯一扩展名时,tab键才会扩展。否则,什么也不会发生,但是您可以再次按Tab键列出可能的扩展。

因此,要移至Bash的挪威,我输入cd然后进行以下按键操作:

  1. e tab 对于 europe-
  2. n tab (没发生什么事)
  3. tab再次。它列出europe-netherlandseurope-norway作为潜在的扩展。
  4. o tabeurope-norway

大!谢谢巴什。

但是,当我在Cmd中尝试相同的键时,它会扩展e tabeurope-albania,恰好是第一个以'e'开头的文件夹,但不是我想要的文件夹!我现在应该怎么做 -是否有可能使阿尔巴尼亚进入挪威?还是我必须取消命令Escape并从头开始输入所有内容?


您可以使用菜单吗?批处理菜单?
Endoro 2013年

目前,斯蒂芬的答案对您来说是正确的。只需键入cd e,然后TAB按键。Windows在这里所做的事情是开始按字母顺序对文件夹进行排序。就像Europe-albania以前一样europe-norway,只要TAB连续按该键,直到您没有所需的目录即可。
13年

5
@Avirk,所以从阿尔巴尼亚到挪威最快的方法是按tab键27次?
上校恐慌

Answers:


47

一年更新:我得出的结论是Cmd的自动完成功能无法使用,并停止使用它。

我安装了Clink,它在Cmd中为您提供了Bash风格的自动完成功能。

Clink将本机Windows Shell cmd.exe与GNU Readline库的强大命令行编辑功能结合在一起,该功能提供了丰富的完成,历史记录和行编辑功能

这个棒极了。


真是一个了不起的发现!
ysap 2015年

是的,Clink是最好的选择。我使用Windows的Clink和Git提供了更好的cmd替代方案。
马特2015年

与bash shell不同,它不会自动完成文件名。
Yashbhatt

15

Cygwin将允许您在Windows下运行Bash shell(除许多其他POSIX环境软件之外)。

否则,您可以尝试使用另一种外壳,而不是古老的命令提示符,以找到最适合您需求的外壳。

这是一些在Windows上模拟bash的控制台的列表:

本文 介绍了win-bash
Road Bash
Git Bash

其他控制台:

Microsoft的Windows PowerShell及其Wikipedia文章(最强大的
控制台),其中包含
ColorConsole
PowerCmd
GS.EXE
PyCmd

[ 编辑 ]从那以后,我发现Cmder是一种出色的表格控制台替代品,它还带来了许多Linux Shell行为以及许多Linux文件处理应用程序(例如grep)的移植。


3
+1。Cmd一直是shell的可悲借口,而Microsoft早就放弃了对它的任何开发。由于您已经在bash中表现出色,因此最好的选择是通过安装Cygwin来继续使用它。
Andrew Schulman

1
当然,PowerShell是该列表中最好的;)
Taylor Gibb

要进一步完善清单,还有:4DOS或更好4NT,两者在以前都很流行,而且功能比command.comor 强得多cmd.exe。似乎Take Commandjpsoft.com/take-command-windows-scripting.html)是他们的后继者。但是我从来没有亲自使用过它(这是商业用途)。
mpy

1
在Win7上,PowerShell的自动完成(使用TAB)(错误)的行为就像在CMD中一样。
ysap 2015年

11

击中TAB通过所有存在的目录键切换。

试着输入刚才cd那么TAB数次,你会看到的原则。

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

例如将带您进入第二场比赛(国家/欧洲塞尔维亚)


4

Linux中的Bash尝试匹配并自动填充所有文件共有的所有第一个字符。

另一方面,Windows命令提示符仅用第一个匹配的元素自动填充命令提示符。

例如:在linux bash中:键入cd TABcountry \ e后,bash会升至country \ europe-,因为它匹配所有以e开头的文件名,然后您可以输入接下来的几个字符并TAB再次按。

在Windows命令提示符下:在输入cd country \ e之后TAB,命令提示符将匹配以e开头的第一个可能的文件名(对于您的情况为europe-albania),但它仍然记住您仅输入了'e'。因此,如果TAB再次按,它将显示下一个可能的匹配(字母顺序),欧洲-安道尔。

如果您想更快地到达欧洲-挪威,可以:

  1. 键入europe-no,然后按TAB
  2. 键入e,然后继续按TAB直到显示“欧洲-挪威”

2

更新:Git Bash几乎是我所需要的

使用PowerShell ISE,而不只是powershell。这使您可以访问intelliSense自动完成功能,该功能会在键入或Ctrl+ 时生成一个选项列表Space。ISE还打开了许多其他有趣的可能性,例如制表符补全和其他内容。

缺点是,它不支持ssh或python shell等交互式应用程序。

由于这个缺点,我实际上已经在今天开始使用ConEmu了。ConEmu非常酷。

Windows PowerShell集成脚本环境(ISE)是Windows PowerShell引擎和语言的两个主机之一。使用它,您可以使用Windows PowerShell控制台中不可用的方式编写,运行和测试脚本。ISE添加了语法着色,制表符补全,IntelliSense,可视调试和上下文相关帮助。

ISE允许您在控制台窗格中运行命令,但它也支持可用于同时查看脚本和可插入ISE的其他工具的源代码的窗格。您甚至可以同时打开多个脚本窗口,这在调试使用其他脚本或模块中定义的功能的脚本时特别有用。

https://technet.microsoft.com/zh-CN/library/dd819514.aspx



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。按住向右箭头til 1,然后键入2。按住向右箭头直到2,然后键入3,按住向右箭头直到结束。结果将是...

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

右箭头键很酷,但遗憾的是Ctrl+Tab,该键不能与一起使用,而且我从不按该键只是转到行尾。然后按向上箭头HomeCtrl+Tab修复几个字符会快得多
phuclv

1

在Windows 10中,文件名和目录名称完成可以使用通配符。

对于更改为“欧洲-挪威”的示例,以下命令之一应起作用:

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)这将使TAB自动完成。

重新打开命令提示符,然后尝试一下。


0

在Windows 10(7?)中,使用shift + Tab可以在给出部分路径的情况下循环浏览可用的自动完成选项。

如果不加任何调用,它将循环浏览目录中的所有可用选项。


1
这什么也不做,Shift+Tab只是颠倒了顺序迭代,就像将转移到任何其他切换快捷键一样Ctrl+TabWin+TabAlt+TabCtrk+K...用Tab键你一个人也将通过目录中的所有可用的选项循环
phuclv
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.