18

時々、アルファベット全体を書く必要がありabcd…z、Vim の挿入モードで 1 文字ずつ入力するのが嫌いです。これをより効率的に行う方法はありますか?

カーソルがある文字のアスキー コードを表示するコマンドについては知ってgaいますが、1 から (たとえば) 5000 までの数字を入力する標準的なソリューションと組み合わせて使用​​する方法については何も知りません: a1ESCqqyyp^Aq4998@q…</p >

4

6 に答える 6

30

使用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
于 2013-08-07T17:32:16.630 に答える
14

シェルがブレース展開を行う場合、これは非常にエレガントなソリューションです。

:r !printf '\%s' {a..z}

:read!外部コマンドの出力を現在のバッファに読み込みます。この場合、シェルによって展開された後にprintf適用されたシェルの出力を読み取り{a..z}ます。

于 2013-08-07T18:13:12.477 に答える
7

このコマンドはどうですか:

:put =join(map(range(char2nr('a'),char2nr('z')),'nr2char(v:val)'),'')

aからまでの範囲の文字の ASCII 値を収集し、zそれらを関数にマップしてnr2char()、結果を で現在のバッファに挿入し:put =ます。

囲みを省略すると、それぞれ別の行に文字が表示されますjoin(,'')

見る

于 2013-08-07T17:28:12.087 に答える