質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

1回答

2154閲覧

vimの保存時にctagsをアップデートする

arw.tyx-out_mz

総合スコア27

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2018/01/01 13:21

###前提・実現したいこと
vimの保存時にtagsファイルをアップデートする処理をしたいです.
ctagsの実行はgitのhooksを使用しています.

環境は,
Mac OS X
iTerm2
fishシェル
を使用しています.

###発生している問題・エラーメッセージ
保存時にシェルスクリプトを実行する処理をinit.vimに記述していますが、その実行時にエラーが起きています.

alias: Expected at most 2 args, got 3 - (line 1): Unsupported use of '&&'. In fish, please use 'COMMAND; and COMMAND'. begin; [ -f ".git/hooks/ctags" ] && .git/hooks/ctags ^ from sourcing file - called on line 60 of file /usr/local/Cellar/fish/2.7.0/share/fish/functions/eval.fish in function 'eval' called on standard input source: Error while reading file '-'

###該当のソースコード

vim

1au BufWritePost *.php silent! !eval '[ -f ".git/hooks/ctags" ] and .git/hooks/ctags'

.git/hooks/ctagsに以下のように記述しています.

#!/bin/sh set -e PATH="/usr/local/bin:$PATH" dir="`git rev-parse --git-dir`" trap 'rm -f "$dir/$$.tags"' EXIT ctags --tag-relative=yes -R -f "$dir/$$.tags" --fields=+aimlS --languages=php --PHP-kinds=+cdfint-av --exclude=composer.phar --exclude=*Test.php --exclude=*phpunit* --exclude=".git" mv "$dir/$$.tags" "$dir/tags"

init.vimに記述したevalで実行する処理で、.git/hooks/ctagsを実行しようとしているのはわかるのですが、
[-f ".git/hooks/ctags"]の部分が何をしているのかよくわかりません.

###補足情報(言語/FW/ツール等のバージョンなど)
このサイトを参考にして実装しました.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

fish には詳しくないですが、エラーを見たところ fish の文法上のエラーが出ているように見えます。
エラーメッセージに従って、

au BufWritePost *.php silent! !eval '[ -f ".git/hooks/ctags" ]; and .git/hooks/ctags'

としてみるとどうでしょう?

投稿2018/01/01 13:52

thinca

総合スコア1864

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arw.tyx-out_mz

2018/01/01 14:35

``` ctags: Warning: Unsupported parameter 'n' for --PHP-kinds option ctags: Warning: Unsupported parameter 't' for --PHP-kinds option ctags: Warning: Unsupported parameter 'a' for --PHP-kinds option ``` という警告は出ますが通るようになりました! ちなみにこの警告はどのように修正すればいいか教えていただけませんか?
yoshitia

2018/01/01 15:23

.git/hooks/ctagsの--PHP-kindsでn,t,aが対応してないってメッセージですね。お使いのctagsのドキュメントから--PHP-kindsでサポートしてるタグ種別を確認して修正したらいいと思います。
arw.tyx-out_mz

2018/01/02 07:43

ありがとうございます! 見落としていたのですが、 alias: Expected at most 2 args, got 3 というメッセージがvim上ではき出されていました これはどの部分で出ているエラーなのでしょうか? git管理下のファイルを保存した時にのみ出るので、今回質問した部分に対してのメッセージだとは思うのですが...
yoshitia

2018/01/27 04:41

気づくのが遅くてすみません。 私は使ってないのですがおそらくfish-shellのエラーメッセージで 「引数は最大2個なのに3個も引数書いてるよ」とあります。 - (line 1): Unsupported use of '&&'. In fish, please use 'COMMAND; and COMMAND'. と書いてあるので && を使ってる部分探しましょう。 そこを COMMAND && COMMAND から COMMAND; and COMMAND に書き直したら良いかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問