14

他の人のプロジェクトに取り組みたいのですが、彼はインデントに 4 つのスペースを使用しています。私は 2 を使用していますが、私の画面は、4 つのスペースを快適に使用して編集するには十分な大きさではありません。

インデント用に 2 つのスペースを表示するように Vim を構成できますが、ファイルには 4 つを書き込みますか?

4

3 に答える 3

8

これは、ここで尋ねられたことの反対です。

はい、できます!「隠す」オプションがある場合は、これを試すことができます。

:syntax match spaces /  / conceal cchar= "Don't forget the space after cchar!
:set concealcursor=nvi
:set conceallevel=1

これらのコマンドの機能は次のとおりです。

  • スペース2個分の置換文字をスペース1個に設定
  • 通常モード、視覚モード、および挿入モードでは、カーソルの下のテキストを非表示にします
  • 1文字でテキストを隠すことを有効にする

とをに設定する必要がありますが、tabstop見た目感じのようです! ただし、ファイルを書き込むと、実際には.softtabstopshiftwidth424

隠蔽をオフにしたい場合は、次の 2 つのいずれかを行うことができます。

  1. 隠蔽ルールを削除:syntax clear spacesまたは
  2. 隠しテキストをカーソルの下で展開できるようにする:set concealcursor=
于 2012-12-19T03:45:14.277 に答える
4

ヘルプには、異なるタブ幅の同様の使用例の例があります。 を参照してください:help retab-example

それを半分/倍のスペースに適応させる:

:autocmd BufReadPost,BufWritePost  * %substitute/^\( \+\)\1/\1/e
:autocmd BufWritePre               * %substitute/^ \+/&&/e
于 2012-12-13T07:36:38.417 に答える
0

彼がタブの代わりに真のスペースを使用している場合 (そのように聞こえます)、いいえ、vim に 4 つのスペースがある場所に 2 つのスペースを表示させることはできません。ただし、次のコマンドを vim に指示して、すべての 4 つのスペース グループをタブ文字に置き換えることができます。 2 つのスペースとして表示します。

:set tabstop=4 ! display a tab as 4 columns
:set shiftwidth=4
:set noexpandtab
:gg=G   ! convert the whole file to tabs
:set tabstop=2 !display a tab as 2 columns
:set shiftwidth=2

作品を提出する準備ができたら、

:set tabstop=4
:set shiftwidth=4
:set expandtab
:%retab

元に戻す必要があります。

于 2012-12-12T22:17:08.113 に答える