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

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

ただいまの
回答率

90.23%

【Vimプラグイン】w0rp/aleを入れてerbファイルの<% %>か<%= %>内にカーソル当てるとシンタックスエラーが表示される。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 365

residenti

score 4

前提

・vimのバージョン

$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar  5 2017 11:04:45)
MacOS X (unix) version
Included patches: 1-402
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     -gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
-clientserver    +insert_expand   +packages        -toolbar
+clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        +perl            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       +python          +vreplace
+cscope          +lispindent      -python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con      +lua             +rightleft       +writebackup
+diff            +menu            +ruby            -X11
+digraphs        +mksession       +scrollbind      -xfontset
-dnd             +modify_fname    +signs           -xim
-ebcdic          +mouse           +smartindent     -xpm
+emacs_tags      -mouseshape      +startuptime     -xsmp
+eval            +mouse_dec       +statusline      -xterm_clipboard
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax
+farsi           +mouse_netterm   +tag_binary
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L. -fstack-protector -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib  -L/usr/local/lib -o vim        -lncurses -liconv -framework Cocoa  -L/usr/local/lib -llua -mmacosx-version-min=10.11 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.24.1/lib/perl5/5.24.1/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc -F/usr/local/opt/python/Frameworks -framework Python   -lruby.2.4.0 -lobjc

プラグインの管理ツールはdeinを利用しており、プラグインとそのオプションはdein.tomlに記載しております。下記はその中でw0rp/aleを記載している箇所になります。

・dein.toml

・
・
・
[[plugins]]
repo =  'w0rp/ale'
hook_add = '''
" リアルタイムチェックをオフにしてバッファの保存時にチェックする.
let g:ale_lint_on_text_changed = 'never'
" ファイルを開いた時のチェックを無くす.
let g:ale_lint_on_enter = 0
" ファイルがエラーもしくは警告を含むなら loclist で表示する.
let g:ale_open_list = 1
'''
・
・
・

発生している問題・エラーメッセージ

表題の通り、w0rp/aleをインストールしたのち、erbファイルの<% %>か<%= %>内にカーソル当てるとシンタックスエラーが出てしまいます。
また、hook_addでリアルタイムチェックをオフにしてバッファの保存時にチェックするようにしているのですが、上記の箇所にカーソルを当てた場合だけリアルタイムでチェックされてしまいます。

イメージ説明

app/views/layouts/mailer.html.erb|1 col 1 error| syntax error, unexpected '<'
app/views/layouts/mailer.html.erb|2 col 1 error| syntax error, unexpected '<'
app/views/layouts/mailer.html.erb|4 warning| warning: assigned but unused variable - equiv
app/views/layouts/mailer.html.erb|4 col 30 error| syntax error, unexpected tIDENTIFIER, expecting end-of-input

該当のソースコード

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
      /* Email styles need to be inline */
    </style>
  </head>

  <body>
    <%= yield %> <!-- ここにカーソルを合わせるとエラーが発生する。 --!>
  </body>
</html>

以上、よろしくお願いします。
(足りない情報など有りましたらご指摘頂いただけると嬉しいです)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

check解決した方法

0

解決策

g:ale_lint_on_filetype_changedを指定し、ファイルタイプが変更された時のチェックをオフにする。

[[plugins]]
repo =  'w0rp/ale'
hook_add = '''
" ファイルタイプが変更された時のチェックをオフにする.
let g:ale_lint_on_filetype_changed = 0
" バッファの保存時にチェックする.
let g:ale_lint_on_text_changed = 'never'
" ファイルを開いた時のチェックを無くす.
let g:ale_lint_on_enter = 0
" ファイルがエラーもしくは警告を含むなら loclist で表示する.
let g:ale_open_list = 1
'''

何が起きていたか

w0rp/aleはファイルタイプが切り替わった時にチェックが走る仕組みになっていました。
該当のソースコード

・
・
・
" This flag can be set to 1 to enable linting when the filetype is changed.
let g:ale_lint_on_filetype_changed = get(g:, 'ale_lint_on_filetype_changed', 1)
・
・
・

自分はosyo-manga/vim-preciousもインストールしていたため、カーソル位置のコンテキストに合わせてファイルタイプが切り替わっていました。

そのため、
<% %>か<%= %>内にカーソル当てる
=> vim-preciousによりファイルタイプが切り替わる
=> w0rp/aleがチェックを走らせる

となる事で、今回発生した問題が起きていました。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • トップ
  • Vimに関する質問
  • 【Vimプラグイン】w0rp/aleを入れてerbファイルの<% %>か<%= %>内にカーソル当てるとシンタックスエラーが表示される。