挿入モードでの動作を=
マッピングします。
次のコードは、現在のカーソル位置から 24 列目までスペースを追加し、その後に等号を追加します。カーソル位置の後に文字がある場合 (単語の途中と仮定)、それらの文字は列 25 の後に移動されます。それをvimrc
ファイルに追加して試してください。
"" If length of the line is more or equal to 24, add an equal sign at the end.
"" Otherwise insert spaces from current position of cursor until column 24
"" and an equal sign, moving characters after it.
function My_align()
let line_len = strlen( getline('.') )
if line_len >= 24
s/$/=/
return
endif
let col_pos = col('.')
exe 's/\%#\(.\|$\)/\=submatch(1) . printf( "%' . (24 - col_pos) . 's%s", " ", "=" )/'
endfunction
inoremap = <Esc>:call My_align()<CR>A
2 番目のステップでは、複数の繰り返しコマンドを使用し、等号を確認して、その直前の列 25 までスペースを挿入します。等号が実行前に 25 列目以降にある場合は機能しませんが、アイデアは得られます。
:g/=/exe 's/=/\=printf( "%' . ( 24 - stridx( getline('.'), "=" ) ) . 's", " " ) . submatch(0)/'