2013-08-07 3 views
9

アルファベットの全文を書く必要がある場合があります.を書く必要があり、Vimの挿入モードで手紙で入力するのは嫌です。より効率的にこれを行う方法はありますか?Vimに全アルファベットを書く

カーソルがある文字のASCIIコードを私に与えるgaコマンドについて知っていますが、それを私の標準的な解決方法と混ぜ合わせて1から(例えば)5000までの数字を入力する方法について何も知らない:a1ESCqqyyp^[email protected] ...

このコマンドについてどのように
+5

...または、ハイテクに行く:inoreab abc abcdefghijklmnopqrstuvwxyz': – glts

+0

アルファベット全体をよく入力する必要がある場合は、省略形を使用してください。プログラマチックなやり方を覚えておかなければならず、呼び出す方がはるかに簡単です。 –

答えて

14

ia<Esc>  " Start with 'a' 
qqylp<C-a>q " @q will duplicate the last character and increment it 
[email protected]   " Append c..z 
+0

nrformatsについてよく分かりませんでした。ありがとう。 –

+0

もしあなたが 'nrformats'についてここに投稿しなかったなら、そのオプションは間違いなく私が最後に知っているだろう!あなたはそれを認識しているために、このオプションをどのように使用しましたか? – user1146332

+0

これを使用する必要はありません。私は[':help options'](http://vimdoc.sourceforge.net/htmldoc/options.html)を読んでその存在を知るだけです。 –

5

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

が、その後nr2char()機能の上にそれらをマッピングし、現在のバッファに結果を挿入し、aからzの範囲内の文字のASCII値を収集:put =である。

囲いを外すと、join( ... ,'')という文字が別々の行に表示されます。

9

をあなたのシェル拡張を引き締めなければ、これはかなりエレガントなソリューションです:

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

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

0

Vim abbreviationsまたはUltiSnipsのような本格的なスニペットマネージャープラグインを試してみてください。設定にはしばらく時間がかかるかもしれませんし、もう一度そのアルファベットを省略形またはスニペットとして定義する必要がありますが、アルファベットやその他の一般的なテキストを挿入することができますはるかに簡単です。

関連する問題