4

私は「Bird」スタイルの識字率の高い Haskell を使用しています。これには、すべてのコードが次のようになっている必要があります。

> module Main (main) where

ブロックがある場合、次のようになります。

> main = do
>     args = getArgs
>     file = args!![0]

などしかし、gt記号を入力してからスペースを入力してタブを押すと、 2つのスペースしかタブになりません!

問題を解決するために、次のことを行いました。

set tabexpand
set tabstop=4
set softtabstop=4
set noautoindent
set shiftwidth=4

上記は基本的に、タブではなく4つのスペースを挿入するだけだと思いました。

4

3 に答える 3

1

set shiftwidth=4

'shiftwidth' 'sw'   number  (default 8)
            local to buffer
    Number of spaces to use for each step of (auto)indent.  
于 2011-08-07T02:29:21.110 に答える
1

これを解決する簡単な方法はわかりませんが、試すことができるいくつかの回避策があります (大まかな複雑さの順序で)。

  1. インデントを 2 つのスペースに設定し、タブを 2 回押す必要があります。

  2. すべてのタブストップとインデント規則/オプションを無視して、タブが挿入モードで無差別に 4 つのスペースを挿入するようにします。

    :imap <Tab> <Space><Space><Space><Space> 
    
  3. 任意のタブストップを設定できるパッチを適用した Vim を使用してください。Vim のパッチ ページに可変タブストップ パッチがあります。

  4. 独自のインデント アルゴリズムを記述します。これを行う方法の詳細:help indentexprについては、を参照してください。

于 2011-08-07T13:32:03.117 に答える
0

確かに、Vim はカーソルを次のタブストップがある列 4 に移動します。代わりに最初のタブストップを列 6 (または 2) に設定する方法があるかどうかはわかりません。

于 2011-08-07T12:54:57.960 に答える