-
29-09-2020 - |
题
我最近从过去7年使用Ubuntu box切换到Mac。我读过其他帖子,如 从Ubuntu切换到OS X,我迷路了 和 ITerm2和Terminal有什么区别?
为什么iTerm2和Terminal不完成命令的参数?
例如。如果我这样做 gi
+标签, ,它自动完成这个词 git
这很好。当我添加一个空格并尝试 remo
+标签, ,为什么我不把它自动完成到 remote
就像在Ubuntu中一样。我必须在单词后面手动输入所有内容 git
.其他命令也一样。
我做错了什么,还是错过了什么?
(请注意,我不是在谈论 cmd公司 + ; 自动完成iTerm2中先前键入的条目的快捷方式。)
解决方案
在OS X上获得自动完成的最简单方法是将shell切换到 zsh
.
您可以通过运行测试的东西 zsh
在iTerm和终端之前进行上述切换。如果你真的想坚持下去 bash
你可以从这两个问题开始:
其他提示
从ubuntu切换时的一个解决方案是使用 homebrew,Mac OSX的包管理器.特别是,对于 git
, ,您将包括一些添加,包括bash完成。这对于其他开发者来说也是如此,比如 make
.
分两步:
- 安装与
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
- 跑
brew doctor
正确设置路径 - 安装git和bash完成:
brew install git bash-completion
- 在您的
.bash_profile
. - 将新工具和配置写入文件系统后,重新启动bash会话。
更多关于 这个howto.
我有两个建议:
使用方法 鱼, ,它真的很简单和容易
a.通过使用扩展它 哦,我的鱼
zsh和oh-my-zsh。zsh已经安装,所以你不需要做太多。
a.
chsh -s /bin/zsh
b.注销并重新登录
c.执行这个安装oh-my-zsh
wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
更多信息在这里: https://github.com/robbyrussell/oh-my-zsh
我用 oh-my-zsh
但是 fish
也很棒。
这有点回避了这个问题,以防有人想在他们的系统上保留Apple提供的Git版本。
您可以在.您的主目录中的gitconfig文件用于更短的git命令。例如,我有git这样设置 git st
跑步 git status
相反。
示例别名。[医]吉特康菲格:
[alias]
co = checkout
ci = commit
st = status
br = branch
一个可能有帮助的选择是使用 .git-completion.bash
对于bash git的 自动完成。
它允许您键入git命令,然后为远程名称自动完成(例如'origin'或'heroku'),然后(更重要的是)存储库分支名称。
见 https://apple.stackexchange.com/a/55886/24565
您从以下位置下载文件
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
对于那些寻找bash的命令完成解决方案的人来说,它像zsh+oh-my-zsh一样易于使用,现在有 bash-it项目.用它自己的话说,这是"一个无耻的掠夺oh-my-zsh"-这真的没有错!
它设置了一个像oh-my-zsh这样的架构插件,在那里你可以轻松地将东西带入和带出你的环境,并通过同步到他们的github项目中获得新的东西。
安装需要三个步骤:
- 检查此回购的克隆:
git clone https://github.com/revans/bash-it.git ~/.bash_it
- 跑
~/.bash_it/install.sh
(它会自动备份您的~/.bash_profile
) - 编辑您的
~/.bash_profile
文件,以便自定义bash-it。
如果你害怕全开开关 zsh
, bash-it
是一个很好的中间地带,让你继续前进 bash
但是给了你很多强大的插件来扩展你的环境。