web-dev-qa-db-ja.com

Vimで(効率的に)垂直方向に移動する

Vimの単語の特定の部分に(水平方向に)到達したいときは、w、b、f、またはt(何か)を押すだけです。これを垂直に行う良い方法はありますか?たとえば、現在いる行より下または上にある特定の単語または行の文字に到達したいとします。

PS:使用せずに:(行番号)

27
janoChen

HM、およびLは、それぞれカーソルを画面の上部、中央、下部に移動します。その後、zzを押して、カーソルが置かれている行の中央に画面を配置できます。

29
Alison R.
  • 上/下矢印を使用して1行移動できます
  • 数値を入力してから、上/下矢印を使用して、その数の行を上下に移動できます
  • small gはドキュメントの最初の行にジャンプします
  • 大文字Gはドキュメントの最後の行にジャンプします
  • 等.

他にも数え切れないほどのさまざまな方法がありますが、vimはこの点で非常に柔軟性があります。最初に基本的なコマンドのvimチートシートを入手してから、時間があれば、このテーマに関するvimのドキュメントを確認することをお勧めします。

1つのチートシートへのリンク: チートシート

また:

  • / +string+ (Enter)カーソルからドキュメントの最後まで文字列の次の出現を検索します
  • ?-同じことをしますが、カーソルからドキュメントの先頭に向かって後方に移動します
11
Bandi-T
  • {} 次の段落の最初/最後に移動します
  • () 文も同じ
  • ^$ 行の最初、最後の文字

クイックリファレンス/チートシートはこちら

9
PurplePilot

行きたいユニークな文字列を探して飛び回る。 Vimでは、次の方法でこれを行うことができます。

/検索文字列

私は通常、検索を入力したら、nとNを使用して前後にスクロールします。

また、Ctrl-FとCtrl-Bを使用してスクロールし、コードをすばやくページングします。しかし、私は検索トリックを最も頻繁に使用します。 nとNで検索結果を表示すると、迷子になることがあります。自分の向きを決めるのに適したコマンドはCtrl-Gです。これは、Vim画面の下部に次のようなものを出力します。

"script.pl" 328の219行目--66%-col 19-23

6
James Thompson

試してみてください:: he motion.txtおよび:heup-down-motions

それは上下に可能な動きの全リストを持っています

4
michael

Ngg を発行して、ドキュメント内の特定の行にジャンプすることもできます。ここで、Nはジャンプする行番号です。

3
mloskot

Lokaltogのeasymotionプラグインを試してみてください: http://www.vim.org/scripts/script.php?script_id=3526

Easymotion plugin at work

3
f3lix

前述のように、H、M、L(高、中、低)の小文字のhjklは、左、下、上、右の一般的なコンソールゲームコマンドであり、viでも同じように機能します(j、kを有効にすると、Gmailで機能します)キーコマンド)

2
schemathings

<Ctrl>+D-ダウン

<Ctrl>+U-アップ

1
sml

通常の垂直方向の動きに加えて、 https://stackoverflow.com/questions/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines の修正バージョンを使用します。私は通常、hjklではなく矢印キーを使用して移動します(Vimを見つける前に他のエディターを使用していたので、5年以上Vimを独占的に使用した後でも、arrows/Home/end/PgUp/PgDnに切り替えていました)。

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

Ctrlキーを押したままにすると、表示行の開始/終了または上下に視覚的に移動できます。私にとって、これは少なくとも他の方法よりも効率的です。

ほとんど忘れてしまいました。特にurxvtで機能するように.Xdefaultsを変更する必要がありましたが、それはおそらくトピック外の問題です(Googleでの回答があります)。

1