Day 05:是说,这个选项可以接什麽东西?autocomplete 与 auto-pair

更新
我把从第一天到现在每天的 Home 目录都放上 GitHub 了,README.md 里面有说明
这是今天的 Release https://github.com/simba-fs/2021-ironman-example/releases/tag/day05


今天会介绍两个开箱即用( out of box )的外挂和简化指令的 alias

zsh-autocomplete

在 CLI 下指令时,有时候会忘记选项叫什麽、档名中的 k 到底是大写还是小写,这时候 autocomplete 就很好用,他会帮我们选出接下来可以填的字,像是选项子命令档名等等。

❓ > autocomplete 和 autosuggestion 有什麽不同?会同冲突吗?
前者是从 completion function 中找建议,後者是从以前下过的指令中找建议,两者不会冲突

安装 autocomplete

zplug 的福,我们只需要修改 ~/.zshrc 就可以安装外挂了。在 ~/.zshrc 中新增以下设定

+ zplug 'marlonrichert/zsh-autocomplete'

然後重新开启终端机并安装新增的外挂就可以了
你会发现你现在打指令,下面都会出现一些可能可以选的选项,例如同样开头的指令、档名。

https://github.com/marlonrichert/zsh-autocomplete 有快捷键教学

zsh-autopair

这个简单但是贴心的功能在这个 IDE 中很常见,我们的当然也不能漏掉他
一样修改 ~/.zshrc 就可以安装了

+ zplug 'hlissner/zsh-autopair'

重新开启安装後就可以享受自动括号了

alias

alias 的语法很简单,day02 有提到过,我们再复习一次

alias a=b

关於 alias 有两点要注意

  • 等号 = 左右不能有空白
  • 如果右边有空白,要用引号 '" 括起来
alias a=b    # O
alias c = d  # X

接下来会有我精链出来必备的 alias,上面的注解是关於这个 alias 解释

# 加上 -r 在删除/复制目录时才不会跳警告
alias rm='rm -r'
alias cp='cp -r'

# -h 可以把档案大小加上适当的单位,比较好读
# -l 印出除了档名其他的资讯,ex:权限、大小
# -F、--color 纯粹是好看
alias ls='ls -hlF --color=auto'

# 大推,这个 alias 非常好用(zsh 有类似功能的外挂可以装,但是我觉得可以用 alias 就用 alias
alias ..='cd ../'

# 把当前目录下的档案/目录以树状结构印出来,会把不重要的(.git, node_modules)忽略,後面可以接路径
alias tree="tree -alI 'node_modules|.git'"

# 加上颜色
alias grep='grep --color=always'

# 超好用,在当前目录中所有档案中找指定字串,用法:grepFind 'console.log',会印出档案行号,还会把目标字串上色
alias grepFind='grep --exclude-dir=node_modules -nr . -e'

# 建立巢状目录时会一并建立上层目录,下面解释
alias mkdir='mkdir -p'

mkdir -p

假设你现在在一个空目录里,下以下指令(没有 alias)

mkdir src/user

你会得到 mkdir: 无法建立 「src/user」 目录: 没有此一档案或目录,这是因为 mkdir 找不到 user上层目录 src,这时候加上 -p 就不一样了,因为 -p 会让 mkdir 在上层目录不存在时自动建立,因此 mkdir src/user 就会成功,不会再跳错误

预告

到今天关於 zsh 的介绍就结束了,明天开始会来讲讲终端机管理神器 tmux


这篇文不小心断更了,呜呜呜,这里是我新的新开的文章系列 https://ithelp.ithome.com.tw/users/20130473/ironman/4804


<<:  Day-4 老玩家们最推荐、欧洲流行的 SCART 端子

>>:  D4(9/4)-王品(2727)

Unity自主学习(三):如何安装Unity(二)

我们昨天为了接下来的学习,安装了"Unity Hub",今天就要来熟悉一下Uni...

Day 18 - custom hook

如果有错误,欢迎留言指教~ Q_Q 还没写完辣 除了用 React 帮你定义的 Hook 你也可以...

【28】遇到不平衡资料(Imbalanced Data) 时 使用 Oversampling 解决实验

Colab连结 昨天我们使用了降低多数样本 Undersampling 的方式来解决少数样本的问题,...

Day24 - 在 XState 中的阶层式状态 Hierarchical States

还记得我们在 Day 14 的例子吗? 这是一个比较符合现实情境的 Input 元件状态,只有当 i...

D4 第二周 (回忆篇)

今天会是比较划水的回忆篇,可以斟酌看看。 这周开始正式学习 javascript,然後那时候疫情还没...