byobuの上のVimのCtrl + aが効かない

Ubuntu 14.04でbyobuを使ってターミナルを便利にしてるとvim上でctrl + a (数字に1を加える)が効かなかったりします
aで効いたり)

byobuのエスケープシーケンスとかぶってるからで、byobuのエスケープシーケンスを変えると解決しました
byobuの上でF9を押して、エスケープシーケンスの変更

byobu-config

Ctrl + K
にしてみました

vim上で使っているショートカットを見るには

:h index.txt

で確認

byobuのエスケープシーケンスは
<エスケープシーケンス> , c
とすると新規タブが開いたりします

Vimで改行コードに置換する

Vimでスペース区切りでならんだ単語を改行して縦に並べてみました

libexpat1-dev gettext libz-dev libssl-dev python-software-properties

とかインストールするライブラリが並んでたテキストがあったので、

Ctrl + v
で選択
:s/ /Ctrl+v Ctrl+m/g と打つ
(見た目はこうなる :'<,’>s/ /^M/g )
でEnter

libcurl4-gnutls-dev
libexpat1-dev
gettext
libz-dev
libssl-dev
python-software-properties

とできます
Ctrl+v Ctrl+m で改行コードを表す^Mがポイントです

Git hookでctagsを作成する

プログラムを書いてて、クラスやメソッドにジャンプするため、vim + ctagsでやってます
手動で

$ ctags -R

とかして、ctagsを生成してましたが、Git操作時にctagsを生成するようにしてみました

Gitのフックを使って、ctagsを生成してみました
tpope/vim-fugitiveを使っているので、
.git/tags
を勝手に参照してくれる環境です

Git hook用のtemplateファイルを用意します

ディレクトリを作って
$ mkdir -p ~/.git_template/hook

Gitに設定しておきます
$ git config –global init.templatedir ‘~/.git_template’

これで、git init 時に.git/.git_templateがコピーされます

hook用のスクリプトを用意

$ ~/.git_template/hook/ctags

#!/bin/sh
set -e
PATH="/usr/local/bin:$PATH"
dir="`git rev-parse --git-dir`"
git ls-files | ctags -R -f "$dir/tags"

後はhook用のファイルをそれぞれ用意

$ vim ~/.git_template/hook/post-checkout

#!/bin/sh
.git/hooks/ctags >/dev/null 2>&1 &

中身が同じものを、

  • ~/.git_template/hook/post-commit
  • ~/.git_template/hook/post-merge

も用意します
これで、commit時とかcheckout時とかにctagsファイルのスクリプトが呼び出され、ctagsコマンドが実行されます
つまりは、.git/tagsファイルが生成されます

できてるかどうかは
.git/tags
をエディタで開いてみると確認できます

参考
tbaggery – Effortless Ctags with Git
ctags – gitのhookでtags作成 – Qiita