かゆいとこログ

あと少しなのに届かないかゆいところに効きます

gitによる変更履歴の確認関連

特定ファイルの変更履歴を見る

git log -p /path/to/file

特定ディレクトリの変更履歴も同様に行ける

Gitで特定ファイルの変更履歴をみる - Bye Bye Moore

man git-log してみると,full-diff optionの説明があり,そこにpオプションの動作についての記述が出てくる.

--full-diff
           Without this flag, git log -p <path>...  shows commits that touch the specified paths, and diffs about the same specified paths. With this, the full diff is shown for commits that touch
           the specified paths; this means that "<path>..." limits only commits, and doesn’t limit diff for those commits.

--full-diffを付けない場合は特定のファイル(ディレクトリでも良いのでパスと呼んでる)にtouchしたコミットとそのファイルに関するdiffを表示し, 付ける場合はファイルにtouchしたコミットと,そのコミットに関するdiffを表示する.

つまり,後者の場合は指定したファイル以外に関するdiffも表示される(指定されたファイルが含まれるcommitにある,他のファイルに関するdiffも表示される)

細かすぎるなこれは・・・ ここまで調べる必要無かったかもだが,深追いするクセでまたやってしまった.

Pipenvで,.venvディレクトリをプロジェクトのディレクトリに配置する

export PIPENV_VENV_IN_PROJECT=1

.bashrcとかに書いておく.

fishユーザなら.config/fish/config.fish

set -x PIPENV_VENV_IN_PROJECT 1

と書いておく

sudoでリダイレクトできない件

普通にリダイレクトしようとすると無理

$ sudo echo "hoge" > fuga.txt
zsh: 許可がありません: fuga.txt

(´・ω・`)

解決策1

$ sudo sh -c "echo 'hoge' > fuga.txt"

解決策その2

$ sudo echo "hoge" | sudo tee fuga.txt

teeコマンドについては以下参考

【 tee 】 標準入力を標準出力とファイルに出力する | 日経 xTECH(クロステック)

GitHub Pagesとやらを設定してみる

GitHub上に自分のブログとかを置いてしまえる, GitHub Pagesとやらがある. CVとか,よくここに置いてある気がする.

pages.github.com

その中で,ブログ作成にJekyllが推薦されていた.
ジキルとハイドのJekyllかな?初めて聞いた. jekyllrb.com rubyで動くらしい. とりあえず qiita.com を参考にrubyの環境をmacOS上に作った. fish shellまだまだ慣れておらず,PATHの追記に苦労した… qiita.com

$ jekyll new blog-name で生成されるファイルをそのままusername.github.ioのリポジトリにpushしてあげると https://username.github.io/開くだけですぐ生成されたページが表示される.
ちょっと感動.

テーマもたくさんあるようなので,楽しめそう. http://themes.jekyllrc.org/
http://jekyllthemes.org/

emacsでシンタックスチェック

flycheckがオススメ. checkerは,言語によっていくつか選べる. python3の場合,私はとりあえずflake8を利用している.

line too longのwarning等がうざいので, ↓を参考にして諸々の厳しすぎるerrorとwarningを非表示にする. www.reddit.com

↑の記事で書かれていたエラーコードの一覧は
Introduction — pycodestyle 2.3.1 documentation
にある.

flake8の設定ファイルの書き方については
Configuring Flake8 — flake8 3.5.0 documentation
が参考になる.

見えないディスクをマウントしよう

$ lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 489.1G  0 disk 
├─sda1   8:1    0 425.4G  0 part /
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0  63.7G  0 part [SWAP]
sdb      8:16   0   2.7T  0 disk 

list blockすると2.7TiBあるHDDに対応する,sdbが見える.

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs   32G     0   32G   0% /dev
tmpfs          tmpfs     6.3G  106M  6.2G   2% /run
/dev/sda1      ext4      419G  382G   16G  97% /
tmpfs          tmpfs      32G  264M   32G   1% /dev/shm
tmpfs          tmpfs     5.0M  4.0K  5.0M   1% /run/lock
tmpfs          tmpfs      32G     0   32G   0% /sys/fs/cgroup
tmpfs          tmpfs     6.3G  108K  6.3G   1% /run/user/1004

だけど,マウントされていないので使えないねっていう状態.

まず,sdbのフォーマットが必要.これがないとエラー吐かれる.
既にフォーマット済みならしなくて良い.してしまうとデータ全部消えますね.

# mkfs -t ext4 /dev/sdb
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 732566646 4k blocks and 183148544 inodes
Filesystem UUID: c0a5a533-7ec2-4068-bcc6-276187e7bf24
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done  

次に,マウントする.

# mount /dev/sdb /mnt/sdb

これで確認してみると

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs   32G     0   32G   0% /dev
tmpfs          tmpfs     6.3G  106M  6.2G   2% /run
/dev/sda1      ext4      419G  382G   16G  97% /
tmpfs          tmpfs      32G  267M   32G   1% /dev/shm
tmpfs          tmpfs     5.0M  4.0K  5.0M   1% /run/lock
tmpfs          tmpfs      32G     0   32G   0% /sys/fs/cgroup
tmpfs          tmpfs     6.3G  108K  6.3G   1% /run/user/1004
/dev/sr0       iso9660   1.5G  1.5G     0 100% /media/yoneda/TOEFL iBT
/dev/sdd1      vfat       15G  1.8G   13G  13% /media/yoneda/5340-CDEA
/dev/sdb       ext4      2.7T   73M  2.6T   1% /mnt/sdb

ちゃんと/dev/sdbがマウントされてる. めでたし

iTerm2にpowerline導入

powerlineって何?

https://camo.githubusercontent.com/ef9de011e72134e8363644a3e10f312292c08d65/68747470733a2f2f7261772e6769746875622e636f6d2f62616e67612f706f7765726c696e652d7368656c6c2f6d61737465722f626173682d706f7765726c696e652d73637265656e73686f742e706e67 ↑こういう感じの,一度はやってみたくなるやつ.

iTerm2 on Mac 民がぶつかる壁

何もせずにpowerlineのテーマとか適用すると, "▶"に対応する文字が化けてしまい,残念な感じになる.

https://camo.githubusercontent.com/5c332c9adcfdae274b3bba91c282d8dbcd2f9150/68747470733a2f2f6170692e6d6f6e6f736e61702e636f6d2f7270632f66696c652f646f776e6c6f61643f69643d6c43786948794274596f6a54724244705973303065337177485775325334

解決策

"▶"のような,powerlineで使われる特殊なフォントを導入する必要がある.
フォントの導入は,Homebrew-Caskでやると楽 physick.hatenablog.com

$ brew cask search fonts-powerline

で結構引っかかる.
選んでも良いが,めんどくさければ全部入れておけば良い.

再ログインしてから,入れたフォントが一覧にあることをFontBook appで確認する.
その後,iTermの設定でprofile内のフォントを変更する.
これに関しては

Installing powerline on Mac OSX. The following was done in version Version 10.8.2 · GitHub

が参考になる.

注意点

"▶"等をフォントで代用しているため, iTermの設定でコンソールの背景を

透明度が0% かつ コントラストが最小

の設定にしていないと,powerlineの色ズレが発生する. ("▶"部分とその左側とで色が異なっていることが分かる)

f:id:physickelback:20180222002811p:plain
透明度0
f:id:physickelback:20180222002816p:plain
半透明