詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

git-browse-remote 0.1.0 を公開しました & Vim からいい感じに GitHub を開く

git-browse-remote | RubyGems.org | your community gem host

git-browse-remote は、コマンドラインからいい感じに(リビジョンを指定したりファイルを指定したり)リポジトリのウェブサイトを開いてくれるツールです。

入れていた変更でまだ RubyGems に上げてなかったぶんをリリースしただけなんですが……。今回の変更で行番号(-L)に範囲が指定できるようになりました。

% git browse-remote -L 5,10 -- README.md

https://github.com/motemen/git-browse-remote/blob/master/README.md#L5-10 を開いてくれます。--stdout を指定すれば標準出力に URL を書き出すだけ、ってこともできます。

おまけで便利な Vim 設定を紹介。

command! -nargs=* -range GitBrowseRemote !git browse-remote --rev -L<line1>,<line2> <f-args> -- %

V などでビジュアル選択した状態で :GitBrowseRemote すると、その範囲を選択した URL をブラウザで開いてくれます。また、--rev オプションを指定することで、ブランチではなく SHA1 によって URL を構成します。他人に共有するときはこのように、後から見ても内容の変わらない URL にしておくのが便利ですよね。

#vim 初心者におすすめしたいプラグイン vim-help-random

Vim を使いこなせるようになるには公式のヘルプを引く(:h)のがもっとも近道であり王道であることは周知の通りですが、これを支援するための簡単なプラグインを書いてみました。

motemen/vim-help-random · GitHub

インストールすると、:HelpRandom というコマンドが使えるようになります。

:HelpRandom を実行するとヘルプドキュメントとしてインデックスされているすべてのトピックの中からランダムにひとつが選ばれて、:help コマンドにより開かれます。実行するたびに別のヘルプが読めます。

そもそも Vim にどんな機能があるのか知らない初心者のみならず、だいたい分かってきた中級者に新たな発見をうながすものとして、有用なのではないかと思います。どうぞよろしく!

My Vim settings for tmux

" .vimrc
command! -nargs=* -complete=shellcmd TmuxSplitRun
            \ let _cmd = len(<q-args>) ? shellescape(substitute(<q-args> . '; read' , '%', expand('%'), '')) : '' |
            \ let tmux_cmd = printf('tmux if-shell "tmux select-pane -t.1" "send-keys ^C" \; if-shell "tmux respawn-pane -t.1 %s" "select-window" "split-window -d -v -p 30 %s"', _cmd, _cmd) |
            \ call system(tmux_cmd)

Provides command such as:

:TmuxSplitRun perl %

which splits tmux window horizontally and evaluate current file in another pane, could be alternative for :!. After the command finishes, hit enter to close the pane.

f:id:motemen:20130911193746g:plain

Or without arguments:

:TmuxSplitRun

Starts a new shell.

And with this mapping:

nnoremap <C-J> :
cnoremap <expr> <C-J>  getcmdline() == '' ? '!' : getcmdline() == '!' ? "\<C-U>TmuxSplitRun " : "\<CR>"

hitting C-J successively changes cmdline, : to :! to :TmuxSplitRun, one after one. On last hit, :TmuxSplitRun is executed and you will get a new shell pane.

はてなで一緒に働きませんか?