作者: c君不在

  • ZSH历史命令自动补全

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

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

    $ mkdir dir
    $ cd !$
    $
    

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

    $ mkdir dir
    $ cd !$
    $ cd dir
    

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

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

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

    Call function 'foo'
    PROMPT_COMMAND=foo
    
    # The function
    foo() {
        pwd
    }
    

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

    # ~/.oh-my-zsh/plugins/puglin-xx
    
    setopt PROMPT_SUBST
    
    typeset -ga chpwd_functions
    
    chpwd_functions+='foo'
    
    function foo() {
        # whatever code
        pwd
    }
    

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

    Update@2019-01-29

    如果是不同 git 使用不同配置的情况(如区分个人和工作配置),可以使用 git include 配置 来解决,如:

    ~/.gitconfig

    [user]
        name = personal_name
        email = xxx@personal.com
    [includeIf "gitdir/i:~/work/"]
        path = ~/.gitconfig_work
    

    ~/.gitconfig_work

    [user]
        name = work_name
        email = xxx@work.com
    

    这样,一旦项目位于 ~/work/ 下,那么就是使用 ~/.gitconfig_work 的配置来覆盖通用的。

    需要注意,如果目录是做来软链的,那么软链后的路径以及软链前的路径都需要配置才能不管是用软链还是使用真实路径访问 git 项目才会使用覆盖后的配置。

  • 手动安装 Android OTA 更新

    等待 OTA 推送等了好久,好不容易等到结果由于 Google 处境问题而下载失败,然后再也收不到推送。

    于是,一番查找后,手动安装 OTA 更新(不能直接安装普通镜像,这回导致数据被清空)。

    主要参考了两篇文章,如下:

    1. Update your Nexus to Lollipop using OTA packages 获取 OTA 更新包地址,手动下载下来
    2. 手动刷入android 4.4.3 OTA 更新包 获取详细的安装 OTA 更新包的方法

    当然,前提需要安装好 ADB,这个直接下载 Android SDK 工具即可。

  • 11月流水

    此篇为流水,从一天一篇变为一周一篇再到现在一个月一篇,再断可能就要变成季记、半年记甚至年记了。

    转眼快半年,盛夏将今冬。

    最近依旧在忙业务性,间中学些新知识,周末影视娱乐下自己。

    1. 「大剑」也完结了,大剑觉醒后是妖魔,克蕾雅的特殊情况觉醒后的情形仔细琢磨后也是可以大悟的,结局还算很好。
    2. Hero 和 BORDER 这两部短剧接着看有种莫名的唏嘘
    3. Doctor-X 第三季 降临,女版龙傲天再虐江湖
  • win8 升级到 8.1 卡住

    把 win8 升级到 8.1 的过程中,在最后阶段一直卡在「应用更改」界面。

    解决方法是:断网。

    估计是更新相应的 modern 版应用,但由于国内网络环境问题,从而导致久久没法下载完成。

    话说,进入了高速互联网年代后,各家软件都开始了只提供在线更新机制而很少提供完整离线安装升级包了。一旦处于网络稍差的环境或者涉及到跨国的情况下,通常就会出问题了,尤其是在不支持断点续传的功能的情况下。

  • 集中管理与精简入口

    vim 是个优秀工具,其自由强大的插件是一个很重要的因素。不过一直插件都是手动管理的,搜索下载插件,然后放到指定的目录。如果要升级的话,重新走一边流程(其实很少升级,一般没什么问题,都不会留意是否有新版本不会去升级)。迁移到别的系统中则是把 vimrc.vim 目录一起复制过去。

    但手动的管理插件总感觉有些什么问题,更希望能有一个地方来集中管理,包括安装、升级和移除。把分散的维护工具放在一个统一的入口来做感觉会更好。

    Vbundle 是出于这个目的的一个工具,我没有直接用这个工具,而是使用其一个衍生版本 NeoBundle ,基本思路是在 vimrc 中写上相应插件的列表即可做到自动安装、可选升级和移除等。

    具体使用参照 文档 ,这里简单记录一下。
    (更多…)

  • 揭示宇宙奥秘的13个常数

    揭示宇宙奥秘的13个常数」一书介绍了物理学、化学和宇宙学的13个常数,因为基本把以往学过的数学、物理、化学等知识都扔光了,所以在阅读此书时更多的时候是当做科普作品来看,而没太认真的考究。

    我曾测量天高,今欲测量底深;思想傲游天际,肉体长眠大地。

    「古典」之所以一直那么令人神往,大抵因为那个时代的人们似乎无所不能无所不通,从数学到物理到化学到宇宙。

    有时候,计算方法比结果更加重要。

    有了计算方法,不但可以计算出地球的重量,还能计算出遥远处的月球的重量,能测出太阳的温度,能推测星系的元素组成,能液化一种气体后再用起来液化另一种更难液化的气体。

    宇宙不仅是奇艺得超乎我们想象,而且是奇艺得超乎我们所能想想。

    (更多…)

  • Doctor X

    X医生:外科医生大门未知子(ドクターX 外科医・大門未知子)」及其第二季值得一观。

    和「医缘」有所不同的是,「医缘」主要是说生活,「Doctor X」主要是说在医疗机构腐败腐烂严重的情况下,一个忠于技术对技术精益求精的自由医生的故事,与之和机构内部争权夺利形成对比。

    同时感觉也有些绝望,在整个环境都不好的情况下,个人再努力也只是杯水车薪,如何才能改变整个环境。

  • 医缘

    记录一下值得记录的影视相关,以免时间流逝然后渐渐忘了。

    美剧「医缘」,这是一部讲述医生作为同样平凡地活着的人的生活。

    很多纠纷,除了利益相关和欲望相关引起的外,还有不少是因为不了解而引起。比如,总觉得医生是万能的,治病不需要钱;比如,觉得这是一个小功能,随手就能加上;比如,觉得这是一个没事找事的功能,纯粹脑抽筋;比如,觉得忙了5天的工作但双休日上银行偏偏都没什么人服务。

    医生到底也是人,需要工作,也需要生活。或者说,作为服务人员,由于工作需要,比普通的工作者更忙,除了朝九晚五的工作日时间外,还得应对随时而来的紧急医疗需求,除了个人生活外,还得家庭生活和儿女教育提出造成很多困扰。

    医缘里更多说的是,工作和个人生活交织的各种既职业又平凡的生活,值得一看。

  • Mac 自定义快捷键

    mac 下程序的快捷键和 Windows 和 Linux 下的差别很大,比如浏览器的 F5F12 键在 mac 上的作用就不一致或不存在。

    如果需要设置熟悉的快捷键,来自 让 Mac 版 Chrome 使用 F5 刷新网页 一个可行的方法如下:

    「设置」 -> 「键盘」 -> 「快捷键」 -> 「添加应用程序快捷键」,选择应用,输入快捷键,然后输入应用对应的菜单名即可。

    这个的一个问题是,一旦更换了系统语言,菜单名改变了,快捷键就失效了。