2009-07-06 4 views
2

私はtextmateを使ってRubyのコードを1年以上使っていました。最近私はmvimを使用するように切り替えました。 mvimでいくつかのファイルを開くと、空のブロックができます。 Look at this pictureそれを感じる。vimで空のブロックを取り除く方法

どのようにそれらを取り除くための任意のアイデアですか?

おかげ

+0

その画像は、JavaScriptのです!おそらくRubyタグの必要はありません... – cdleary

+0

私はルビーコードを置くべきです。私もRubyファイルを開くと、同様の空のブロックを取得します。 – Roger

答えて

9

他の人は、これはスペースやタブを強調表示したり、混在したインデントを表示するように設計されている可能性が高いと説明しています(特にPythonの価値がある場合に便利です)。私はこれを個人的に非常に便利だと思います。

とにかく、原因に応じて、あなたのハイライトを整理するためのオプションがいくつかあります:

(混沌で述べたように)ラインのスペースの終わりをきれいにするには、のようなものを使用します。

:%s/ \+// 

をおそらく最も有用な1:

:set expandtab 
:retab 
:あなたはインデントにスペースを使用している場合

:タブ移動を片付けます0

あなたが使用している場合、タブ:

:set noexpandtab 
:retab! 

あなたが他の場所でインデントのタブとスペースを使用している場合は:

:set expandtab 
:retab 
:set noexpandtab 
:execute '%[email protected]^\(\{'.&ts.'}\)\[email protected]\=repeat("\t", len(submatch(0))/'.&ts.')@' 

私は、コマンドにマッピングされた最後の行:RetabIndentsと呼ばれています。それらのすべてはあなたのtabstopの設定が正しいことを前提としています(あなたの写真に基づいてset ts=2で設定する必要があります)。個人的には、shiftwidthtabstopと同じにすることをお勧めします(set ts=2 sw=2)。

でも、単純なgg=G(ファイル全体が自動インデントされます)で取り除くことができます。しかし、これはいくつかの言語では動作しません(特にPythonはどのエディタがどのレベルにインデントされるべきかを知る方法がないため)。

検索ベース一時的にハイライト表示オフにする:

:noh 

または永続的(の.vimrcでこれを置く):

:set nohlsearch 

それとも、それとドンを使用しました場合の迅速なショートカット

インデントの強調表示をオフにするには、どのハイライghtingグループが使用されていますが、少し複雑で、おそらくあなたの.vimrcを読むのが最も簡単ですが、実際に検索したい場合は、カーソルをハイライトされた文字の1つに移動して(hereから):

:echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR> 

.vim/.vimrc/_vimrc/vimfiles設定のコマンドラインで報告された名前を検索し、関連するものをコメントアウトすることで、強調表示グループをクリアすることができます。詳細については

:help :s 
:help 'expandtab' 
:help :retab 
:help :execute 
:help 'tabstop' 

:help :noh 
:help 'hlsearch' 
+0

+1、すばらしい説明 – technomalogical

2

あなたが行の先頭にスペースを強調して保存された検索パターンかもしれないように見えます:/^ +をして、ハイライトカラーはライトグレーです。

これを取り除くには、別のものを検索してみてください:/asdf<ENTER>

1

あなたが(彼らはいつも正直、私の地獄を困ら)線の端部に掛かってスペースを取り除きたい場合は、このコマンドは、指定したファイルからそれらを除去します:

:%s/ *$// 
+0

代わりに(文字は保存されませんが)スローするだけで、%s/\ + $ //を使用することもできます。 '\ +'は「1つ以上」です。「*」は「0以上」です。 – DrAl

3

それはルックスです冗長な空白の強調表示するように

何かがあなたの線に沿って.vimrc ...

highlight RedundantSpaces ctermbg=grey guibg=grey 
match  RedundantSpaces /\s\+$\| \+\ze\t/ 

..tryのcommentinであり(ライン214例を参照してください)それが問題を解決するかどうかを確認してください。

vimがタブを必要とするように設定されているか、スペースがないか(またはその逆) - 再度.vimrcが正しくセットアップされていることを確認しますソフト・タブを使用)

0

これらはスペースです。基本的に、mvimは、黒ではなく灰色で色分けすることで、ファイルに配置されているスペースを表示します。

個人的には、これは機能だと思います。このハイライトスキームを使用して、後ろにスペースがある場所を特定し、それを使ってコードをより綺麗に見せることができます。

ハイライトオプションを調整することで、表示されなくなる可能性があります。

関連する問題