読者です 読者をやめる 読者になる 読者になる

hotoolong's blog

Railsやvimや気になったことを綴ってます

新しいMacBook Proを買いました。

新年あけましておめでとうございます。
しばらくブログを書けていなかったのですが、
気づけば2016年も終わり2017年になってしまいました。
早いものです。

年末に頼んでいたMacBook Proが届きました。 www.apple.com

まだ使い始めてセットアップなどしてるところですが、
今回はUSキーボードにして少し操作にもなれないといけないのですが、
会社ではUSキーだったので、これはこれで少しすれば慣れそうです。
何と言っても日本語キーボードよりもホームポジションがセンターよりになっているのが
気持ちよく作業できますね。
ただ、新しいMacBook Proでタッチパッドが大きくなってしまったので右手が少し触れてしまうこともあり、
その点は少し残念ですね。

Touch Barはまだうまく使いこなせてないのですが、
カスタマイズしておきたいところですね。
しばらく使ってみてまた感想書いておきます。

簡単ですが、今年もよろしくお願いします。

Windows、Linux、Macで開発している場合の改行コード

git

Gitで管理してるファイルの改行コードが混在してないですか?
いままではnkfを使って改行コードをLFに直したりしてたのですが、
Git側でLFになおしてくれる設定がありました。
なんてこった。。いままで無駄なことして履歴を汚してたなんて、、

core.autocrlf
の設定を変更しておけばよかったようで

git config --global core.autocrlf false

デフォルトはfalseのようで、変換しないでそのままコミットしてチェックアウトするようです。

git config --global core.autocrlf true

trueするとコミット時にLFに、チェックアウト時にCRLFに変換してくれます。

git config --global core.autocrlf input

inputを設定するとコミット時にLFに変換してくれますが、チェックアウト時は何もしないでくれます。
この設定だといろいろな環境で扱っている場合便利そうですね。

Git - Git の設定

入門Git

入門Git

単一の文字列中から文字列を探すときは正規表現は使わない

Ruby

文字列から文字列を探すときには正規表現をよく使ってしまいます。

Effective Rubyには =~ などのPerl風機能を避けようということが書かれています。
RuboCopでは逆に=~を使うように促されてしまってなんのこっちゃと思っていたのですが、
ruby-style-guideの内容を見てると
単一の文字列中から文字列を探す場合は正規表現を使わないというような記述がありました。
ruby-style-guide/README.ja.md at japanese · fortissimo1997/ruby-style-guide · GitHub

string['text']

と書けば良いようです。
こんなこともできるのですね。

文字列の添字に直接正規表現を入れることもできるようで、

match = string[/regexp/]             # マッチした内容が得られる
first_group = string[/text(grp)/, 1] # キャプチャグループの内容が得られる
string[/text (grp)/, 1] = 'replace'  # string => 'text replace'

こんなこともできるようです。
便利ですね。

Effective Ruby

Effective Ruby

メタプログラミングRuby 第2版

メタプログラミングRuby 第2版

Unite.vimの履歴を使う

vim

最近、特定のリクエストで Railsのformatsの値が/;に置き換わってしまってMissing templateになるという事例に悩まされています。

原因がいまいちよくわからず。。知ってる人がいれば教えて下さい。

本題ですが、

以前からUnite.vimの履歴があればいいなと思っていたら、

GitHub - Shougo/unite.vim: Unite and create user interfaces

history/unite

というsourceが増えていたのですね。

感激です。

これで履歴を呼び出すことができそうです。

ありがたや〜

あと知らない間に

grep/git

のsourceも増えていてこちらも使ってみようかなと

git grep の sourceは以前から

github.com

こちらを使っていました。

こちらはいきなり入力モードで入れるので使い方に合わせて使ってみようかと思います。

シェルで前回使った引数を使う

bash

最近、itamae, serverspecと格闘中です。

production, stagingでうまく切り替えてroleの管理ができないか。

なんて考え中です。うまいことできないかしら。。

本題ですがzshなどを使っているケースで

gd aaa bbb
ga aaa bbb

※gdはgit diff , ga は git addのaliasです。

などのコマンドを打つときに

前回使った引数を使いまわしたいシーンが度々あります。

mkdir と cdを使うケースの場合は

mkdir aaa
cd $_

引数がひとつの場合は$_ を使うことで乗りきれるのですが

複数ある場合はこれではうまくいきません。

調べていると

  • !!で前回のコマンドのhistoryを使えて
  • !$で前回の引数の最後の値
  • !:1で前回の引数の最初の値

が使えるので

gd aaa bbb
ga !:1-$

と打つことで複数の引数に対応できるようです。

ただ$_とは違うので一旦展開が差し込まれる挙動が省略されて欲しいところです。

少し話は変わって

yum install hogehoge

と打った時に

sudo忘れなんてこともありますが

!!を使うことで

sudo !!

とすると前回のコマンドをsudoで実行ということも簡単にできそうです。

でもやっぱり C-p、C-a でsudoと打ってしまいそうですが。。

Macのバックスラッシュ

swift2.1 mac captian

最近Swiftをすこしかじり始めたのですが、 playgroundからprintで出力しようとしたのですが いままでMacでバックスラッシュを打ったことがないことに気づき、少しハマったのでメモをば

var msg: String = "hello world"

let s: String = "hoge"

print("msg: \(msg) s: \(s)")

と記載したかったのですが、上記に¥をいれてしまっていて、実行しても一向に置き換わらないなとおもったら optionキーを押しながら、¥キーを押すとバックスラッシュが入力できるということでした。

dotinstallのプレミアム会員の料金改定

いつもお世話になっているドットインストールのプレミアム会員の価格が改定されるそうです。

月額880円から980円になるそうで、4月からの適応だそうですので迷っていたかたは今かもです。

『ドットインストール』公式ブログ — プレミアムサービスの価格を改定いたします