孙楠退赛

「我是歌手」第三季总决赛,孙楠在第一节帮帮唱后突然宣布退赛。

先不讨论可能的黑幕之类,只讨论这种行为。

一句话来说就是,做人不合格,不负责任。

不给项目启用备案的时间,自以为谦让却是对对手最大的侮辱。

作为一个混了多年的老手,居然还这么任性地无提前商量而宣布不干了,实在理解不了。

估计,以后的节目签协议时要添加除非身体等不可抗因素外,如需退出,需要提前协商(不知道目前是否有这些协定)。

Git 文件名大小写问题

由于 Mac 下文件名大小写不敏感,造成 git 下如果改了名字,譬如小写改大些,推送到 linux 服务器的时候会没有效果,Github 上的也是小写。
所以,如果在 Mac 上改文件名,需要用下面的命令

1
$ git mv --force myfile MyFile

ZSH历史命令自动补全

oh-my-zsh 的默认配置在碰到历史命令替换时需要先替换出来确认一遍才会执行,不会默认执行。

如原本下面的命令会直接进入新建的目录

1
2
3
$ mkdir dir
$ cd !$
$

但在 zsh(oh-my-zsh 默认配置) 中,会变成

1
2
3
$ mkdir dir
$ cd !$
$ cd dir

移除这个的默认配置,只需在配置文件终稿添加 unsetopt hist_verify 即可。

终端进入目录自动运行 shell 脚本

利用 prompt 钩子,可以在终端进入目录时执行特定的 shell 代码。如:

1
2
3
4
5
6
7
Call function 'foo'
PROMPT_COMMAND=foo

# The function
foo() {
    pwd
}

对于使用 oh-my-zsh 的情况,可以直接做成插件形式,如:

1
2
3
4
5
6
7
8
9
10
11
12
# ~/.oh-my-zsh/plugins/puglin-xx

setopt PROMPT_SUBST

typeset -ga chpwd_functions

chpwd_functions+='foo'

function foo() {
    # whatever code
    pwd
}

利用这个特性可以做一些特殊的需求,比如检测 git 仓库的用户名是否是合适的(使用多家 git 托管服务且用户名不一致的情况下有用),分支是否 ok 等。