by shigemk2

当面は技術的なことしか書かない

ghqとEmacsでガヤガヤする

今更かつghqってどうやってつかえばいいのかなって思ったり思わなかったりしたけどふと思い立ってghqを自分のPCに入れることにした。なお、GitHubEnterpriseはわかりません。

そもそもghqは、ローカルの中のGitHubのリポジトリを一括管理するやつで、慣れれば便利なツールです。

ふつうにghq getしてもremote-urlのプロトコルはhttps

ghq 最近の変更とこれから - 詩と創作・思索のひろば

リポジトリのurlのプロトコルがhttp/httpsだとGitHubへpushしたときにuser/passwordを聞かれるのは有名な話かもしれませんが、

GitHubにpushする度にusername/passwordを求められるとき - Qiita

ghq getでcloneできるリポジトリのプロトコルはhttpsなので、そこは注意しないといけないかもしらんです。

なので、ghq get -pでpオプションをつけると良いと思います。

ghq getでは

ghq + peco

pecoとghqの組み合わせは重要です。

zshにpeco + ghqを導入したメモ - Qiita

.zshrcにこのようにして書くと幸せになれます。

function peco-src () {
  local selected_dir=$(ghq list -p | peco --query "$LBUFFER")
  if [ -n "$selected_dir" ]; then
    BUFFER="cd ${selected_dir}"
    zle accept-line
  fi
  zle clear-screen
}
zle -N peco-src
bindkey '^]' peco-src

f:id:shigemk2:20150216222751p:plain

これもいいかもしれません。

ghqとpecoを組み合わせてGithubリポジトリを簡単に取得するためのghsコマンドを作りました - Qiita

なおghq getするとgithub.com/userなるディレクトリが掘られるので、慣れないと結構ぎょっとするかもしれません。今のところそれが嫌でどうにかしたいっていう人は見かけないので、みんな慣れているのでしょう。

helm-ghq

helm-ghq.elを作ってGO WAYに乗った / マスタカの ChangeLog メモ

Emacsでghqを使いたいってなったときに、あると良いと思います。

f:id:shigemk2:20150216223248p:plain

設定はこんな感じ。

;; helm-ghq
(add-to-list 'helm-for-files-preferred-list 'helm-source-ghq)
(add-to-list 'exec-path "/home/shigemk2/go/bin")
(define-key global-map (kbd "C-x n")     'helm-ghq)

なお、goのパスがホームの下とかだとエラーが出るので、exec-pathを追加するとよろし。

helm-ghq で Searching for program: No such file or directory, ghq エラーが出るときの対処法 - @kyanny's blog