2

私はtextmateを使用して1年以上ルビーコードを操作しました。最近、mvimの使用に切り替えました。mvimでいくつかのファイルを開くと、空のブロックが表示されます。この写真を見て、その感触をつかんでください。

それらを取り除く方法について何かアイデアはありますか?

ありがとう

4

5 に答える 5

9

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

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

行末スペースをクリーンアップするには(カオスで言及されているように)、次のようなものを使用します。

:%s/ \+//

おそらく最も便利なもの:タブを片付ける:

インデントにスペースを使用している場合:

:set expandtab
:retab

タブを使用している場合:

:set noexpandtab
:retab!

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

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

最後の行を。というコマンドにマップしてい:RetabIndentsます。tabstopこれらはすべて、設定が正しいことを前提としています(set ts=2写真に基づいて設定する必要があります)。shiftwidth個人的には、と等しくするtabstopこともお勧めしset ts=2 sw=2ます。

簡単な方法(ファイル全体を自動インデントする)で解決できる場合もあります。gg=Gただし、これは一部の言語では機能しません(特に、どの行をどのレベルにインデントする必要があるかをエディターが知る方法がないため、Python)。

検索ベースの強調表示を一時的にオフにするには:

:noh

または永続的に(これを.vimrcに入れてください):

:set nohlsearch

または、使用した後でもう必要ない場合の簡単なショートカット:

:nnoremap <ESC> :noh<CR><ESC>

インデント強調表示をオフにするには、使用されている強調表示グループを特定する必要があります。これは少し複雑で、.vimrcを読み取るのがおそらく最も簡単ですが、本当に検索したい場合は、カーソルを次のいずれかに移動します。ハイライトされた文字を入力して入力します(ここから取得):

: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'
于 2009-07-06T15:12:11.083 に答える
3

冗長な空白を強調表示しているように見えます(たとえば、214行目を参照)。

.vimrcの線に沿って何かありますか。

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

..コメントアウトしてみて、これで問題が解決するかどうかを確認してください

インデントを強調している理由は、vimがタブを期待するように構成されており、スペースがない(またはその逆)ためだと思います-もう一度、.vimrc正しく設定されていることを確認してください(たとえば、ソフトタブを使用して)

于 2009-07-06T14:31:22.180 に答える
2

行の先頭のスペースを強調表示する検索パターンが保存されているようです/^ +。強調表示の色は明るい灰色です。

それを取り除くには、他の何かを検索してみてください:/asdf<ENTER>

于 2009-07-06T14:19:15.553 に答える
1

行の終わりにあるぶら下がっているスペースを取り除きたい場合(正直なところ、それらは常に私を悩ませます)、このコマンドは指定されたファイルからそれらを取り除きます:

:%s/  *$//
于 2009-07-06T14:23:07.110 に答える
0

セスが言ったように、これらはスペースです。基本的に、mvimは、ファイルに配置されているスペースを黒ではなく灰色で表示します。

個人的には、これは機能だと思います。この強調表示スキームを使用して、末尾のスペースがある場所を特定し、コードをきれいに見せることができます。

ハイライトオプションを調整することで、おそらくそれをなくすことができます。

于 2009-07-06T14:32:21.603 に答える