私は vim を使用して C コードを書いており、コメントがすべて列 80 で終わるように右揃えにする方法を探しています。簡単な例を挙げると、次のようになります。
int a = 80; /* initialize a */
int b = 7; /* initialize b */
printf("%d + %d = %d", a, b, a+b); /*calculate the result */
に変わるべき
int a = 80; /* initialize a */
int b = 7; /* initialize b */
printf("%d + %d = %d", a, b, a+b); /*calculate the result */
^col 80
他の書式設定を行うためにインストールしましたvim-easy-align
が、この配置を実行する方法がまだわかりません。誰か方法がわかるでしょうか?
私は にこだわっていませんvim-easy-align
。同じ機能を果たす別のプラグインをお持ちの場合は、ぜひ教えてください ;)。
答え1
プラグインを使用せずに、単純な vim コマンドでこれを行う方法は次のとおりです。
通常モードでは、コメント区切り文字など、右揃えにする文字列の最初の文字にカーソルを置き、 を押してleaderテキストtabを右揃えにします。
nnoremap <leader><tab> mc80A <esc>080lDgelD`cP
説明付き:
mc80A <esc>080lDgelD`cP
| | | || ||
mc| | || || Mark the position of the cursor
| | || ||
80A <esc>| || || Append 80 spaces at the end
| || ||
080l|| || Go the the 80th column from the beginning of the line
|| ||
D| || Delete what is next
| ||
gel|| goes after the last string char
||
D| Delete the characters remaining (complement to go 80)
|
`cP and paste these to shift the string up to 80 column.
複数のコメントをマークするには、コメント区切り文字の次の出現を検索して、leadertabnleadertabnleadertabn...を押します。
答え2
私のAlignFromCursorプラグイン<Leader>ri
は、それを実行するマッピングとコマンドを提供します:RightAlignFromCursor
。コメントの前の空白部分にカーソルを置き (手動またはコマンド経由:[range]normal
)、マッピングまたはコマンドを呼び出します。'textwidth'
またはプレフィックスの付いた を使用します[count]
。