時々、アルファベット全体を書く必要がありabcd…z、Vim の挿入モードで 1 文字ずつ入力するのが嫌いです。これをより効率的に行う方法はありますか?
カーソルがある文字のアスキー コードを表示するコマンドについては知ってgaいますが、1 から (たとえば) 5000 までの数字を入力する標準的なソリューションと組み合わせて使用する方法については何も知りません: a1ESCqqyyp^Aq4998@q…</p >
使用set nrformats+=alpha:
ia<Esc>qqylp<C-a>q24@q
ステップバイステップ:
ia<Esc> " Start with 'a'
qqylp<C-a>q " @q will duplicate the last character and increment it
24@q " Append c..z
シェルがブレース展開を行う場合、これは非常にエレガントなソリューションです。
:r !printf '\%s' {a..z}
:read!外部コマンドの出力を現在のバッファに読み込みます。この場合、シェルによって展開された後にprintf適用されたシェルの出力を読み取り{a..z}ます。
このコマンドはどうですか:
:put =join(map(range(char2nr('a'),char2nr('z')),'nr2char(v:val)'),'')
aからまでの範囲の文字の ASCII 値を収集し、zそれらを関数にマップしてnr2char()、結果を で現在のバッファに挿入し:put =ます。
囲みを省略すると、それぞれ別の行に文字が表示されますjoin(。,'')
見る
:h nr2char()、:h char2nr()、:h :put、range()テーブルで、map()、join()および友人を検索しlist-functionsます。