12

PHP コードを編集するとき (その言語に固有のものかどうかはわかりません)、複数行にまたがるコンマ区切りのリストの途中に新しい行を作成すると、インデント ルールによって、残した行が常にインデント解除されます。これがそのビデオです。これは、配列、関数の引数リストなどで発生します。

これが起こらないようにするために私にできることはありますか、または上に移動し、再インデントし、下に移動し、再インデントするよりも早くエラーを修正する方法はありますか (行を離れるとクリアされるため)、続行しますか?

.vimrc

4

8 に答える 8

3

インデントは、PHP インデント スクリプト (.vimrc の「filetype indent on」) によって制御されます。PHPのインデントにこれらのオプションを使用します~/.vim/after/ftplugin

setlocal autoindent
setlocal cindent
setlocal cinwords=if,else,elseif,do,while,foreach,for,case,default,function,class,interface,abstract,private,public,protected,final
setlocal cinkeys=0{,0},0),!^F,o,O,e

setlocal nosmartindent " don't use smart indent option

このトピックについては、ソースのインデントに関する vim wiki ページに詳細があります。

于 2008-11-26T03:31:41.357 に答える
3

:set indentexpr=""それが役立つかどうか試してみてください。ファイルタイプのプラグインを扱うセクションについては、を参照:help filetype-indent-offしてください (おそらく、この indentexpr の由来はここにあります)。

于 2008-11-24T03:42:55.033 に答える
0

これを試して:

:let g:PHP_default_indenting=1

を参照してください:h php-indent

于 2008-11-24T18:57:02.910 に答える
0

おそらく indentkeys を見たいと思うでしょう

たとえば、最近のデフォルトは次のとおりです。

indentkeys=0{,0},:,0#,!^F,o,O,e,*,<>>,,end,:

于 2010-10-24T22:50:31.900 に答える
0

php.vim インデント ファイルを見つけます。例 /usr/share/vim/vim73/indent/php.vim

次に、次の行を探します。

elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$'
    let lnum = lnum - 1

次のように、先頭に引用符を付けてコメントアウトします。

"elseif lastline =~ '^\s*?>.*<?\%(php\)\=\s*$'
"    let lnum = lnum - 1

それで直ります!PHP タグを開く際のインデント解除はもう必要ありません<?

于 2014-02-20T02:23:35.463 に答える
0

私はcindentすべてを台無しにして、smartindent通常はあなたが望むものだと思います。

これを入れてみてください~/.vim/filetype.vim

au BufNewFile,BufRead *.html,*.css setlocal nocindent smartindent
于 2010-09-04T05:31:04.750 に答える
0

あなたもできる

set cindkeys=-0#

# 文字の場合。次のようなcss宣言で発生したのと同じ問題が発生している場合

width: 100%

同様に左にシフトして、追加することができます

set cindkeys-=:
于 2009-12-21T22:53:47.707 に答える
0

通常モードで「o」を使用すると、問題が回避されるようです。挿入モードからのヒット<esc>oは最適ではありませんが、(上記のように) 難しい方法よりは優れています。

于 2008-11-24T04:04:18.033 に答える