ターミナルでは、shift + homeとshift + endを押すことでこれを行うことができますが、vimでは機能しないようです。 HomeキーとEndキーは、ターミナルウィンドウのみをスクロールします。編集モードでジャンプしたいのですが。
この回答は、vimをTerminalウィンドウで使用していることを前提としています。
HomeおよびEndのデフォルトのバインディングは、プログラムが通常のTERM設定(つまり、xtermバリアント)に基づいて期待するものとは少し異なります。デフォルトのバインディングを使用したい場合(およびTerminalでシフトバリアントを使用する必要がある場合)、.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>
それ以外の場合は、HomeおよびEndを使用するときにTerminalが送信するコードを調整してみてください(必要に応じてシフトされません) )。検索すると、その方法を説明する場所が表示されます( ここに1つあります )。基本的な考え方は、ターミナルに[〜#〜] esc [〜#〜][1〜ではなく[〜#〜を送信させることです。 ] esc [〜#〜][H for Home and[〜#〜] esc [〜#〜][4〜代わりに[〜#〜] esc [〜#〜][F for End(または、Shift-Home/Shift-Endスクロールバックにアクセスするためのホーム/エンド)。プロセスについて詳しく説明しますが、10.4しかありません。10.5以降でターミナルが大幅に変更されたことを知っています。
ITermとVimでは、挿入モードでfn +右矢印と左矢印を使用して、行の先頭または末尾にジャンプできます。 Terminal.appではshift + arrowsを使用します。
行の最初と最後に移動するには、0と$を使用します。このサイトを参照してください: http://alvinalexander.com/linux/vi-vim-editor-end-of-line 。
Chris answer への追加として、Wordナビゲーションを実現することもできます(Option+arrow
キー)、次の4行を追加するだけです。
:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el
o
は小文字なので、操作のinsert
モードを終了しないことに注意してください。同じ効果を得るために、元の回答の大文字のO
を変更することもできます。
[ターミナル]-> [設定]-> [プロファイル]-> [キーボード]に移動して、以下を追加します。
キー:↖アクション:\ 033OH
キー:↗アクション:\ 033OF
MacVimでは、「左矢印」コマンドと「右矢印」コマンドを使用して、編集モードで行の最初と最後に移動できます。