21

長い間、私は~Vim で文字の大文字と小文字を切り替えることができることを知っていました。しかし、単語を大文字にして前の位置に戻るようにキーをマップする方法はありますか?

例えば:

I like to drink Coca co[l]

カーソルが「l」にあり、「c」も大文字にする必要があることに気付いた場合、現在、次のことを行う必要があります。

<C-c> b ~ ll i

単一のキーをマップして、カーソルの下の単語の最初の文字を大文字にし、カーソルを元の位置に保つ方法はありますか?

4

4 に答える 4

16
:nmap <whatever> m`b~``
于 2010-06-27T05:52:05.163 に答える
11

個人的には、これはまさに私がマクロを作成したくない種類のものです. .vimrcソリューションは標準の Vim コマンドの「ツールボックス」から非常に自然に流れるため、そのような 1 回限りのソリューションを何十個も用意する必要はありません。

長い単語を入力しています:

the gallicizatio|

(これ|はカーソルの位置です)。G突然、「Gallicization」の大文字を忘れていたことに気づきました。それで、バム! をESC押して (キーボードの Caps Lock キーにマッピングされているので、小指をフリックするだけで済みます)、続いてb~Aを押して、何も起こらなかったかのように入力を続けます。この誤りgは、Emacs ユーザーが右手を矢印キーに向けて動かし始めるのにかかる時間で大文字になっていました。

対照的に、しばらく使用していないマクロの場合、そのマクロに割り当てたキーを思い出すだけでも時間がかかるでしょう。より良い解決策は、重要な「コア」コマンドを非常によく学習することです。これらのコマンドは、単純なルールに従ってその場で組み合わせることができ、何百万もの可能な効果があります。

于 2012-08-10T21:23:51.750 に答える
3

私はこれを頻繁に行っており、条件に一致する複数のレコードを処理するために EX コマンド ラインを使用しています。この場合、次のような後方参照を使用します。

:%s/\(\w\)\(\w*\)/\U\1\L\2/g

そしてBOOM、特定の文脈にあるすべての単語で問題が解決されました。

編集:ここも見てください。同様の回答を持つこのリンクがあることに気付きました:

vim を使用して選択範囲内の各単語の最初の文字を大文字にする

于 2013-08-02T13:55:22.383 に答える
2

マクロも使える

q<register> <C-c> b ~ ll i q

そして、それ@<register>を使用する必要があるたびに行います。

于 2010-06-27T05:54:21.323 に答える