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


27

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

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

回答:


29

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


5
そして、zbとztはそれぞれ画面の下部と上部に移動します
ジャニハルティカイネン

11
  • 上/下矢印を使用して1行移動できます
  • 数字を入力してから、上/下矢印を使用してその数の行を上下に移動できます
  • g文書の最初の行への小さなジャンプ
  • 大文字Gはドキュメントの最後の行にジャンプします

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

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

また:

  • /+ string + (Enter)カーソルからドキュメントの最後までのstringの次の出現を検索します
  • ? -同じことを行いますが、カーソルから文書の先頭に向かって逆方向に移動します


6

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

/検索文字列

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

また、Ctrl-FおよびCtrl-Bを使用してスクロールし、コードをすばやくページ移動します。しかし、私は検索トリックを最も頻繁に使用します。nとNを使用して検索結果を表示すると、迷子になることがあります。Ctrl-Gを使用すると、Vim画面の下部に次のように表示されます。

「script.pl」行219の328 --66%-列19-23


<CTRL> -Fと<CTRL> -Bの+1。ただし、私は「チート」する傾向があり、ほとんど同じ頻度で<PgUp>と<PgDown>を使用します。
テクノロジー

4

try::he motion.txtおよび:he up-down-motions

上下に可能なモーションのリストがあります


3

また、発行することにより、文書内の特定の行へのジャンプを行うことができますNGGNあなたがジャンプしたい行番号です。


1
もしかしてNG...
ピーター

1
Nggもを使用しています(両方のバリアントが機能します)
-soulmerge

1
同様に:N
-viraptor

3

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

職場でのEasymotionプラグイン


easymotionは本当に良いのですが、カーソルの上の部分で動作させる理由がわかりません。カーソルの下にあるもののみが強調表示されます。
nXqd

2

前述のように、H、M、L(高、中、低など)小文字hjklは、左、下、上、右の典型的なコンソールゲームコマンドであり、viで同じように動作します(有効にするとGmailで動作します)キーコマンド)


1

<Ctrl>+D -ダウン

<Ctrl>+U -アップ


これはページの半分のスクロールです。フルページスクロール用の<c-f><c-b>
Al.G.

1

通常の垂直方向の動きに加えて、https://stackoverflow.com/questions/4946421/vim-moving-with-hjkl-in-long-lines-screen-linesの修正版を使用します。私は通常、hjklではなく矢印キーで移動します(Vimを見つけるまでは他のエディターの長年のユーザーでしたが、Vimを5年以上使用した後でも、矢印/ホーム/エンド/ 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キーを押したままにすると、視覚的に行の開始/終了または表示行の上下に移動できます。私にとっては、これは少なくとも代替よりも効率的です。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.