20

これが純粋にそうするための会話を刺激する試みとして出くわさないことを願っています。

私はvimを頻繁に使用し(1日5〜10時間)、左手首が最初に痛み始めていることに気づきました。標準のキーボードレイアウト(下の画像を参照)は、関節炎を引き起こすことがほぼ保証されています。

標準キーボード

現在、リマップしました

  • CtrlShift
  • ShiftCaps Lock
  • Caps LockCtrl

これは、または( )などの一般的なコマンドに役立ちますが、これらの組み合わせを取得するには、手首をひねる必要があります。とにかく、左手首のこのねじれを避けるためにキーを再マップすることはありますか(おそらくキーを使用します)?プログラマー向けに特別に設計されたテキストエディターの場合、これらの邪魔にならないキーを多用するのは奇妙だと思います。古いキーボードレイアウト(下の画像を参照)への再マッピングを検討しましたが、現在の再マッピングと同じ基本的な問題が発生するかどうかを知りたくありません。CtrlfShift2@Tab

古いキーボードレイアウト

4

8 に答える 8

15

注:私は医者ではなく、手首の痛みに苦しんでいる別のタイピストです。


私の経験では、にマッピングCapsして(または、必要Ctrlな場合は2つを交換して) 、大きな違いを生む 代わりに+を使用します。+は、と同等であるため、vimで追加のマッピングを行う必要はありません。この小さな変化を自分自身に教えることができれば、vimでの使用頻度を考えると、動きが大幅に減少します。CapsCtrl[EscCtrl[EscEsc

CapstoCtrlマッピングはvim内では実行できず、システム全体で作成する必要がありますが、Ctrlより便利な場所に配置すると、Ctrl組み合わせを使用する他のアプリケーションでも役立ちます。使用しているOSに応じて、キーを再マッピングするさまざまな方法があります。いくつかの一般的なオプションは次のとおりです。

これにより状況は改善される可能性がありますが、痛みが続く場合は、医師の診察や人間工学に基づいて設計されたキーボードの購入を検討する必要があります。私はEbayで使用されていたKinesisAdvantageの古いバージョンを約100ドル(USD)で所有しており、これ以上幸せなことはありません。キーはキーボード上で直接プログラムできるため、キーを交換したり、頻繁に使用するキーストローク用に独自のキーボードマクロを作成したりするためのソフトウェアは必要ありません。


編集:あなたの投稿には、Ctrl+fShift+のような組み合わせについても言及されているよう2ですが、押すには手首をひねる必要があります。キーボードの左側にあるキーCtrlとキーだけを使用しているように聞こえます。Shift実際には、これらのキーの両方のセットを使用する必要があります。変更するキーの反対側にある方を使用します。それはこの手首の動きを否定するでしょう。

于 2012-07-12T01:04:59.100 に答える
6

システム全体で使用capsctrlます。(どのくらいの頻度でカット/コピー/貼り付けしますか?)

これctrl[はvimでも動作します。

一緒にvim'arpeggio'プラグインを使用します。

Arpeggioでは、2つのキーが同時に押されたときにアクティブになるvimバインディングを定義できます。
jk押された私はとして機能しますESC

また、' surround.vim 'プラグインはあなたにとって興味深いかもしれません。

手首の痛みをすべて解消しました。

ポストスクリプト:
' vundle 'を使用してください!
その最高のvimプラグインマネージャーであり、特に複数のマシンでカスタマイズされたvimを使用する場合、これがなくてもどうすればよいのか不思議に思うでしょう。最初の設定で問題が発生しても怖がらないでください。時間をかけてください。

于 2013-01-06T22:35:41.810 に答える
4

Kinesis Advantageキーボードに切り替え、CapsLockをEscに再マップしました。これにより、vimユーザーとして感じた手首の痛みを効果的に取り除くことができました。もう一度医者ではありませんが、手の動きを見ると、Shiftキーを押しても手首がねじれているのがわかりません。

緊張をさらに最小限に抑えるために、サムキーにいくつかの素晴らしい再マッピングを行うこともできますが、正直なところ、私はその必要性を感じたことはありません。

$ 0の解決策ではないので、恐れていますが、それは私にとって非常に効果的でした。

于 2012-07-12T05:51:37.790 に答える
3

Escape(シングルタップ)とCtrl(ホールド)の両方をCapsLockにマップしました:

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "remove Control = Control_L"
xmodmap -e "keysym Control_L = Caps_Lock"
xmodmap -e "keysym Caps_Lock = Control_L"
xmodmap -e "add Control = Control_L"
xcape -t 1000 -e "Control_L=Escape" # Fire nothing if 1000ms hold time out

おそらく私はここで物事を台無しにしていますが、xmodmapとにかくマッピングを変更するための最良のオプションではないので、それを純粋なxkb構成に変更します。

私も:を;と交換しました。と`with〜、私は:と〜をより頻繁に使用するので:

xmodmap -e "keycode 47 = colon semicolon"
xmodmap -e "keycode 49 = asciitilde grave"

また、コンポーズキーを使用して、ウムラウトなどを入力します。

vimで、私がこれまでに行った中で最も便利な変更は、スペースをリーダーにマッピングすることです。あらゆる種類のリーダーとキーの組み合わせにより、生活が楽になります。

_と$のHとLは、surround.vimや他の人がアドバイスするトリックでは機能しないようであるため、慣れることができませんでした。

矢印は使用しないでください。

于 2014-05-01T00:54:57.323 に答える
2

可能であれば、この部分をランディの回答へのコメントにしますEscが、もう少しスペースが必要です。Windowsキーを再マップできない重要な使用例が1つあります。それは、管理者権限のないWindows7です。これは、エンタープライズ環境では十分に一般的です。少なくとも、それは私とそのキーボードを写真で説明しています。keymapperのリポジトリには、この問題に関する適切な情報があります。

Windows7ユーザー向けの重要な注意事項

Windows 7は、ユーザーごとのキーマッピングをサポートしていません。キーマッパーの次のリリースまで、[マッピング]メニューから[ブート]マッピングに手動で切り替え、再起動してマッピングを変更する必要があります。また、Windowsで機能するキーマッピングを設定するには、コンピューターへの管理アクセス権が必要です。 7。

同じことが、Microsoftツール、KeyTweak、SharpKeyなどにも当てはまります。

したがって、AutoHotkeyのようなものを使用する必要があります。私は個人的にCapsLockをEscforVimに直接マッピングすることを好みますが、Ctrlにマッピングするだけで問題が発生しました。

#IfWinActive ahk_class Vim
*CapsLock::Esc
#IfWinActive

私が好きな別の選択肢はですinoremap jj <Esc>。あなたがメッカ巡礼か何かについて書くことを計画しない限り、それはかなりうまくいきます。


もっとあなたのポイントに

いずれにせよ、簡単にエスケープして、到達困難な挿入モードコマンドの一部をAlt(親指で叩いて)再マッピングしてから、リーダーへのマッピングを使用するために、上記を実行することを検討しましたか?

let mapleader=","
nnoremap <leader>f <C-F>
于 2012-07-12T05:28:16.587 に答える
1

私はいつもピンキーを丸めて最初のナックルで押すことで左のCtrlキーを押します。これにより、手の動きが少なくて済みます。

アップデート

不快感はないShiftので、お手伝いできません。しかしCtrl、私は気になります、そして私のナックルテクニックでさえ、私は可能な限りそれを避けることを好みます。したがって、挿入モード(およびコマンドラインモード); では、の代わりに先頭を使用しCtrlます。例えば

:map! ;w <C-W>
:map! ;a <C-A>
:map! ;r <C-R>
:ino  ;t <C-T>
:ino  ;d <C-D>

あなたはその考えを理解します。

通常モードでは、andの代わりにandを使用vVますCtrl+FCtrl+B視覚的なブロックワイズモードのみを使用します)が、ほとんどの人は、ページングなどのさまざまなキーをマップすることを好むと<Space>思い-ます(-実際には必要ありません)。代わりに、で前方に検索してから、をF押すことができます。f,

Ctrl+Dまたはで実際に多くのポイントを見たことがありませんCtrl+U。ただし、、、、およびは、カーソルを使用して行をウィンドウの中央、上部、および下部にそれぞれスクロールするのに役立ちますz.。、および画面上でカーソルを移動する場合にも役立ちます。しかし、一般的には、ナビゲートするために「incsearch」を設定して使用することを好みます。z<Enter>z-HML/

これを行う正しい方法も間違った方法もありません。これらは私の個人的な好みですが、1つまたは2つのアイデアが得られることを願っています。実験してみて、何が効果的かを確認してください。

于 2012-07-12T11:20:31.907 に答える
1

再マッピングをお勧めします

  • キャップスロックを左に制御
  • エスケープする左コントロール
  • CapsLockへの脱出

setxkbmap -option '...,ctrl:nocaps'Linuxの場合、最初にを使用または変更するXkbOptionsことで実行できます/etc/X11/xorg.conf。2番目はの使用が必要ですxmodmap。Xサーバーを更新した後、以前も使用xmodmapしていた3番目のサーバーを機能させることができませんでした。

,sタッチタイピングや->のようなマッピング用に最適化されたdvorakレイアウト(おそらくプログラミング)を使用すること()<Left>も役立つかもしれません。

注:私も医者ではありません。私はタッチタイピストですが、@ Randy Morrisとは異なり、手首の痛みに悩まされることはなく、キーを最も便利な場所に移動するだけです。

于 2012-07-12T03:19:56.597 に答える
1

私はまさにこの問題のためにいくつかの簡単な再マッピングを行うためにvimモジュールを開発しました:

https://github.com/vim-scripts/vim.ergonomic

それが行う最大のことは、ブラケットセットを入力しやすくすることです。また、コマンドモード(jj-> ESC)に入るのがはるかに簡単になります

編集中にJキーを使用することはほとんどないという原則に基づいて実行されますが、ホーム行にあります...それを悪用しましょう!

ドキュメントから:

Remapping commonly used commands
  key combo     mapping         purpose
  ;             :               removes the need to hit Shift to use commands
  jj            <ESC>           can exit edit mode quickly and easily
  Jj            j               can type 'j' when you need to
  JJ            J               can type 'J' when you need to


Making it easier to insert various kinds of braces:
  key combo     mapping         purpose
  JU            ()<left>        easier to create parenthesis
  JI            []<left>        easier to create square brackets
  JM            {}<left>        eaiser to create curly braces
  J<            <><left>        easier to create carrot braces


Make it easier to move small distances (especially useful with braces commands):
  key combo     mapping         purpose
  JL            <left>          move left in insert mode
  JH            <right>         move right in insert mode


Removing any need for enter, backspace or delete:
  key combo     mapping         purpose
  JB            <esc>ldbi       delete the previous word
  JW            <esc>dwi        delete the next word
  JO            <esc>oi         insert line and go to it
于 2015-03-19T15:16:07.660 に答える