1

コードハードラッピング。80列のコメントの長い行を自動的に(入力時に)ハードラップするようにVimを構成しました。うまく機能します。ただし、コードを自動的にラップするようには見えません。set formatoptions+=t(現在私が持っている)追加set formatoptions=c,r,q,a,nでうまくいくと思いましたが、そうではありません。\さらに、Vim Scriptでは、ハードラッピングのために行の継続が必要な場合に、Vimが自動的に円記号を付けることができれば素晴らしいと思います。では、コードやそのような高度な機能のハードラッピングを実現する方法はありますか?

高度なインデント/配置。私は使用するのが好きですgg=G-私はそれを書き込みファイルへのプリフックとしても添付しました。cindent有効にしました。さてindentexpr、Vim Scriptコードで次のことを実現するために、他の変数を記述したり、微調整したりすることは可能でしょうか。たとえば、次のようになります。

" Before gg=G
let g:SuperTabNoCompleteAfter = ['^', '\s', ',', '(', ')', '[', ']', '{',
  \'}', '<', '>', '''', '"']

" After gg=G
let g:SuperTabNoCompleteAfter = ['^', '\s', ',', '(', ')', '[', ']', '{',
                                \'}', '<', '>', '''', '"']

次の内容でvim.vimファイルを追加しようとしました。~/.vim/after/ftplugin/

setlocal indentexpr=IndentExpression()

fun IndentExpression()
  let indent = cindent(v:lnum)
  let match = matchstr(getline(v:lnum - 1), '^\s*\S\+\s\+\S\+\s*=\s*\[\ze.*$')

  if !empty(match)
    let indent = len(match)
  endif

  return indent
endf

しかし、私は運が悪かった。

4

1 に答える 1

1

について'formatoptions':あなたがaそこにいるとき、必要はありませんt; 前者は入力時に自動的に折り返されるため、テキスト幅に達したとき (後者はそうです) に改行が発生します。問題の原因は ですc。これにより、自動フォーマットがコメントに制限されるためです。Cp。:help fo-table:

段落の自動書式設定。テキストが挿入または削除されるたびに、段落が再フォーマットされます。|auto-format|を参照してください。「c」フラグが存在する場合、これは認識されたコメントに対してのみ発生します。

だから、:set fo-=cトリックを行う必要があります。

于 2012-12-08T20:11:42.183 に答える