27

ctrl-tab を :tabn に、ctrl-shift-tab を :tabp にマッピングしたいと考えています。

Windows XP では gVim で動作していましたが、Ubuntu 9.10 では .vimrc に移動しましたが、動作しません (vim 7.2)。

私の .vimrc の関連セクションは次のとおりです。

nmap <C-Tab> :tabn<CR>
nmap <C-S-Tab> :tabp<CR>
nmap <C-t> :tabnew<CR>

<C-t>正常に動作するので、ctrl キーのマッピングは問題ではないようです。どこから始めればいいのか本当にわかりません!Windows で正常に動作したことを考えると、ここで何が問題になる可能性がありますか?

詳細: Ubuntu 9.10 サーバーを実行してxorgおり、そのfluxbox上にインストールされています。xterm端末として使用しています。

Ctrl-tab マッピングは Fluxbox で機能します:ウィンドウ マネージャーで ctrl-tab と ctrl-shift-tab を正常にマッピングできます。xterms をタブで移動し始めると、期待どおりにそれらのタブを切り替えることができます。これが何を意味するのかはわかりませんが、問題はウィンドウ マネージャー/xorgの問題ではないと思います。

キーは別のものにマップされていないようで、一緒に正常に認識できます。

回答:これはxterm問題ですctrl-tab。詳細については、以下の完全な回答を参照してください。

4

4 に答える 4

34

それは間違いなく端末の問題です。

どうやら xterm や他の多くの端末エミュレーターは、デフォルトで ctrl-tab をインターセプトせず、タブ信号を送信するだけです。このVim wiki ページには、xterm、Eterm、および aterm では ctrl-tab が機能しないと記載されています。端末の問題であると主張するこのArch Linux フォームの投稿もあります。

解決策は、このブログ投稿の情報とこのvim wiki for mapping keycodesを組み合わせることで見つけることができます。この要点は、ファイル内の ctrl-tab と ctrl-shift-tab の一意のコードをインターセプトして送信するように xterm を構成し、ファンキーなマッピング.Xresourcesでそれをハッキングする必要があるということです。.vimrc

簡単に言えば、xterm と vim の両方をだまして実行させる必要があるため、これを実行するのは困難です (ここではまだ動作していません)。私は個人的に別のマッピングを使用するつもりです...この問題は深刻な時間の浪費であり、それを機能させるために押す価値があるとは思いません!

助けてくれてありがとう。

于 2010-04-23T02:26:33.340 に答える
3

@nfmの回答のブログとwikiの投稿を使用して解決しました:

これを.Xresourcesファイルに入れます(この場合はコピーして貼り付けることができます):

xterm*VT100.Translations: #override \
             Ctrl ~Shift <Key>Tab: string(0x1b) string("[27;5;9~") \n\
             Ctrl Shift <Key>Tab: string(0x1b) string("[27;6;9~")

次にcd ; xrdb .Xresources、xterm を実行して再起動します。


これをあなたの中に入れてください.vimrc

!! 重要- XXXX の代わりに、テキスト全体を入力して OR コピーして貼り付け、コピーして貼り付けることができるものを実行CTRL-VするEsc 必要%s/\(set <F1[34]>=\)XXXX/\=submatch(1) . "\33"/gがあります (挿入には を使用し<CTRL-R> +ます)。

set timeout timeoutlen=1000 ttimeoutlen=100
set <F13>=XXXX[27;5;9~
nnoremap <F13> gt
set <F14>=XXXX[27;6;9~
nnoremap <F14> gT

そしてvimを再起動します。

終わり。

于 2015-08-12T09:37:02.153 に答える
0

Ubuntu を使用している場合は、おそらく Compiz のようなものが有効になっています。

確かなことはわかりませんが、Compiz 拡張機能を調べて、そのうちの 1 つがそのショートカットを定義しているかどうかを調べてください。vimではなく、同様の問題が一度ありました。

一部のキーストロークをインターセプトする X サーバーの場合もあります (例: xbindkeys)。

于 2010-04-22T09:07:14.080 に答える