web-dev-qa-db-ja.com

Ctrl + Page DownでTerminal.appのVim内のタブを切り替えるにはどうすればよいですか?

Ubuntuのターミナル内でvimを実行すると、 CtrlPage Up または Page Down vimタブを切り替えます。これをTerminal.appまたはMacOS X用のiTerm2に設定するにはどうすればよいですか?私はMacbookAir(2011)を持っているので、「適切な」ものがありません Page Up そして Page Down それが重要な場合は、キー。

さまざまなエスケープコードを設定しようとしましたが、今のところ何も機能しません。

編集:私は自分の質問に答える特権を持っていませんが、ここに答えがあります:

回答:

正しいエスケープシーケンスを見つけました。 Terminal.appのキーボード設定で、

「controlpageup」を「sendstringto Shell:」に設定し、この値は「\ 033 [5; 5〜」

「controlpagedown」を「sendstringto Shell:」に設定し、この値は「\ 033 [6; 5〜」

7
ramn

キーボードに実際のpageupキーとpagedownキーがない場合、これらを何かにマップする方法はありません。

  • <C-PageDown>は、:tabnext:tabn、およびgtの代替です。
  • <C-PageUp>は、:tabprevious:tabN、およびgTの代替です。

代わりにgtgTを使用することを強くお勧めします。これらは、Vimの文法(「順方向コマンド」の場合は小文字、「逆方向コマンド」の場合は大文字)に従うため、非常に覚えやすいです。

gt/gTが気に入らない場合は、好みに合わせてマッピングできます。

nnoremap <C-Up> gT
nnoremap <C-Down> gt

しかし、私はそれが必要だとは思いません。

あなたの例(PageUp/PageDown-lessキーボード)は、Vimの一見奇妙な設計上の決定の知性のかなり良い例のようです。

-編集(アスカーの要求による)-

正しいエスケープシーケンスを見つけました。 Terminal.appのキーボード設定で、

「controlpageup」を「sendstringto Shell:」に設定し、この値は「\ 033 [5; 5〜」

「controlpagedown」を「sendstringto Shell:」に設定し、この値は「\ 033 [6; 5〜」

9
romainl

Ramnの回答に基づいて、参考として、これはiTerm2でこの問題を解決する方法です。

  1. iTerm/Preferences.../Profiles/Keysに移動します
  2. +ボタンを押して、プロファイルのショートカットを追加します
  3. ショートカットを使用:^Page Up、アクション: "エスケープシーケンスを送信"、値[5;5~
  4. ショートカットを使用:^Page Down、アクション: "エスケープシーケンスを送信"、値[6;5~
6
elaichi