9

私はRSIを取得し始め、これを読んだときに解決策を探していました:

「Emacs Pinky」を回避する最善の方法は何ですか?

スペースバーをスペースとコントロールの両方としてマッピングするソリューションが大好きですが、ここに問題があります:

私は通常、頻繁に旅行し、1 台のコンピューターにアクセスすることはありません。私は自分のドキュメントを編集するために、ルート アクセス権を持っていない複数の異なるコンピューターで作業を行っています (一部のコンピューターでは、通常のアクセス権さえ持っていません)。

スペース バー ソリューションを実装するバッテリーを含む方法はありますか? たぶん小さなLispコード?

4

8 に答える 8

6

(これはコメントには長すぎますが、役立つ場合があります)

スペースバーのソリューションは面白そうに見えますが、一見すると、私には少し「ハック」すぎますが、試してみるかもしれません...

とにかく、「Emacsピンキー」の問題はデフォルトのEmacsショートカットが原因だと思います。これは、プログラムでこれまでに考えられた中で最も痛みを引き起こし、RSIを誘発するショートカットの1つでなければなりません(これはEmacsの大ファンから来ています。それをEmacsの批判として受け取らないでください)。

ピンキーを使用する必要があるデフォルトのショートカットが多すぎる方法があります:(CTRL-pの行)が思い浮かびます。これはあなたにとって2つのピンキーであり、「p」は「previous」を表すため、非常にスマートであるはずです。すべての、C-x somethingそしてC-c somethingあまりにも多くの指のストレッチが必要であり、私もM-xひどく不十分なショートカットであることがわかりました...

これは異端のように思われるかもしれませんが、かなりの数の人々がvimスタイルのナビゲーションでEmacsを喜んで使用しており、正直なところ、私はそれらを非難することはできません。

個人的には、Emacsではすべてが構成可能であるという事実が大好きなので、次のことを試みるパーソナライズされた構成を思いつきました。

  • 手/指と小指の動きを最小限に抑える
  • 「強い指」を最大限に活用する
  • QWERTYキーボードで指がすでに配置されているキー((a)sdfおよびjkl(;))を最大限に活用しますが、「a」および「;」はピンキーを使用することを意味します

私は時々ピンキーを使用することに反対していません:しかし私にとって、それはあなたの手を傷つけるかもしれない方法のあまりにも多くのピンキーの使用の繰り返しです。

したがって、例として、を使用CTRL-{p,n,f,b}して移動する代わりに、次を使用します。

  • ALT-{i,j,k,l}(矢印キーに手を動かすのは大したことではありません)。

  • エースジャンプモード

使用したことがない場合はace-jump-mode、おそらく使用したいと思うでしょう。これはEmacsにとって最大の時間節約の1つです。ace-jump-char-modeをにバインドしましたM-e。これは、4〜5回のキーストローク(Meを押すために必要な2回を含む)でバッファーに表示される任意の文字に到達できることを意味します。これはいつでも使用するビートCTRL-{p,n,f,b}であり、間違いなくあなたのピンキーを救うのに役立ちます。

ピンキーを必要とするキーを押す必要なしに実際のジャンプ(最後のキーストローク)が実行されるように、空想を得てace-jump-modeを変更することができます。ソースを見ると、非常に簡単に見えます(ただし、場合によっては、追加のキーストロークを1つ使用する必要があります。いずれの場合も、手動でナビゲートするよりもはるかに高速です)。

これは、 ace-jump-modeを使用して非常に速くジャンプする方法についての2分間のデモンストレーションです(ただし、その優れたビデオでさえ、そのモードの正義を実現しません。実際にそれを使用して、それがどれほど優れているかを理解する必要があります):

「Emacsは揺れる!エピソード10:飛び回る」:

http://emacsrocks.com/e10.html

そして、とに加えてC-x、ととして機能するように追加M-xしました。C-,M-,C-xM-x

例えば:

(define-key global-map [(control ,)] ctl-x-map)

SPCをCTRLとして使用するポータブルな方法を見つけるかどうかにかかわらず、andの代替手段を検討することできます (「x」は、ピンキーを必要としない場合でも、非常に便利なIMHOではありません) 。C-{p,n,f,b}C-x / M-x

tl; dr

ピンキーを保存するには、次のいずれかを実行できます。

  • すぐに使えるvimスタイルモードをオンにします

  • または、Emacsを好みに合わせて(再)構成し、小指の破壊を防ぐために必要な時間を費やしました(これは、ポータブルな方法を見つけた場合に、SPCをCTRLとして使用することを意味しますが、これに限定されません。 )。

それに加えて、多くのキーストロークを節約できるemacsモード( ace-jump-modeなど)を使用することもできます。

于 2012-07-09T23:47:03.137 に答える
2

最近、キーコードモードを発見しました。«キーコードを使用すると、コマンドをキーストロークの組み合わせにバインドできます。ここで「キーコード」とは、2つのキーを同時に押すか、1つのキーをすばやく2回押すことを意味します。»

良い点は、スペースバーで始まるキーコードを定義することが明らかに可能であるということです。 http://www.emacswiki.org/emacs-en/KeyChord(およびを参照space-chord.el

だからそれはあなたの問題を解決するでしょう?

于 2012-07-10T09:09:45.570 に答える
1

トンを助けるKinesis Advantageキーボードを使用しても、何年にもわたってctrl-n、ctrl-pなどを使用した後、手首と親指の問題にまだ苦しんでいました。それは素晴らしいです。vimバインディングを学び、エスケープを押すことに慣れると、非モーダル編集(ctrl-metaバインディングのクレイジーな組み合わせを使用)は、人間工学の観点から完全に狂ったように見えます.

したがって、emacs の小指や親指で苦しんでいる人には、悪モードを試して vim バインディングを学ぶことを強くお勧めします。

于 2013-01-13T09:21:21.547 に答える
1

この問題だけを解決することになっているErgoMacsを検討するかもしれません。私は Emacs を見つける前に半年間 Emacs を使っていたので、試したことはありません。ただし、移動を含む膨大な数のキーボードのカスタマイズがありますC,M-i,j,k,l(正確には vi スタイルではありません)。

于 2012-07-12T17:54:59.837 に答える
0

これはハックのように聞こえるかもしれませんが、デフォルトの Emacs キーボード マッピングから vi エミュレータの 1 つに切り替えることをお勧めします。標準パッケージであると思われる Viper を使用しています。次の方法でオンデマンドで有効にできると思います。

('viper が必要です) Mx viper-mode

これは私がこれまで emacs で作業できた唯一の方法です。というのは、その基本的なキーボード マッピングがほとんど理解できないことにいつも気付いていたからです。

唯一の欠点は、vi にまだ精通していない場合に必要となる可能性のある学習曲線以外に、'emacs pinky' を 'escape-key-finger' に置き換えることができることです。

于 2012-07-11T11:45:19.750 に答える
0

部分的に、はい。

完全にユーザー空間で実行される同様のユーティリティ、つまりSpace2CtrlKeydoubleがあります。どちらも X が必要です。

私はat-home-modifier、「ctrl として両方のスペースを使用する」ソフトウェアの作成者です。ここでこの3つを比較してみると、Space2CtrlとKeydoubleはat-home-modifierよりも選択肢が少ないので「電池同梱」ではないかもしれませんが、コード(C++/C)はシンプルでハッキングされやすいのでしょう。

十分に気をつけてください。(小指が痛くなり始めたので私が書きましたが、今は大丈夫です。ただし、親指を使いすぎないでください。) at-home-modifier のREADMEには、健康とキーボードに関するアドバイスもいくつかあります。

于 2012-10-16T08:06:33.960 に答える
0

numpad.AHK スクリプトを rempap します。

NumpadIns::^s
NumpadEnd::^c
NumpadDown::^v
NumpadPgDn::^x
NumpadLeft::^+v
NumpadClear::Control
NumpadRight::^a
NumpadHome::q
NumpadUp::Tab
NumpadDel::^f
NumpadEnter::Space


1 : コピー
2 : 貼り付け
0 : 保存



使いやすさのために新しいテンキーを購入してください。

于 2014-08-07T02:32:14.050 に答える