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

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

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

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

1870閲覧

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

residenti

総合スコア11

Vim

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2019/02/01 15:55

編集2019/02/01 16:11

前提

・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

toml

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

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

表題の通り、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

該当のソースコード

erb

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <style> 6 /* Email styles need to be inline */ 7 </style> 8 </head> 9 10 <body> 11 <%= yield %> <!-- ここにカーソルを合わせるとエラーが発生する。 --!> 12 </body> 13</html>

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

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

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

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

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

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

guest

回答1

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がチェックを走らせる

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

投稿2019/02/02 00:42

編集2019/02/02 00:44
residenti

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問