标签: tab-completion

智能选项卡完成(用于目录)?

是否有具有更智能选项卡完成功能的 shell 版本?

我希望能够打字

cd foo-<TAB>
Run Code Online (Sandbox Code Playgroud)

然后它会向我显示可能的完成以及我可以输入的数字以选择其中之一:

cd foo-<TAB>
(1) foo-bar1  (2) foo-bar2  (3) foo-bad
Run Code Online (Sandbox Code Playgroud)

所以,在<TAB>我打字之后3,它会带我到foo-bad. 或者,使用箭头键而不是输入数字也可以。

linux bash shell tab-completion

7
推荐指数
2
解决办法
3278
查看次数

如何设置 Bash 选项卡完成的最小字符数?

有没有办法为 Bash 的 Tab 补全设置最少字符数?

我的原因是我经常不小心在空命令行上按了 tab 键,加载命令列表需要很长时间。

bash tab-completion

7
推荐指数
1
解决办法
844
查看次数

Bash 部分全局扩展

我有一个与此类似但不同的问题:如果可能,我希望 bash在自动完成中使用glob 扩展。例如,我想

$ ls *2.<TAB>
Run Code Online (Sandbox Code Playgroud)

给我:

$ ls mydoc2.
mydoc2.pdf mydoc2.tex mydoc2.txt
Run Code Online (Sandbox Code Playgroud)

我经常遇到这种情况。在上面的例子中,我使用了短前缀“mydoc”,但实际的前缀通常很长。这可能吗?

我知道*2.*会扩展为C-x*,但这是一个不同的函数,在这种情况下不适合(因为我只需要从与 glob 匹配的文件列表中选择一个文件)。

bash globbing tab-completion

7
推荐指数
1
解决办法
1020
查看次数

如何让 Windows 下的 emacs 使用“\”而不是“/”在 shell 缓冲区中自动完成路径?

我正在使用 emacs 在 linux、windows、osx 上工作,除了 windows 下 shell 缓冲区的一个烦人的问题外,一切都很好。

自动完成文件名会很好用(比标准窗口更好)但完全没用,因为它为目录生成带有正斜杠分隔符的路径。这在 Windows 上不起作用,所以我必须强迫自己避免使用 Tab 键并在命令提示符下键入所有内容,否则我必须放弃 emacs 并使用 Windows 损坏的命令窗口(例如,甚至很难复制) n 由于分割线问题合理粘贴)。

有没有办法告诉 emacs 使用“\”而不是“/”来完成 Windows 的路径名?

windows shell emacs tab-completion

6
推荐指数
1
解决办法
2656
查看次数

Bash:总是在选项卡完成时显示文件可能性

当我使用 tab 完成文件名并且有超过 100 个匹配项时,它会显示类似“显示所有 403 种可能性?(y 或 n)”的内容。当我每天多次这样做时,这会很烦人。有没有办法总是显示所有完成而不是这个提示?或者更好的是,设置显示提示的阈值?

bash tab-completion

6
推荐指数
1
解决办法
1549
查看次数

是否可以强制将 bash 选项卡完成建议列在单个列中?

当我输入文件名并双击 Tab 时,会出现一个目录列表,为 Tab 完成建议所有选项。默认情况下,ls它以与ls -l. 这可能吗?

我也有兴趣看看是否有任何进一步的定制可以沿着这条路完成,虽然我不确定我想要什么,只是一些想法的例子也会很酷。

bash tab-completion

6
推荐指数
1
解决办法
1418
查看次数

如何在 bash 命令行上恢复 shell 变量的制表符完成?

我一直将最近访问的目录设置为 shell 变量 d1、d2 等。

在古老的 Fedora 机器上,我可以输入类似的命令

$ cp $d1/

并且 shell 会将 $d1 替换为类似 /home/acctname/projects/blog/ 的文本,然后会向我显示 .../blog 的内容,就像您期望任何制表符完成一样。

现在,ubuntu wheezy/sid 和 fedora 16 都只是 \-escape '$',自然没有完成显示。

您可以在 OSX 终端窗口中看到这种行为。在 10.8 上,执行类似的操作

ls $HOME/ 看看我的意思。

是否有可以恢复旧行为的 bash shell 变量或选项?

man bash 表明这是一个错误:

   complete (TAB)
          Attempt  to  perform  completion  on  the  text  before  point.  Bash
          attempts completion treating the text as  a  variable  (if  the  text
          begins  with  $),  username (if the text begins with ~), hostname (if
          the text …
Run Code Online (Sandbox Code Playgroud)

bash tab-completion

6
推荐指数
1
解决办法
2805
查看次数

Bash 自动完成变量在末尾添加了额外的空格

当我执行 bash 变量的自动完成时,最后会添加一个额外的空白字符。

所以这:

$FO[TAB]
Run Code Online (Sandbox Code Playgroud)

变成这样:

$FOO" " 
Run Code Online (Sandbox Code Playgroud)

我添加了引号以表示空白。问题是我们使用的一些变量是目录,空格很烦人,因为它必须被删除并且必须输入 / 。是否有可能以某种方式配置这样的行为

所以这:

$FO[TAB]
Run Code Online (Sandbox Code Playgroud)

变成这样:

$FOO/
Run Code Online (Sandbox Code Playgroud)

或这个:

cd $FO[TAB]
Run Code Online (Sandbox Code Playgroud)

变成这样:

cd $FOO/
Run Code Online (Sandbox Code Playgroud)

bash tab-completion

6
推荐指数
1
解决办法
1527
查看次数

不要在选项卡完成时扩展通配符

我想知道如何配置zsh扩展文件名中的通配符。例如,我有一个包含数百个文件的目录,名称如下:

a.foo-bar a.foo b.foo-bar b.foo c.foo-bar c.foo
Run Code Online (Sandbox Code Playgroud)

我希望能够通配符执行选项卡完成匹配,所以

cat *.foo-< tab > => cat *.foo-bar
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

$ cat *.foo-
=> cat a.foo-bar
   文件
   a.foo-bar b.foo-bar c.foo-bar

zsh wildcards tab-completion

6
推荐指数
2
解决办法
1128
查看次数

Git-for-Windows Bash 中 .bat 文件的制表符补全

Git for Windows 安装了“Git Bash”,这是一个在 Windows 中运行的 bash shell,这非常好。我相信它是基于 MinTTY 的。

除了bash shell脚本之外,它还可以执行Windows批处理(.bat)文件,例如

$ ./some-batch-file.bat
Run Code Online (Sandbox Code Playgroud)

执行没有任何问题。

但制表符补全不适用于这些批处理文件。打字./some-TAB没有任何效果。

有没有办法.bat在 Git bash 中为文件启用制表符补全?

tab-completion batch-file git-bash

6
推荐指数
1
解决办法
2329
查看次数

标签 统计

tab-completion ×10

bash ×7

shell ×2

batch-file ×1

emacs ×1

git-bash ×1

globbing ×1

linux ×1

wildcards ×1

windows ×1

zsh ×1