2

私はemacsを学び、viカスタムキーバインディングを取得しようとしています。

バイパーモードを使用して、キーを再バインドする正しい方法は何ですか?(私は( qwertyの代わりに) Colemakキーボードレイアウトを使用しているので、n-> jのようなものを変更する必要があります)しかし、viperモードで動作させたいと思います。

GNU.orgのこのキーバインディングガイドから: http ://www.gnu.org/software/emacs/manual/html_node/viper/Key-Bindings.html

.viperファイルに入れるコマンドは次のとおりです。

(define-key viper-vi-global-user-map "\C-v" 'scroll-down)

それは私にはうまくいきません...実際、私が「define-key」機能さえ持っているかどうかはわかりません...

M-x define-key [No match]

私のバージョンのemacsで「define-key」が利用できるかどうかわかりませんか?

これは機能しますが、バイパーモードでは機能しません

(global-set-key "n" "j")

どんな助けでも大歓迎です。これはEmacsを使用する最初の日です。これは、Colemak&Viperモードを正しく機能させるのに苦労するためです。

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

4

2 に答える 2

4

うまくいけば、ここでいくつかの有用な答え:

まず、.viper私のためにその行を作品に入れます。挿入モードではなく、コマンドviper-vi-global-user-mapモードの場合に適用されることに注意してください。

次に、define-keyこれはコマンドではなく、通常の関数です。つまり、を使用して呼び出すことはできませんM-x。その違いの詳細については、このEmacswikiページを参照してください。しかし、それは良い試みでした。

第三に、これglobal-set-key コマンドです。を使用して変更を加えることができますM-x global-set-key。しかし、それは現在のグローバルマップのキーを設定します。これは。と同じではありませんviper-vi-global-user-map。Viper-modeは、さまざまなキーマップを使用してEmacsをviのように動作させますが、すべてのマップはグローバルマップの上にオーバーレイされます。

挿入モードC-vのときに、希望どおりにバインドされていないことがわかったと思います。そして、これをあなたの:に追加することで解決できます。.viper

(define-key viper-insert-global-user-map "\C-v" 'scroll-down)

最後に、scroll-downあなたが望むものではないかもしれません。はdown、テキストが下に移動することを指します(固定ウィンドウの視点が与えられた場合)。 C-v通常はにバインドされ'scroll-upます。しかし、多分それはまさにあなたが望むものです。

警告:私はバイパーモードのユーザーではありません。viの使い方すら知りません。だから私の用語はずれているかもしれません。しかし、バイパーモードで物事を変えるという課題は非常に興味深いと思います。

追加するために編集

あなたのコメントから、あなたはデフォルトでバインドされnているものと同じになりたいように思えます。jこれを追加してみてください:

(define-key viper-vi-global-user-map "n" 'viper-next-line)

「通常」モードではM-x describe-key j、にjバインドされていることを通知しました。'viper-next-line上記の行はn同じルーチンにバインドされます。シフトしたい残りのバインディングについても繰り返します。

于 2010-10-28T17:01:57.543 に答える
1

現代では、evil-mode は emacs の vim エミュレーション レイヤーであり、colemak 用に微調整するには、私のhttps://github.com/wbolster/evil-colemak-basicsパッケージが大いに役立ちます。

于 2016-10-20T14:47:30.950 に答える