2017-02-01 14 views
1

私はColemakキーボードレイアウトを使用しており、従来のVim 'hjkl'は快適ではありません。私の.vimrcでは、 'hjkl'を 'neio'(そしての逆の場合は)に置き換えるために、以下を追加しました。Emacs Evilモード - 'hjkl'を再マップする方法?

noremap n h 
noremap e j 
noremap i k 
noremap o l 

noremap h n 
noremap j e 
noremap k i 
noremap l o 

noremap N H 
noremap E J 
noremap I K 
noremap O l 

noremap H N 
noremap J E 
noremap K I 
noremap L O 

可能であれば、私はSpacemacsを使ってEmacsでどうすればいいですか?

答えて

2

はここhjklがにバインドされている方法は次のとおりです。

(define-key evil-motion-state-map "h" 'evil-backward-char) 
(define-key evil-motion-state-map "j" 'evil-next-line) 
(define-key evil-motion-state-map "k" 'evil-previous-line) 
(define-key evil-motion-state-map "l" 'evil-forward-char) 

あなたが欲しい方のキーに方向をバインドするために、あなたの​​に独自のキーと同様の行を置くことができます。 hjklを再度バインドする必要があります。元の方向のバインディングを残したくないと仮定します。

EDIT:neiohjklを置き換えるために、私はあなたがevil-normal-state-mapioのバインドを解除する必要があります信じる:

(define-key evil-normal-state-map "i" nil) 
(define-key evil-normal-state-map "o" nil) 
+0

私は最初に変更された 'hjkl'と 'neio'を 'init.el'に追加しましたが、うまくいきませんでした。私は 'evil-maps.el'で直接' init.el'と変更されたキーの変更を元に戻しました。同じ結果。他のマッピングはうまくいくようですが、 'i'と 'o'はまだ動きに使用できません。とにかくありがとう! – lillemets

+1

@lillemets私の編集が役立つかどうかを確認します。 –

1

ます。また.spacemacsでこれらの変更を行うことができます。 evil-maps.elが見つかりませんでしたが、FAQはuser-configで変更することをお勧めします。 QWERTY配列で

(defun dotspacemacs/user-config() 
;; colemak config 
;; Make evil-mode up/down operate in screen lines instead of logical lines 
(define-key evil-normal-state-map "i" nil) 
(define-key evil-normal-state-map "o" nil) ;;neio back,up,down,next 
(define-key evil-motion-state-map "i" 'evil-next-visual-line) 
(define-key evil-motion-state-map "e" 'evil-previous-visual-line) 
(define-key evil-motion-state-map "n" 'evil-backward-char) 
(define-key evil-motion-state-map "o" 'evil-forward-char) 
;; Also in visual mode 
(define-key evil-visual-state-map "i" 'evil-next-visual-line) 
(define-key evil-visual-state-map "e" 'evil-previous-visual-line) 
+0

待ち!これはひどい。これで、 "i"の挿入状態を使用することはできません。あなたは何をするつもりですか、常に追加状態 "a"を使用してください。 ? Nice Colemakの動きは、しかし、小さな問題があるようです。 –

+2

この再マッピングはevil-colemak-basicsパッケージでも処理されます。 https://github.com/syl20bnr/spacemacs/pull/7178 –

+0

正確にはそうではありませんが、近づきます:evil-colemak-basicsはバリエーションを使用しています:矢印の "hnei"を保持し、 "筋肉のメモリ互換性"を目指します。 –

1

hjkl colemak、ないneiohneiです。なぜなら、neioを使用する理由は、(1つの位置を左にシフトさせるのではなく)指の下にすべての矢印を表示するからですが、これは必ずしも良いことではありません。ダウン/アップ(QWERTYのjk) 2つの最も強い指を使用してください。

qwerty hjkl(colemak hnei)は、実際には人間工学に基づいているので、私にとっては、コーレマクを使用するときはこれを保つことが理にかなっています。もちろん、何年もの筋肉の記憶を忘れることが、それを守る別の理由です。

hneiをナビに保存し、その結果を賢明に処理することは、私のevil-colemak-basicsパッケージで達成したものです。デザインに関する広範な記事を書いているので、そのドキュメントをチェックしたいかもしれません。おそらくあなたはそれを使用して終わるでしょう。 :)

+1

フェアポイント。私は最近、自分自身も同じ結論に達しました。アップ/ダウンがある限り、すべての矢印を指の下に置く必要はありません。私は 'hnei'を試してみるかもしれません。 – lillemets

関連する問題