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 有快捷键教学

设定

这段是我在写完第一版後新增了,所以在 纯‧ CLI 整合开发环境 是没有的

为了可以爽爽的用 autocomplete,我新增了一些设定,这些放到 ~/.zshrc 里面随便一个地方就可以了

# case sensitive
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

# zsh-autocomplete configure
# Down arrow:
bindkey '\e[B' down-line-or-select
bindkey '\eOB' down-line-or-select
# down-line-or-select:  Open completion menu.
# down-line-or-history: Cycle to next history line.

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


<<:  状态流程图与有限状态机

>>:  Web基础篇

Day 17:图与演算法

有一些演算法是在图(graph)上操作,我们可以先想一些实际的例子,例如: 开车的时候,使用导航系统...

JavaScript入门 Day10_有关数字的语法2

昨天讲了 Math.abs( ),今天来讲Math.max( ) 那他是什麽呢,来看看下面的 cod...

Day 3:让我看看你状态正不正常啊 - 架设 status page

昨天提到了有关监控的议题,监控服务的其中一个目的是为了在系统发生错误的时候可以即时的通知相关人员,...

[Day 15] 阿嬷都看得懂的开始写第一支 .css 档案罗!

阿嬷都看得懂的开始写第一支 .css 档案罗! 昨天我们介绍了怎麽使用 style 标签,把所有 C...

Stream Processing (2) - Chande Data Capture

保持同步 资料工程师修炼之路走到现在,真的没有一个系统能同足满足资料储存、查询和逻辑处理,现实世界的...