尋常でないもふもふ

a software engineer blog

Visual Studio Codeでエディタを水平分割

デフォルトでは垂直分割モードになっていてくっそわかりにくい。
エディタ分割自体は Cmd + 1, Cmd + 2, Cmd + 3 がショートカットになっていて、最大3つまで分割できる。 f:id:jnst:20180703184520p:plain

Cmd + Option + 0 がトグルになっていて押すたびに垂直分割モード→水平分割モードに切り替わる。 f:id:jnst:20180703184601p:plain

垂直に2つに分割して、右側だけさらに水平に分割して3つにする、というのはできない。不便。

ディレクトリに応じてgitユーザーを切り替える

会社のアカウントでは GitHub 使ってるけど、個人のアカウントでは GitLab.com 使ってる。
プライベートリポジトリが無制限に無料なのでわざわざ GitHub で課金するメリットないし。

こんなとき何も考えずにコード書いてコミットすると、個人用の匿名アカウントでやってるつもりなのに会社の実名アカウントで push しちゃって、しょうがないから git config 設定しなおして force push するみたいなことが度々おこる。

.gitconfig には条件分岐が書けて別のファイルを参照できるので活用すると便利。

~/.gitconfig

ソースコードはすべて golangディレクトリ構造を採用してるので、以下のように gitlab.com ディレクトリだったら別の gitconfig を参照する指定

[includeIf "gitdir:~/go/src/gitlab.com/"]
  path = ~/.gitconfig-private

~/.gitconfig-private

[user]
  name = jnst
  email = jnst@example.com

GitHubから1ファイルだけ取得する方法

どうにかクローンできないかと調べてたけど GitHub API 使って curl 等から HTTP でダウンロードできた。
プログラムから GitHub リポジトリのファイルを読み込みたいときに便利。

準備

GitHub の OAuthToken が必要。
Personal access tokens のページから Generate new token して以下の権限にチェックを入れる。

  • public_repo
  • read:org ※Organization リポジトリの場合のみ必要

Generate token して表示されるトークンをコピー。

実行方法

OAuthToken を利用しているので、Public リポジトリだけでなく Private リポジトリからも取得できる。
curl コマンドを使う場合は以下の形式となる。

$ curl -H 'Authorization: token <token>' -H 'Accept: application/vnd.github.v3.raw' -L https://api.github.com/repos/<owner>/<repo>/contents/<path>

<token>, <owner>, <repo>, <path> の部分を任意の文字列に置き換える。
例えば github.com/jnst/dotfiles.bashrc をダウンロードしたいときは

$ curl -H 'Authorization: token XXXXXXXXXXXXXXXXXXXXXXXX' -H 'Accept: application/vnd.github.v3.raw' -L https://api.github.com/repos/jnst/dotfiles/contents/.bashrc

# alias
alias ll='ls -AlhF'

# prompt
PS1="\W \u\[\e[1;31m\]$\[\e[00m\] "

# history
HISTSIZE=5000
HISTFILESIZE=5000
HISTTIMEFORMAT='%Y-%m-%d %T '

また、ブランチ名を指定したいときは末尾に &ref=develop のように付与すればいい。