ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

vimでhatenaを書きたくなったら

heteblo.vimを入れる

GitHub - moznion/hateblo.vim: This plugin provides some functions of Hatena-Blog by using AtomPub API.

便利すぎてテンション上がった、感謝!

.bash_rcと.bash_profileの整理

参考

本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita

.bash_profile ? .bashrc ? いろいろあるけどこいつらなにもの? - Qiita

シェルスクリプト(bash)のif文やwhile文で使う演算子について - Qiita

ログインシェルとインタラクティブシェルと~/.bashrc達の関係 - Qiita

ログインシェルとインタラクティブモードの話 - Qiita

インタラクティブシェルは、 「ログインシェルのbash上でzshインタラクティブシェルとして開く」と考えるとわかりやすい。

読み込み順序は以下の順

  1. ~/.bash_profile
  2. ~/.bashrc
  3. ~/.bash_aliases

.bash_profile

#!/bin/bash
echo "welcome bash_profile"

# User specific environment and startup programs

# vi形式のコマンド行編集インターフェース
set -o vi

# go
export GOPATH=$HOME/.go
export PATH=$GOPATH/bin:$PATH

# ruby
export RBENVPATH=$HOME/.rbenv/versions/2.3.0
export PATH=$RBENVPATH/bin:$PATH

# node
export NODE_PATH=$HOME/node_modules
export PATH=$HOME/.nodebrew/current/bin:$PATH

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

.bashrc

echo "welcome bashrc"

# git
source ~/.git-prompt.sh
source ~/.git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

# brew
count=`pgrep -a bash | wc -l`
if [ $count = 2 ]; then
    echo "###START### brew update"
    brew update
    echo "### END ### brew update"
fi

# aliases
if [ -f ~/.bash_aliases ]; then
 . ~/.bash_aliases
fi

bash_aliases

echo "welcome bash_aliases"
# User specific aliases and functions
alias vim='nvim'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ls='ls -G'
alias la='ls -a'
alias ll='ls -l -t'
alias cl='clear'
alias cpc='cppcheck --std=c99 --enable=all'
# alias gcc='gcc -Wall -Weverything -O2'

.thenの復習

.thenの引数は関数

function test1() {
    "use strict";
    var d = new $.Deferred();
    setTimeout(function () {
        console.log("test1");
        d.resolve();
    }, 1000);
    return d.promise();
}

hogehoge.then(test1());// これは1000ms待たない
hogehoge.then(test1);// これは1000ms待つ

.thenに引数を持った関数を渡す

function test1(ms) {
    "use strict";
    return function () {
        var d = new $.Deferred();
        setTimeout(function () {
            console.log("test1");
            d.resolve();
        }, ms);
        return d.promise();
    };
}

hogehoge.then(test1(1000));// 関数を返すことで渡す

.thenに非同期処理のない関数を渡す

function mogeta() {
    "use strict";
    console.log("mogeta");
}

hogehoge.then(mogeta);// これはthenでつなげる、promiseの状態はhogehogeを引き継ぐ