Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

ctrlproj.vimを作った

$
0
0

前置き

先日ctrlp-quickref.vimという自作プラグインについて投稿しました。このプラグインは既に開発が止まっていますが、その後継として新しいプロジェクトをスタートし、そろそろ形になってきたのでまた投稿したいと思います。後継プラグインの名前はctrlproj.vimとしました。

少しでも興味を持った方は一度使用してみて、何かバグや改善案などがありましたらQiitaやGithubを通じてお知らせくださると嬉しいです。

イントロダクション

このCtrlprojと言う名前は"CtrlP + Project"の略称で、CtrlPを使ったプロジェクト管理の機能を提供するためのプラグインです。EmacsにおけるProjectileHelmのような機能を、このCtrlprojとCtrlPによって実現しようと目論んでいます。現在、このCtrlprojには以下のような機能が実装されています。

  • 複数のプロジェクト間を移動する
  • 同じファイル名で異なる拡張子を持つファイルどうしを切り替える (例 .h<->.c/.cpp)
  • ソースコードとそのテストどうしを切り替える
  • 現在のプロジェクトに属するバッファをすべて削除する
  • 他のプロジェクトの中のファイルを瞬時に開く(ctrlp-quickrefからの機能)

既存のCtrlPに、これらの機能を追加することになります。

使い方

プラグインをインストールしたらまず、プロジェクトやライブラリなどのパスをファイル~/.vim/.ctrlprojまたは変数g:ctrlproj_pathsに登録しなければなりません。もしファイルに登録したいなら、次のように記述してください。

# Write
# Some
# Comments
/path/to/specified/project

# Additional comment
/path/to/specified/directory/*

# You can also exclude specified directory by writing like this
! /path/to/project/you/want/to/exclude

変数に登録したい場合は、次のように自分のvimrcに記述してください。

let g:ctrlproj_paths = [
    \ '/path/to/specified/project',
    \ '/path/to/specified/directory/*',
    " You want to exclude specified directory, put '!' at the head.
    \ '! /path/to/project/you/want/to/exclude'
]

以上で初期設定は終わりで、:Ctrlprojコマンドを実行すると、次のように登録したパスを選択肢としてCtrlPのインタフェースが現れます。

Ctrlproj.png

ここでどのキーを使って選択するかで、その後の動作が決まります。

  • もし<enter>を使ったなら、選択されたディレクトリにおいてもう一度CtrlPのインタフェースが現れます。
  • もし<c-t>を使ったなら、現在のプロジェクトに属するバッファをすべて削除し、選択されたディレクトリにカレントディレクトリを移動します。
  • もし<c-v>を使ったなら、バッファを削除することなくカレントディレクトリを移動します。
  • もし<c-x>を使ったなら、デフォルトのファイルエクスプローラを選択されたディレクトリで起動します。

そして、Ctrlprojが提供する他の機能についても説明します。

  • :CtrlprojLastDir

    最後に選択されたディレクトリにおいてCtrlPインタフェースを起動します。

  • :CtrlprojEdit

    パスを登録したファイルを開きます。

  • :CtrlprojAlternate

    カレントバッファに対して、同じファイル名で違う拡張子をもつファイルを開きます。

  • :CtrlprojSwitch

    カレントバッファに対して、ソースとテストを切り替えます。

  • :CtrlprojRemoveBuffers

    カレントプロジェクトに属するバッファをすべて削除します。

オプション

  • g:ctrlproj_readonly_enabled

    この値を0に設定すると、他のプロジェクトのファイルを開くときにリードオンリーフラグを追加しなくなる(デフォルトでは1)。

  • g:ctrlproj_open_extensions

    このリストに含まれる拡張子をもつファイルは、Linuxではxdg-open、Macではopenなどのコマンドによって開かれる(デフォルトでは['html', 'pdf'])。

  • g:ctrlproj_configuration_file

    パスを登録するファイルを指します(デフォルトでは'~/.vim/.ctrproj')。

  • g:ctrlproj_paths

    このリストにもパスを登録することができる(デフォルトでは[])。

必要なプラグインなど


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>