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

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

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

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

Q&A

1回答

2021閲覧

ctagsの正規表現に関して

lllucy

総合スコア11

Vim

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

0グッド

0クリップ

投稿2017/01/10 03:14

前提・解決したいこと

ctagsを利用して変数にジャンプさせたい。

エディタ: vim
ctags: brew install ctagsでinstall(ctags-5.8.1)

発生している問題

下記のような変数(cssファイル)を認識させたい

cssファイル

1:root { 2 --test: red; //変数部分(--test) 3}

現在ctagsファイルに下記のように設定しています。

ctags

1--langdef=CSS 2--langmap=CSS:.css 3--regex-CSS=/^\s*(^-{2}(a-zA-Z0-9_][a-zA-Z0-9_]+)/\1/d,var/

vimrcsetlocal iskeywordの設定はしておりません。

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

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

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

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

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

guest

回答1

0

ctagsの定義の仕様は知らないのですが普通の正規表現と仮定したときに気づいた点をコメントします。ちなみに上のような設定をしたけどctagsなどでエラーはでず、単にうまくジャンプしてくれないという意味なのですよね?質問文に何がまずいのかが書いてないですが。

--regex-CSS=の行の意味が「マッチさせるパターンD」「そのパターン中の特定部分」「先に書いた2つのパターンがctags上のどういう意味に解釈させたいか」を書くものだと仮定すると

--regex-CSS=/^\s*(^-{2}(a-zA-Z0-9_][a-zA-Z0-9_]+)/\1/d,var/

  • ^

パターンDの括弧の中にある先頭の^はもし通常の意味(行の先頭)という意味になってしまうなら不要ではないでしょうか?

  • 文字範囲を表す正規表現の開始文字が'['になってない箇所があります
  • 識別子

正規表現として間違ってはいないと思いますが冗長なところがあります。質問文にあるパターンでは先頭文字とそれに続く文字の条件に違いがないので正規表現として冗長だと思います。もし識別子の先頭文字が数字であってほしくないという場合なら
[a-zA-Z_][a-zA-Z0-9_]+
そういった条件が必要ないなら
[a-zA-Z0-9_]+
でいいのではないでしょうか?

投稿2017/01/10 06:41

編集2017/01/10 06:42
KSwordOfHaste

総合スコア18394

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問