640 行目で、671 行目で次のことに注意してください。
if (jumps_over(quick_fox[brown],the_lazy_dog)) the_lazy_dog.bark();
「樹皮」に移動するための最も重要な効率的な方法は何ですか?
640 行目で、671 行目で次のことに注意してください。
if (jumps_over(quick_fox[brown],the_lazy_dog)) the_lazy_dog.bark();
「樹皮」に移動するための最も重要な効率的な方法は何ですか?
これは Vim に関する一般的な誤解です。Vim は効率的に設計されていません。
Vim は、目的を達成するために、反復可能な、しばしば複雑な組み合わせで小さなビルディング ブロックを使用するように設計されています。これは本質的に効率的なプロセスではありませんが、複雑なタスクのサブセットには役立ちます。たとえば、[モーション][マクロ]、または [カウント][コマンド] は、チェーンで結合された小さなビルディング ブロックです。画面をクリックするのが最も効率的な動きですが、何千回も行う必要がある大規模なテキスト操作タスクのサブセットでは役に立たない場合があります。
私が覚えている限り、私が通常使用するすべての方法を以下に示します。これらの方法のどれもが、運動や私の認知処理能力を効率的に使用していないことがわかります。(IDE は、以下にリストされているすべての作業を取り除くことによって効率的に処理を行います)。
f.lクイックスキャンでそれがユニークなキャラクターであることが示されるので、私が個人的に使用する回線に接続したら . またはT.、それを過ぎた場合。複数ある場合は.、;到達するまで検索を繰り返します。または、マッシュwまたはW私が近づくまで、句読点が含まれている場合に小文字wがどこに移動するかを推測しようとすることは、Vim では基本的に不可能であるためです。
持っている場合:set relativenumber
は、それが何行離れているかを確認できます。 njを入力してそこに移動し、次に入力f.してその隣にジャンプします
持っている場合:set number
は、入力できます(行番号がわかっているため)671G(または:671Enter)f.
その行をマークした場合、次の行または正確な文字にmaジャンプできると言います(しかし、ほとんどのキーボードは到達するのに役に立ちません:(ジャンプ。'a`a`
EasyMotionがインストールされている場合は、入力してその場所に直接leaderleaderfbsubcharジャンプできます
@kev が提案するように検索し、それnNを取得するまでバウンスするために使用できます。bark
が一般的だthe_lazy_dog
がユニークな場合は( /dog.b/e
Entere はマッチの最後にカーソルを置きます)、Vim の神々に、検索がその行にのみ一致するように十分に具体的であることを祈ることができます。それはもっと楽しい推測ゲームです。
画面上の線の位置に応じて、 (n offset)HまたはM( Lhigh middle low) を使用して線に近づき、jkそこで一度使用することができます。
または、行の上下に空の行がある場合は、スーパーハンディを入力する{か}、近くにジャンプするのを助けることができます.
または、トラックパッドが近くにあるラップトップを使用している場合は、マウスを使用できます + in gvim 。私はおそらくそれを決してしないでしょうが、私はそれについて真剣です. 一人称シューティングゲームを十分にプレイしたことがあるなら、人差し指はどのキーボード ショートカットよりも正確で速いかもしれません ;)
Vim のクレイジーなキーボード パワーにもかかわらず、非常に具体的なジャンプなど、何かを実行するための直接的または適切な方法が常にあるとは限りません。動き回り、仕事に適したものを使用するのに役立つトリックのバッグを維持し、継続的に構築する必要があります。私は上記のすべてをかなり均等かつ頻繁に使用します (私は を使用しますrelativenumber
)。EasyMotion は非常に便利ですが、1 つのコマンドを実行するのに 5 回のキーストロークは非常に扱いにくく、入力ミスが発生しやすい点が異なります。
したがって、私の謙虚な数年間の Vim の経験では、それを行う良い方法はないと思いますが、まともな方法に組み合わせることができる平凡な方法はたくさんあります。
を押し/barkEnterます。(多分n必要です)
(テキストの形によって異なります。情報がなければ、最善の方法を提供することはできません。)
相対行番号をオンにする31j
と、非常に自然な動きになります。これにより、必要な回線にアクセスできます。
次に、あなたがなりたい場所に近いラインにユニークなキャラクターを探します. この場合.
はユニークで樹皮の直前です。だから、f.
。その後l
、あなたは良いです。
したがって、合計: 31jf.l
.
(これは常にどのように機能するとは限りません。行にジャンプすると、同じようにすぐに使用できる場合もあります。最初/bark
に使用して、行に何度も使用する方が速い場合もあります。Vim はツールとコードを提供します。常に異なります。)/bark
n
Kev の答えbark
は、珍しい単語であると想定して機能します。nかなりの回数ヒットする可能性があります。
私は一緒に行きます
671Gラインにジャンプするには、
$行末にジャンプし、
2bカーソルを b にドロップします。
編集:アンディの答えを読んで、私は本当にこれに同意する必要があります:
VIM のクレイジーなキーボード パワーにもかかわらず、非常に具体的なジャンプなど、何かを行うための直接的または適切な方法が常にあるとは限りません。
9j9 行下に移動するなど、おおよその手順でナビゲートすることを選択します。反射的にこれを行うと、行番号や文字位置を読み取るよりもはるかに高速にナビゲートできます。それはより多くのキーストロークになるかもしれませんが、私は余分な速度を好みます.
n@Kev の提案を使用してヒットの可能性を高める (つまり、ヒットする可能性を減らす) 場合は、正規表現を変更してより多くのテキストを含め、そこからカーソルをオフセットします。例えば:
/dog\.bark/e-3
実際のところ、最も効率的な方法はマウスを使うことだとは言いたくないのですが、
コマンドラインを使用する別の方法: /.*dog\&.*bark
これにより、/bark と比較して頻度が減少します (および多くの n が含まれる可能性があります)。