1つだけ過去を変えられるとしたら?

vimを最近使い始めたのですが、C-[ が押しにくいので、C-; (Ctrl+セミコロン) に <Esc> 相当の働きをさせようと思い、

:map! <C-;> <Esc>

とか

:map! <C-;> <C-[>

とか色々やってみたのですが、思い通りに動いてくれません。(ビープ音が鳴ります)

<C-i> とかアルファベットなら大丈夫なのですが、<C-,> とかでは同じく無理でした。

記号なだけに検索するのも難しく、質問させていただきました。ご存じでしたら教えてください。

環境はVim version 7.2.22, Mac OS X, Terminal.app です。(Linux系OSではありませんが…)

A 回答 (1件)

Mac OS Xは使ったことがありませんが、一般的にvimにはXアプリとして動くvim(gvim)とコンソールアプリのvimがあります。


Xアプリならxmodmapでキー割り当てが出来るはずです。
コンソールの場合、ctrl-; は何もコードを発生しないか、ctrl-K と同じコードを発生します。

Xならキーイベントを拾えるが、コンソールアプリではASCIIコードしか入力できないという違いです。ASCIIのコントロールコードは0x00~0x1Fで、ctrl-@ ctrl-A ... ctrl-Z ctrl-[ ctrl-\ ctrl-] ctrl-^ ctrl-_ に対応します。ちなみに ctrl-[ がESCにあたります。

この回答への補足

回答ありがとうございます。

Macにはxmodmapはありません。システムで対応する (C-; をESC相当にする)ことは可能かもしれませんが、今回はVimのほうだけで出来ればと思っています。

>コンソールアプリではASCIIコードしか入力できないという違いです。
これのせいでVimでは<C-;>というキーバインドは出来ないということなのでしょうか? 試してみたとろ、
:map! <C-_> <Esc> は出来ますが
:map! <C-/> <Esc> は出来ないみたいですね。

補足日時:2008/12/01 05:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!