The*_*olf 13 bash vim arch-linux autocomplete
在 bash 中,当发出vim路径比两个目录更深的命令时,路径的自动补全最近停止工作(它继续按预期与其他命令一起工作,例如ls和cd)。
例如,如果我输入ls .config/btsync/bt然后按 TAB,它会扩展为ls .config/btsync/btsync.conf.
如果我输入vim .config/bt然后按 TAB,它会扩展为vim .config/btsync/.
但是,如果我键入vim .config/btsync/bt然后按 TAB,则什么也不会发生(我希望它会扩展为vim .config/btsync/btsync.conf,如上ls例所示。
以我自己的用户身份运行和以 su 身份运行时,我遇到了同样的问题。
我读过这篇文章,其中提到了旧版本的 bash-completion 存在问题,但我运行的是 2.1-5。
更新:经过一些额外的测试,我发现根本问题是 bash只会完成目录名,而不是文件名。
更新:事实证明这bash-completion是整体原因。请参阅我对已接受答案的第二条评论。
任何有关这种行为的潜在原因的建议将不胜感激!
MLu*_*MLu 10
我为你做了一些更多的研究,这是我发现的 - 自动完成的关键是bash命令complete. 您可以打印使用规则vim:
complete -p vim
Run Code Online (Sandbox Code Playgroud)
同样,您可以通过以下方式删除这些特定规则:
complete -r vim
Run Code Online (Sandbox Code Playgroud)
此命令将其重置为默认值 - 通常的路径和文件名完成,没有任何额外的逻辑。这可能就是你想要的。
有关更多信息,请查看help complete或man bash查找有关complete命令的部分(它是 bash 内置的,因此记录在 bash 手册页中)。
最后一点 - 上述更改仅影响当前bash会话,如果您想在每次登录后删除 vim 规则complete -r vim,请将~/.bashrc.
希望有帮助:)
| 归档时间: |
|
| 查看次数: |
4089 次 |
| 最近记录: |