vim + OS Xで行の先頭または末尾にジャンプする方法


17

ターミナルでは、shift + homeキーとshift + endキーを押すことでこれを実行できますが、vimでは機能しないようです。ホームキーと終了キーは、ターミナルウィンドウのみをスクロールします。編集モードでジャンプしたいです。


4
:コマンド・モードでは、Vimのチートシート(0および$)で見つけることができますfprintf.net/vimCheatSheet.html。ただし、編集モードについては知りません。
グヌーピ

回答:


13

この回答は、ターミナルウィンドウでvimを使用していることを前提としています。

HomeEndのデフォルトのバインディングは、通常のTERM設定(xtermバリアント)に基づいてプログラムが期待するものとは少し異なります。デフォルトのバインディングに固執したい場合(そしてTerminalで Shiftedバリアントを使用する必要がある場合)、次のようなものをに入れてみてください.vimrc

:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>

そうでない場合は、HomeEndを使用するときにターミナルが送信するコードを調整してみてください(必要に応じて、シフトされません)。検索は、おそらくそれを行う方法を説明する場所を見つけるでしょう(ここに1つあります)。基本的な考え方は、ターミナル送信するようにすることであるESCを 1〜代わりに[ ESC [用H ホームESC [4〜の代わりに、ESC [用F 終了あなたがホームを維持したい場合(またはShiftキーを押しながらホーム/シフトエンド/スクロールバックにアクセスするための終了)。プロセスをより詳細に説明しますが、10.4しかなく、10.5以降でターミナルが大きく変更されたことを知っています。


8

iTermとVim では、挿入モードでfn +右矢印と左矢印を使用して、行の先頭または末尾にジャンプできます。Terminal.appでは、shift + arrowsを使用します。



1

Chris answerに加えて、次のOption+arrow4行を追加するだけで、ワードナビゲーション(キーを使用)も実現できます。

:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el

これoは小文字であるinsertため、操作のモードが終了しないことに注意してください。O同じ効果を得るために、元の回答の大文字を変更することもできます。


0

MacVimでは、コマンド「左矢印」とコマンド「右矢印」を使用して、編集モードで行の先頭と末尾に移動できます。


JtRのようなサウンドは、MacVimを使用する代わりにTerminal.app内でvimを使用しています(私も強くお勧めしますし、個人的にも使用します)。
マトリックスモール

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