Bashとzsh用の.aliases
というファイルがあります。次の行を挿入します
# vim: set filetype=bash:
でも私が作ったら
: echo &ft
conf
うまくいくはずです。私はそのラインを自分で試してみましたが、うまくいきました。 'modeline'オプションが 'nomodeline'に設定されている可能性があります。これを実行して、何が得られるか確認してください。
:verbose set modeline?
これにより、「modeline」オプションの値と、デフォルトでない場合は最後に設定された場所がわかります。
一部のLinuxディストリビューションでは、「modeline」のセキュリティ問題が長い間修正されているにもかかわらず、セキュリティ対策として/ etc/vimrcまたは/ usr/share/vim/vimrcに「nomodeline」を設定しています。
この他の回答の完全なデバッグチェックリスト について説明します。
ドキュメント が完全に真ではないため、私は本当にこれに困惑しました。
バージョン8(およびおそらくそれ以前)では、モードラインでWord set
を使用できないことがわかりました。ドキュメントでは、「2番目の形式」が/* vim: set ai tw=75: */
しかし、これは機能しません。 「最初の形式」を使用する必要があります// vim: ai tw=75
注:これらの種類のコメントインジケーターのいずれかを使用できます。またはまったくありません。
set modelines=1
(または0以外の値)が〜/ .vimrcにあると、うまく機能しました。
〜/ .vimrcで以下を設定する必要があります:
set nocompatible
filetype plugin on
set modeline
私の~/.vimrc
に次のコードを追加するだけで、Funtoo Linuxボックスでうまくいきました。
set modeline
/usr/share/vim/vim80/debian.vim
からvim-common
on Debian-based distrosはデフォルトでmodeline
を無効にします。
" modelines have historically been a source of security/resource
" vulnerabilities -- disable by default, even when 'nocompatible' is set
set nomodeline
modeline
を明示的に有効にする必要があります.vimrc
または~/.vim/vimrc
ファイル。
set modeline
これは検索で出てくるように見えるので:
私は同じ問題を抱えていました:
# vim: set filetype=sh:
機能しなかったため、ft = confも発生しました。 〜/ .bash_aliasにモードラインがないと、ftは空なので、何かが変わります。
ながら
# vim: filetype=sh:
働いた。最後の ":"の存在は関係がないようです。
記録のために、私はOSXでVim8醸造バージョンを使用しています。
モードラインから両方を助けるのでそれは奇妙です
[text]{white}{vi:|vim:|ex:}[white]{options}
そして
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
サポートされているようです。
の出力
verbose set ft?
「vim:filetype = sh」では
filetype=sh
Last set from modeline
モードラインなし:
filetype=
「vim:set filetype = sh」
filetype=conf
Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim
私の設定のどこかに副作用があるかもしれませんが、互換性のないモードライン構文が私にとって期待どおりに機能する唯一のものです。
機能することを確認するには、.vimrc
ファイルで両方のオプションを設定します(より複雑な.vimrc
がある場合は、下に向かって):
set modeline
set modelines=10
2番目のオプションは、潜在的なモードライン行を検索するときにチェックする行数を制御します。このようなモードライン行を10個以上使用する必要がある場合は、値を増やします(上記の例では10
)。
また、ドキュメントのメモも読んでください::help modelines
:
注: 'modeline'は、 'compatible'が設定されている場合はViのデフォルト値に設定され、 'compatible'がリセットされている場合はVimのデフォルト値に設定されます。
.vimrc
ファイルの複雑さによっては、compatible
オプションの値を(特定のプラグインによって直接的または間接的に)変更すると、モードラインの動作にも影響を与える可能性があります。
しかし、あなたのファイルはそのようなコメント行を聞くはずです(ここでは、私の~/.zshrc
の例):
# vim: tabstop=2 shiftwidth=2 expandtab