回答:
モーションコマンドと組み合わせてgq
or gw
演算子を使用できます。デフォルトでは、fmt
プログラム(Linux)を使用して、指定されたテキストをフォーマットします。ただし、私の知る限り、行を正当化しないため、右マージンが不揃いになります。
私が使用する方法は、gwip
(通常モード)カーソルを段落に置くことです。これは、カーソルを同じ位置に保ちながら現在の段落をフォーマットします。この方法を使用して、現在の段落のみがフォーマットされるようにします。テキストファイルを編集する場合、ファイルの先頭でgwG
(通常モード)を発行すると、テキスト全体がフォーマットされます。良い習慣として、段落の間に少なくとも1つの空白行を残してください。
多くの設定を行うことができます。まず、ここではいくつかの関連助けます::h gq
、:h gw
、:h fo
(フォーマットオプション)、 :h fp
(フォーマットプログラム)、 :h fo-table
(可能なオプションの説明)。
'formatprg'
オプションを設定して使用することもできます。
このトピックには素晴らしいVimCastがあります。
http://vimcasts.org/episodes/formatting-text-with-par/
基本的に、インストールする必要がありますpar
:
$ brew install par
# or
$ sudo apt-get install par
そして、列を80列にラップする必要があるため:
:set formatprg=par\ -w80
これでgq
、他の回答(例gqip
)のように演算子を使用でき、Vimの組み込みフォーマッタの代わりにParを使用します。
Parは非常に高度であり、次のようにコメントを適切にフォーマットします。
/* This is a long */
/* multiline comment */
から:help usr_25
:
JUSTIFYING TEXT
Vim has no built-in way of justifying text. However, there is a neat macro
package that does the job. To use this package, execute the following
command:
:runtime macros/justify.vim
This Vim script file defines a new visual command "_j". To justify a block of
text, highlight the text in Visual mode and then execute "_j".
だから、あなたがしなければならないのは実行することです
:ru macros/justify.vim
次に
_j
ファイル全体のテキストを揃えます。
(もちろん、ru macros/justify.vim
毎回入力する必要がないように.vimrcに追加することもできます。)
注:これは改行を追加しません。これらを手動で追加する必要がありgq
ます。このためにtextwidth
は、(デフォルトは0)を希望する値に設定する必要があります
set textwidth=80
および-必要にt
応じて、-flagを設定してテキストを自動的に折り返す
set formatoptions+=t
必要に応じて、.vimrcでマッピングを設定して、すべてを実行できます。
nnoremap <C-j> gggqG_j
これはファイルの先頭(gg
)に移動し、すべての行を(gq
までG
)ラップしてから_j
、テキストを有効化します。
_j
マクロによって追加のマッピングは私のためにファイル全体を正当化すると思われる、またはそれは行指向視覚的な選択を制限することができます。
nanoのヘルプは^J
コマンドを「Justify」と呼びますが、実際にはテキストを正当化しませんが、画面の右マージン(または構成可能な列)の前の行を分割するテキストを再フォーマットします。
あなたは、変数を設定することにより、VIMで同じことを行うことができますtextwidth
から、:help 'textwidth'
:
挿入されるテキストの最大幅。この幅を得るために空白の後に長い行が分割されます。ゼロの値はこれを無効にします。
つまり、入力中に行がtextwidth
文字より長い場合、VIMは行の長さを≤以下に保つために最初のスペースで行を折り返しtextwidth
ます。
これが機能するには、オプションformatoptions
に文字が含まれている必要がありますt
。参照:help 'formatoptions'
して:help fo-table
、たとえば、あなたがに興味がある可能性があり、利用可能なオプションのためのc
コメントで仕事をフォーマットにするオプション。
編集:あなたは入れてなくても、同じ操作を行うことができますt
でformatoptions
コマンドを使用して、gw{motion}
それが現在のカーソル位置と後のカーソルの位置の間のテキストをフォーマットし、{motion}
。このgw
コマンドはビジュアルモードでも使用でき、選択したテキストをフォーマットします。
以下に2つの簡単なオプションを示します。
!fmt
!}fmt
これらは両方とも、テキストのブロックをunix fmt
に送信man fmt
します。オプションを参照してください。vimからオプション引数を渡すことができます。たとえば、50文字幅のブロックをフォーマットするには、と入力し!}fmt -w 50
ます。
:%!fmt
は、1つを入力して元に戻すことでファイル全体をフォーマットすることもできますu
。