8

現在、私はVIMを学習しようとしており、すべてのモードで矢印キーを無効にしています。新しい関数を入力するときは、忘れないようにかっこを同時に開いたり閉じたりしていました。戻ることができない(矢印キーがない)ので、一度閉じると括弧の外にいるので、VIMでどのように行われるのか疑問に思いました。

INSERTモードを終了し、括弧に移動して、再びINSERTモードに入るのが標準的な方法ですか?それとも、終了するまで括弧を開いたままにしますか?

AutoCloseスクリプトについて知っています。この質問は、VIMのやり方を理解するのに役立つので、他の開発者がこの問題をどのように克服しているかを知りたいと思います。

4

6 に答える 6

7

閉じ括弧を忘れると、後で強調表示の問題が発生し、さらに見落とす可能性が低くなります。

入力しているときに括弧の真ん中に引数を入力する習慣を身に付け、引数が終わったら括弧を閉じることをお勧めします。(とにかく、学習しようとしている場合vim、この変更は適応するには大きすぎるようには見えません。適応しなければならない他のことの量は、すでにかなり驚異的です。)

于 2012-06-12T01:45:07.170 に答える
3

Vimのモーダルな性質の背後にある考え方は、ほとんどの時間を挿入モードではなく通常モードで過ごすことです。テキストを挿入する場合にのみ挿入モードに入り、生のテキストを挿入しないことを実行する場合は常に通常モードに戻ります。

とにかく、何らかの理由で挿入モードを終了したくない場合は、を押しCTRL+oて単一の通常モードコマンドを実行できます。しかし、私はモード間をジャンプすることに慣れることをお勧めします-モードの切り替えはVimユーザーにとって第二の性質であるはずです。

于 2012-06-12T01:49:36.500 に答える
2

質問:INSERTモードを終了し、括弧に移動して、再びINSERTモードに入るのは標準的な方法ですか?それとも、終了するまで括弧を開いたままにしますか?

回答:関数の引数を入力してから、閉じ括弧を入力する方が一般的です。ただし、はい、すでに入力していて)、文字を戻したいと思った場合は、Escapeキーを押しiてから、現在の位置の前に挿入するために押すだけです。これはたった2回のキーストロークであり、経験豊富なviユーザーはEscapeキーを押すことにかなり慣れています。

実際に入力した場合);は、Escapeキーを押してから、を押す必要がありhますi。あなたがそれをたくさんするならば、あなたはそれに慣れるでしょう。

キーのいくつかの組み合わせは、第二の性質になります。たとえば、viで2つの文字を転置するには、、を押しxてカーソルの下の文字を削除し、カーソルを次の文字の上に置きます。次にp、カーソル位置の後にその文字を貼り付けます。xp私は人生で十分な回数入力したので、それについても考えていません...私の指はそれらのキーがどこにあるかを知っているだけです。「ああ、それらのキャラクターを交換する必要がある」と思うと、指がバタンと閉まりxpます。

于 2012-06-12T01:55:02.370 に答える
2

まず、コマンドモードで%は、対応する括弧、中括弧、または角かっこに移動します。

あなたの質問に答えるには:はい、すぐに括弧、中かっこ、角かっこなどを閉じた人は、おそらくコマンドモードを終了し、挿入モードに戻って編集に戻ります。

私にとって、これは私が気付くことさえありません。すぐに同じになります。

新しいifステートメントを開始するときはいつでも、すぐに中括弧を開いたり閉じたりします。閉じ中括弧を追加した後、ESCO押して閉じ中括弧(またはESCki)の上の行を開きます。その後、もう一度入力を開始します。

これは、不便や問題として私を襲うことは決してありません。これはすべて、すぐにあなたにとって第二の性質になるでしょう...

また、これらの矢印キーについては、これ以上長く考えることはありません...h戻るために使用するだけです(またはもっと良いもの)。

于 2012-06-12T01:59:03.333 に答える
1

1つのオプションは、キーマップを使用して開き角かっこ/括弧にジャンプすることです。私はブラケット/括弧をすぐに閉じて、バランスが取れていることを確認する傾向があります(ただし、vimは、それが発生した場合に見逃したことを怒って知らせてくれます-習慣の力)。このマッピングをvimrcにスローします:

imap <C-S-h> <esc> :call search("[{[(]", "bes")<CR> i

コマンドの内訳は次のとおりです。

  • 編集モードでマップ<CTRL-SHIFT-h>する
  • <ESC>(通常モードに戻るため)、
  • :call search("[({[]", "bes")<CR>開いた角かっこ/括弧を逆方向に検索してジャンプし、最後に
  • i挿入モードに戻る

したがって、と入力foo();<CTRL-SHIFT-h>てから、括弧に戻って引数を指定できます。

やや関連性があります: vim-surroundプラグインを調べると、コツをつかめば生産性が向上します!

于 2017-08-02T16:19:47.400 に答える
0

矢印キーの使用を停止する必要はまったくありません。それはばかげた考えです。

hjklタイプをタッチした場合にのみ、矢印キーよりも「優れています」 。これは、ホーム行にあるためです。タイプに触れない場合、あなたの手はすでに多くの動きを自然に行っており、矢印キーに手を伸ばすのは残りの部分と同じです。タイプに触れない場合、ホームローはありません。

ただし、あなたの問題は実際にはhjkl対矢印の問題ではありません。これを解決するには、開き括弧、引数、閉じ括弧の順に入力するか、「自動閉じ」メカニズムを使用します。

この行をあなたの:に追加することによって、あなたはそれを素朴な方法で行うことができます~/.vimrc

inoremap ( ()<C-o>h

または、利用可能な多くのプラグインの1つを使用します

于 2012-06-12T05:39:01.067 に答える