- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新 :此投诉与旧版本的 fish 有关 - 请参阅下面一位 fish 开发人员的评论,该评论描述了使该投诉无效的 fish 寻呼机行为的惊人改进。
fish shell 很酷——但是我讨厌制表符完成的功能之一。
我经常 - 几乎就像一个紧张的嘀嗒声 - 在更改目录时键入路径时会点击 {tab}{tab}。这让我可以使用 {tab} 来检查某些路径的内容,同时解决我当前击键允许解决的大部分路径消歧问题。这提供了一种很好的方法,可以快速发现到达文件系统中某个位置的最快组合键,而无需过多思考或不必事先知道各个目录的内容。
另一方面,Fish 以我认为非常烦人的方式解释 {tab} {tab}。第一个 {tab} 列出了可能的补全,这很好。按下下一个选项卡,fish 选择列表中的第一个补全,并用完整的第一个补全替换当前在行上输入的路径的最后部分——无论消歧状态如何。后续选项卡循环显示下一个可能性。它类似于 windows 命令 shell 的功能。
这比正常的 bash 行为要糟糕得多......
考虑一个深度嵌套的目录结构 foo/bar/baz/a/b/c/
其中一些 foo、bar、baz 是空目录。 Bash tab 补全让我输入 cd foo/{tab}{tab}{tab}{tab}{tab}{tab} -- 无需考虑我按 tab 多少次,也不必考虑效果在我的命令行条目的当前状态上点击选项卡之前。
正常情况下,所有这些目录都不会为空——但以上仍然可以非常快速地发现我需要输入的最少字符数,以使其进入某个深度嵌套的路径。
使用 bash 行为:
cd some/unknown/dir/{tab}{tab} 保证
(1)我看到目录dir/的内容
(2) 到目前为止,我的命令中可以明确表达的内容已完成,但仅此而已。
点击上面的两个选项卡后,我可能会看到如下内容:
abc123
酒吧123
baz123
bcd123
mnop123
可以执行以下操作:
a{TAB}{TAB}(给我 abc123,如果这是一个目录,则列出其内容)
m{tab}{tab}(给我 mnop123,如果它的目录列出了它的内容)
假设我想到达路径 bcd123:
b -- 显示我打字太快了,现在只显示了 3 个选项,我很容易得出结论,我只需要点击“c”来消除我的目标的歧义
b{tab}{tab}c{tab}{tab}(获取我想要的路径,如果是目录则列出 bcd123 的内容)
fish 的模型要差得多。 b{tab}{tab} 会完成到 bar123,我必须按未知次数的 Tab 才能获得我想要的值,而且我无法将输入上下文恢复为仅我'到目前为止,我实际上已经输入了(除了多次按退格键)。如果在这个目录中碰巧有一大堆以 ba 开头的东西 - 我完全搞砸了会发生什么......
一般来说,fish 的模型更糟:
最佳答案
我赞扬你写了这篇详细而周到的帖子,它应该得到同样详细和周到的回应!
选项卡完成行为已在fish top-of-tree(尚未发布)中重写,并被称为“新寻呼机”。你可以看到设计目标和讨论here .我在此回复的底部放了一张便条,说明如何获得它。
shell 是个人的,就像任何个人的东西一样,合理化和辩解一文不值:你要么喜欢,要么不喜欢,我们甚至可能没有意识到影响我们感受的因素。所以我真正能说的就是尝试一下,看看你的感受,然后(请)报告。
我贴了一个 short little screencast YouTube 上的新寻呼机。需要注意的事情:1. 只需输入更多内容即可关闭菜单,2. 它逐渐“展开”(需要几个选项卡才能完全可见),即使有大量完成,也永远不会模态地接管您的屏幕,并且是易于搜索和导航,并且 3.escape 将始终关闭它并将您的命令行恢复为您输入的内容。
让我逐一分析您的疑虑:
“我必须按未知次数的 Tab 键才能获得我想要的值” .使用新的寻呼机,所选项目会在菜单中突出显示。这听起来微不足道,但我个人认为这有很大的不同:点击 Tab 的额外次数是已知的,并且由于您的手指在 Tab 上,因此只点击几次通常比输入额外的字母更容易。您还可以使用箭头键进行导航。
“我无法将条目上下文恢复为到目前为止我实际输入的字母” .使用新的寻呼机,转义键就是这样做的。很容易按下,因为 Esc 就在选项卡的正上方,你的手指所在的位置。
“如果这个目录中有一大堆以 ba 开头的东西怎么办——我完全搞砸了 会发生什么”。 bash 和 old-pager-fish 都不能很好地处理大量的完成。 fish 会让你进入这个模态分页环境,而 bash 用模态“显示所有 1002 种可能性?(y 或 n)”对话框打破你的流程,迫使你停止你正在做的事情并点击“n”。
我想你会喜欢新的寻呼机如何处理这个的。最初,您会得到一个简短的菜单,最多可填充提示下方的五行(不是上方,也不是替换)。这个菜单是非模态的,可以通过输入更多或点击退出来关闭。如果你再次点击 Tab,菜单会增长以显示更多的完成,但仍然是非模态的。永远不会有不和谐的过渡。
“它不允许使用制表符来完成嵌套路径”抱歉,我不确定您的意思。 bash 和fish 都在tab 完成目录时附加一个/。
“在大目录中发现消歧序列要困难得多”使用新的寻呼机,您可以点击转义键,输入更多内容,然后再次使用 Tab 键。或者您可以搜索菜单:将焦点放在菜单中并输入一些内容,然后进行过滤。请参阅上面的截屏视频。
“通常要求您在点击 Tab 之前‘小心’,这会降低您点击它的频率并降低其效用”一个非常有效的观点,新的寻呼机以几种方式解决了这一点。首先,它使用了渐进式披露的概念,这意味着输出大量数据需要“工作”。其次,它永远不会像旧的模态寻呼机那样“接管你的屏幕”。最后,您可以按 Esc 键返回到您输入的内容,并且由于寻呼机出现在提示下方,因此它不会像 bash 那样在回滚中留下小垃圾。
如果你使用自制软件,你可以通过 brew install fish --HEAD
从 master 安装.还有nightly builds for Linux .最后,请随时在 https://github.com/fish-shell/fish-shell/issues 打开一个问题有任何改进的想法。
关于bash - 可以更改 fish shell 中的选项卡完成行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204622/
在 Android 的 API > 19 中是否有任何方法可以获取可移动 SD 卡的路径? 与外部 SD 卡一样,我们有 Environment.getExternalStorageDirectory
一些 Android 设备有 microSD(或其他存储卡)插槽,通常安装为 /storage/sdcard1 据我所知,自 Android 4.4 起 Google 限制了对此内存的访问,并在 An
我使用 Java Card 2.1.2 SDK 和 GPShell 作为与设备通信的方式在 Java Card 上构建一个项目。我从 GpShell 测试了 helloworld 示例,并成功发送了
我开发了一个应用程序,它有一个来电接收器,它适用于所有手机。一位用户有一部双 SIM 卡安卓手机。该应用程序适用于第一张 SIM 卡。但是当有人调用他的第二张 SIM 卡时,我们的应用程序不会被调用。
我有一个带预览的文件输入。 这是笔 Codepen 我想强制高度,我无法理解我该怎么做。我想将此组件的高度固定为 300px(示例),我还需要保持加载图像的正确纵横比,用灰色背景填充空白。现在我保持宽
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我正在使用此代码访问 SD card : import os from os.path import join from jnius import autoclass #from android.pe
我正在为数据记录设备编写固件。它以 20 Hz 的频率从传感器读取数据并将数据写入 SD 卡。但是,向SD卡写入数据的时间并不一致(大约200-300 ms)。因此,一种解决方案是以一致的速率将数据写
我正在使用以下代码将视频放到网站上,但是在垂直方向上,手机屏幕上只能看到视频的左半部分 我不是网络开发人员。有人可以告诉我确切的内容吗,如何使其正确放置在手机屏幕上? 是在youtube iframe
我正在使用 Vuetify 1.5 和 Vuetify 网格系统来设置我的布局。现在我有一个组件 HelloWorld我将其导入到我的 Parent 中成分。我已经在我的 HelloWorld 中设置
我使用 python 制作了一个简单的二十一点游戏。我制作了游戏的其余部分,但我正在努力放入 ASCII 卡,所以这只是代码的一小部分。我尝试将 * len(phand) 放在附加行的末尾。虽然这确实
我正在使用玩家卡设置 Twitter 卡。它可以在预览工具中运行,但文档说它需要在“twitter.com 现代桌面浏览器? native iOs 和 Android Twitter 应用程序?mob
任何旧的 GSM 兼容 SIM 卡(3G USIM 的奖励)。 我想我需要一些硬件?谁能为业余爱好者推荐一些便宜的东西,以及一些更专业的东西? 我认为会有一个带有硬件的 API 的完整文档,所以也许这
我使用 python 制作了一个简单的二十一点游戏。我制作了游戏的其余部分,但我正在努力放入 ASCII 卡,所以这只是代码的一小部分。我尝试将 * len(phand) 放在附加行的末尾。虽然这确实
我记得前一段时间读到有 cpu 卡供系统添加额外的处理能力来进行大规模并行化。任何人都有这方面的经验和任何资源来研究项目的硬件和软件方面吗?这项技术是否不如传统集群?它更注重功率吗? 最佳答案 有两个
我检查外部存储是否已安装并且可用于读/写,然后从中读取。我使用的是确切的官方 Android 示例代码 ( from here )。 它说外部存储未安装。 getExternalFilesDir(nu
在 Android 2.1 及更低版本中,Android 应用程序可以请求下载到 SD 卡上吗?另外我想知道应用程序是否可以请求一些包含视频的文件夹下载到 SD 卡上?以及如何做到这一点? 提前致谢。
我们编写了一个 Windows 设备驱动程序来访问我们的自定义 PCI 卡。驱动程序使用 CreateFile 获取卡的句柄。 我们最近在一次安装中遇到了问题,卡似乎停止工作了。我们尝试更换卡(更换似
有些新设备(例如 Samsung Galaxy)带有两个 SD 卡。我想知道是否有任何方法可以确定设备是否有两张 SD 卡或一张 SD 卡。谢谢 最佳答案 我认为唯一的方法是使用 检查可用根的列表 F
我正在尝试将文件读/写到 SD 卡。我已经尝试在我的真实手机和 Eclipse 中的模拟器上执行此操作。在这两种设备上,对/mnt/sdcard/或/sdcard 的权限仅为“d--------”,我
我是一名优秀的程序员,十分优秀!