web-dev-qa-db-ja.com

VIM超高速ナビゲーション

他のエディタを使用することで私が見逃している唯一のことは、マウスで自分の場所を見つけることです。ファイルの特定の領域を目で見て、マウスを動かしてクリックすると、そこにいます。 VIM私はjjjjjkkkkkkjjjjhhhhをしなければなりません...ほぼそこにあります。

私はマークをすることを学んでおり、素晴らしいブックマークプラグインを見つけました。マーカーを作成し、<f3>そして、残念ながらファイルに移動すると、ファイルを閉じるときにマークが忘れられます。

すべてのファイルをどのようにスーパーナビゲートしますか? 5j7k4j5hなどもできることはわかっていますが、目を読み取って本当に必要な場所にカーソルを置くことができるプラグインが必要です。

また、/%を使用して特定の用語を検索することも学びました。これは役立ちますが、一致するすべての文字がドキュメント全体で強調表示されます。

82
Helmut Granda

$ vimtutorを試してください。開始するために知っておく必要のあるすべてのことを教えてくれます。

hjklは氷山の頂点の先端であり、少なくとも私の場合はほとんど使用されません。

wWEeおよびBbgegEはすべて、Wordごとに移動できます。

  • weは前進し、WEは空白と句読点を考慮に入れます

    " here the * marks the default location of the cursor
    " and each letter shows where you jump when you hit the key.
    
    Latin: Lorem ipsum dolor sit amet.
                       *   e   e    e
                       *   E   E     E
    *    w w     w     w     w   w   w
    *      W     W     W     W   W   W
    
  • bgeは後方に移動し、BgEは空白と句読点を考慮に入れます

    Latin: Lorem ipsum dolor sit amet.
    b    b b     b     *
    B      B     B     *
         ge    ge    ge*
        ge
         gE    gE    gE*
    

fFtTは特定の文字に到達するために使用されます現在の行で;,;と同じ方向で、そしてその動きを繰り返すために使用されます,の反対方向:

  • fmは次のm前方にジャンプし、Fは後方に移動します

    Latin: Lorem ipsum dolor sit amet.
    *          fm    ;            ;
               ;     Fm          *
    
  • tmは次のmの前にジャンプし、Tは後ろに移動します

    Latin: Lorem ipsum dolor sit amet.
    *         tm    ;            ;
              ;     Tm           *
    

/?は、現在のカーソル位置から最初に出現するパターンにジャンプするために使用されます。

  • /patternは前進します

    Latin: Lorem ipsum dolor sit amet.
    *            /ips
    
  • ?patternは後方に移動します

    Latin: Lorem ipsum dolor sit amet.
    ?Lat             *
    

0$は、行の最初と最後の文字にジャンプするために使用されます。

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
    0                  *                                     $

^g_は、行の最初と最後の印刷可能文字にジャンプするために使用されます。

    (whitespace)Latin: Lorem ipsum dolor sit amet.(whitespace)
                ^      *                         g_

単一および結合()[]{}は、フレーズごと、または段落ごと、段落ごと、またはコードブロックごとのコードブロックの移動に使用されます。

<C-b>および<C-f>は、画面を前後にスクロールするために使用されます。

<C-u>および<C-d>は、半画面ずつ前後にスクロールするために使用されます。

HM、およびLは、それぞれビューポートの上部、中央、下部にカーソルを移動します。

ztzzおよびzbは、それぞれカーソルの下の行をビューポートの上部、中央、下部に移動します。

等々。

:help motion.txtはあなたの心を吹き飛ばします。

150
romainl

vimのモーションコマンドに加えて、 EasyMotion という名前のvimプラグインがナビゲートするのに非常に便利であることがわかります。 here はアニメーションデモ、 here はビデオチュートリアルです。お役に立てば幸いです。

23
Vincent

Vim内を移動するには無数の方法がありますが、これは本当に強力な分野の1つです。私が使う { そして } その方向の次の空白行に上下に移動します。 % (あらゆる種類の)一致するブラケットに行き来するのに便利です。 W そして B 「単語」で前後に移動します。

Vimマニュアルの Moving around セクションを確認する価値があるかもしれません。

18
Greg Hewgill

vimはマウスをサポートしています!これを試してください(.vimrcで):

set mouse=a

サイドノート:スクリーンユーザーとして、私も必要なことがわかりました

set ttymouse=xterm2

これが機能するために。

10
rgcb

個人的に私は使用することを好む:

"/<chars><enter>" to quickly move to somewhere   ( extremely fast! trust me! )
":<number>" to go to some line, 
"ctrl + f/b" to forward/back
"g;" to move to the last editing place.
"w/b" to move by Word
"jklh" to move your cursor to the exact position

オプションrelativenumber:help relativenumber-Vim 7.3に付属 )を使用すると、_[count]kまたは[count]j移動。@ romainlで説明されているように、ftwebのような移動で現在の行に移動できます。

5
mMontu

{}()<number>cb<number>cB<number>cW、および%を除く私はそのようなナビゲーション技術を使用します:

  • ciwdiwciWdiW)。カーソルの下のWord(スペース以外の文字を含む)をすばやく編集/削除します。
  • ci(ci"ca(ca")など。括弧、引用符(括弧、引用符を含む)内をすばやく編集します。 dにも同じことが当てはまります。
  • 大文字でマークし、グローバル(ファイル間)および永続的(バッファーが閉じている場合)に設定します。たとえば、mAは、'Aコマンド(または列を尊重する場合は`A)で使用できるグローバルマークAを作成します。
  • gfはカーソルの下のファイルにすばやく移動します
  • ftFT)で、charの右側(左)の前に移動します(;を使用して繰り返します) )。これらはdおよびcコマンドに特に役立ちます(.を使用して繰り返します)。
  • ^]でタグに移動し、^Tで元に戻ります。

そして、他の多くの移動方法:)

詳細については、こちらをご覧ください: http://www.thegeekstuff.com/2009/03/8-essential-vim-editor-navigation-fundamentals/

追伸Railsユーザーには非常に便利なRails-vimプラグインがあります。これもチェックしてください。

5
penkovsky

this は、主要なナビゲーションコマンドを学ぶのに適した場所です。vimのパワー/速度の一部は、動きとアクションの組み合わせに由来します。つまり、cw-> Change Word、d10j-> 10行下などを削除します。また、 this および this は興味深い読み取りです。

3
T I

あなたはできる :set nohlsearch検索文字のハイライトをオフにします。

私もctagsを使用してナビゲートします。

2
richo

超高速ナビゲーションを念頭に置いてプラグインを作成しました。これはムーブレスと呼ばれます。

https://github.com/anschnapp/move-less

hjkl- keys)でスクロールして、ホールファイルを快適に検索できます。ホールサイトをスクロールしている間、カーソルの位置を変更しません(折りたたみトリックに基づきます)。検索を中止した場合は、開始した場所だけです。

超高速ナビゲーションの目的は、プラグインを使用して画面上の目標位置を取得し、easymotionを介して正しい位置にジャンプすることです(既に別の回答から推奨されています)。

https://github.com/easymotion/vim-easymotion

両方を組み合わせると、ジャンプ履歴を進めることができ、<c-o>および<c-i>

0
snap