通常モードで矢印キーを使用するのは悪い習慣と見なされるのはなぜですか?


43

私は(多くの記事でそれを読ん持っ例えば、それは、通常モードでのキーの矢印の使用に悪い習慣だということ)。誰かが間違っていると見なされる理由を説明できますか?


5
hjklを使用しない理由の1つは、別のキーボードレイアウトを使用する場合です。たとえば、hjklはドヴォルザークでは空間的に相関していないため、使用が困難です。
カイロス

1
hjklドヴォルザークで使用する@Kylos 。それはqwertyよりも明らかに賢明ではありませんが、それを「使いにくい」と呼ぶかどうかはわかりません。それらはただの鍵であり、慣れてしまえばそれらに到達するのが難しいというわけではありません。
ドゥーガル

2
hjkl文書内を移動するための最良の選択肢である理由は多くの神​​話があります。真実は、hjklviの作成時に一部のキーボードの矢印キーがオンになっていたため、viはキーボードレイアウトに合わせて通常モードで同じキーを使用していました。キーボードの写真付きの記事を次に示し
allo

8
難しさで定評のあるものは、ある種の人を惹きつけます。Crossfit、Vim、関数型プログラミング、ビーガニズムなど。今では確かに、これらのアクティビティのいずれかを担当するすべての人がそのような人ではないが、不均衡に頻繁に現れます。そしてその人の魅力の一部は活動自体の難しさです。立ち入りを制限するものは、彼らにとって嫌悪感です。好む理由がありますhjkl。良いもの。しかし、少なくとも部分的には、彼らは他の人よりも優れていると感じなければならないため、彼らはドグマの状態に膨らんでしまいます。
ジャレッドスミス

@Kylosドヴォルザークでhjkl最高ではないことに同意します。しかし、dvorakユーザーとしては、ペアになっているので少し便利jkです。ボードの片側のように。そしてhl 反対側に。
ニロン

回答:


66

実際、これは悪い習慣ではありません。

(多くの人々@B層の答えが示すようにVimのドキュメントを含むが)あなたはそれがあなたの手を作るためのキーを矢印使っホーム列から(あなたが持っているキーボードの第二の線を移動してはならないと主張しているhjkl)、それはあなたが少なく効率的にします。

これは(少なくともIMO)vim "純粋主義者"サークルジャークの悪い結果です。新しいユーザーは盲目的にこれに従い、一部のユーザーは矢印キーを無効にし、以前ほど効率的ではないと訴えます。

あなたが使用して、より快適に感じる場合:使用VIMへの唯一の本当のルールが効率的にそれを使用することであるLeftRightよりhl 、それをも、矢印キーを使用します。set mouse=aマウスを使用する場合、Vimにもオプションがあります!

あなたがvimのに慣れると異なる利用可能な動きを良く(ft,;wbege、基本的にすべて:h quickref)あなたは多くのことをあなたは矢印キーで使用しないことを認識することがあります。まだそれらを使用している場合、それは問題ではなく、最も効率的なものを使用してください。

私の意見では、効率を上げるためにホーム行を離れないという議論はあまり良くないことに注意してくださいvimがhjkl使用する理由を見ると、矢印がなかったためにこれらのキーが選択されたことがわかりますViが作成されたときのキー。この時点でキーボードが異なっていたとしても、矢印キーを使用しないことを良い習慣とみなす人はいないと考えることができます。


13
私はよく慣れていたので、手首を曲げて矢印キーに手を伸ばすのにひどく苦労しました。矢印キーを無効にしてhjkl、手首の痛みを和らげるために慣れました。
Shahbaz

9
これはQWERTYキーボードでしか意味をなさないことを指摘したいと思います。一部のレイアウトでは、hjklが非常に苦痛になる場合があります。
coteyr

1
両方のオプションを使用できます。hjklを選択する場合も矢印を選択する場合も、ファイル行ではなく画面上の行ごとに移動する他の一連の上下キーをバインドできます。長い行のファイルを編集するときに役立ちます。
user31389

1
あなたの答えを読む前に、あなたが言及した高度なモーションコマンドに慣れたので、hjklと矢印キーをほとんど使用しないことに気づきませんでした。いい視点ね!
スピロス

4
しかし、多くの私はあなたに、私の目に正しい答えを感謝し、私は仲間の司会としてあなたに勝つとしてください可能性がVIにはいくつかのあまり、「怪しげ」の代替言い回しを見つけるためにあなたの最も難しいしように愛好家サークルジャーク鮮やか乱すイメージを喚起しません男の子や男性のズボンレスリングの互いの中で一緒に自慰行為すべてがcompany‽ かなりしてください?:)
tchrist

40

これが本当に関連性があるかどうかはわかりませんが、私は昔からの経験がありますので、ここに少し歴史があります。

昔、VT100端末には矢印キーがありましたが、1つを押す<ESC>[Aとアップ、<ESC>[Bダウンなどのエスケープシーケンスが送信されました。
また、9600ボーで通信するシリアル端末であるため、ユーザーがキーを押すのが速すぎることがありました1回のキープレスで前のキープレスのシーケンスを中断させ、viを混乱させるシーケンス全体を送信する。

これにより、viは挿入モードになり、下矢印を押したままにすると[B [B [B [B [B [B [B]をファイルに挿入します。挿入モードに入るべきこのシーケンスについては何も存在せず、各シーケンスがESC文字で始まるという事実は挿入モードを終了すべきであるため、私は不可解に言います。しかし、それでもゴミを挿入します。いつもではありません-急いでいるときだけです。

すぐにこれにうんざりし、hjklキーだけに固執することにしました。


8
何らかの理由で、TCPターミナルのプログラムはまだ矢印キーエスケープシーケンスの最初のバイトを送信する対エスケープキーを押すとを区別するのいずれかの100%-reliable方法を持っていない、まだエスケープベースの矢印キーを使用し、。
-supercat

1
彼らは@supercat 行い、それらを区別するための信頼できる方法があります。SC81Tを使用して呼び出されます。問題は、多くのプログラムがそれをネゴシエートせず、一部の端末がそれをサポートしていない可能性が高いことです。
ジェームスサン

1
@jamessan:矢印キーとエスケープを区別する信頼できる方法は、エスケープベースの矢印キーを使用しないことであると提案しています。ベースの矢印キー。
-supercat

うーん、VT100をエミュレートできる古いIBM端末を持っているので、これを試してみる必要があるかもしれません
ハサミムシ

3
80年代には、この理由からviで矢印キーを使用しないように、学部のターミナルルームで標識を立てなければならなかったので、少なくともこれは事実です。ttyドライバーが割り込みをドロップしたとき、彼らはファイルをめちゃくちゃにし続けました。
-tchrist

28

@statoxには同意しますが、矢印キーを使用することを選択した場合、誰も懲戒、忌避、破門、または恐怖とフェザーにさらされるべきではありません...あなたが適切だと思う方法であなたのソフトウェアを使用してください...私は滲み出しませんオープンマインドの新しいユーザーにガイダンスを提供している場合、自由放任主義の態度の多く。ベストプラクティスに従うことから始めることを強くお勧めします。それらは理由のための「ベストプラクティス」です...彼らはあなたと私の前に来た多くの人々によって良い効果のために採用されました。

ヘック、でもその方向にVimの独自のヘルプnudgesあなたを、ではないが誇張なし(「大幅にスローダウン」)...

矢印キーを使用してカーソルを移動することもできます。ただし、矢印キーを押すには、テキストキーから矢印キーに手を移動する必要があるため、編集速度が大幅に低下します。1時間に何百回も実行している可能性があることを考慮すると、これにはかなりの時間がかかります。

また、最初に選択したものは何でも、将来変更したい場合に破ることが難しい習慣になる可能性があるという事実があります。それでは、矢印キーの使用非効率的または手根を殺す可能性を逃すのではなく、他のすべてが平等であるので、なぜ推奨される習慣を採用しないのでしょうか?

全体として、矢印キーなしで物事を行うために正直な努力をすることを検討してください。あなたが上/下/左/右なしで生きられないなら、妥当な時間の後...しないでください。

...私の意見に興味を持った新しいユーザーに私が言うことです。あなたが同意しない場合、個人的にそれを受け取らないでください(私はあなたに話している、ダウンボッター)。


9
矢印キーよりも実際に優れていることを受け入れたとしても(私はそうは思いません)、すべての可能な「ベストプラクティス」のリストの一番下にあります。私は多くがあることを主張するだろう多くの hjklを使用するよりも重要なことは。
マーティントゥルノイ

5
@Carpetsmokerベストプラクティスをランク付けする必要はないと思います。矢印キーを使用したいという強い要望がない限り、Vimの推奨どおりにしないのはなぜですか 特にあなたがVimを初めて使用する場合は...染み込んだ後、私たちは何かをする方法を変えることがどれほど難しいか知っています。
Bレイヤー

1
「編集作業が大幅に遅くなります」-それは私にとって非常に誇張のように思えます...それにもかかわらず、試してみる価値があることに同意します。正直言って、戦争するほど重要ではありません。
シャドウ

2
@BLayerはここにいない-これは私が見たと思うトピックに関する最も市民的な議論です。しかし、戦争は確かに戦われています
シャドウ

1
don't think it's necessary to rank best practices資源が有限であり、寿命が短いことを考えると、私たちは人生で最高の価値を与えるものに焦点を当てるべきだと思います。私は偶然、テンキーなしのラップトップで不正、ラーン、アンバンドなどをプレイしている子供のミスペンが原因で、hjklキーが心臓であることを知っています。運動や範囲などを学ぶことは、時間を過ごすためのはるかに便利な方法だと思います。
マーティントゥルノイ

16

他の答えは、ホームの列から手を動かすことによる効率の低下はそれほど大したことではない、と私はほとんど同意します。しかし、何であるあなたは、常に戻って通常モードへの切り替えを回避するには、矢印キーを使用して、Vimを学んでいるとき、大したことです。

単一使用換言すれば、あなたは、単一の使用しているだろうh、生産性に大きな損失ではないが、しかし、使用して、あなたが使用している可能性がどこEscI である巨大な損失。

これが、vimを学習しているときに矢印キーを使用しないようにと言われる理由です。挿入モードを終了するのではなく、通常モードを学習する必要があるためです。通常モードでは、効率がすべて向上します。


1
+1。つまり、「矢印キーを使用しないでくださいhjkl。使用しないでください。」(意図的な双曲線を保持します。)
wchargin

3
実際には、10回使用する代わりに1 0 、さらに簡単に使用できますHome。後者は、Windowsのメモ帳でも機能します。
ルスラン

7

人々があなたが矢印キーを使うべきでないと言う主な理由は2つあります。hjklが優先されると主張する人もいます。これはホーム行に手を保持するためです。これはfalseではありませんが、重要ではありません。私を含む他の人は、数文字以上を移動する場合は矢印キーを使用しないでくださいと言いますが、hjklも使用しないでください。

重要なことは、使用しているキーではなく、いくつのキーであるかです。単語の先頭に移動したい場合、ヒットしませんhhh。あなたがヒットb。言葉の終わりはeそうllllです。行の始まり:0、行の終わり:$。さらに、/searchあなたが行きたい場所に存在するテキストのために。(またはあなたが好む高度な移動コマンドのいずれか)。

しかし、同じキーを2回以上続けて入力することに気付いたときは、もっと良い方法があります。


7

より正確な説明は、vimをよりよく学習しようとするとき、矢印キーを使用するのは悪い習慣です。vimを初めて使用する人は、矢印キーを使用して動き回るのでhjkl慣れないので、学習しないでください。したがって、これが望ましいかどうかを確認する機会が得られません。

個人的には、vimについてある程度の一般的な知識を習得した後、しばらくの間矢印キー無効にして、hjkl後で有効にするために再度有効にしました.vimrc。私の場合、従来の知恵が当てはまります。両方のhjklキーと矢印キーの使用方法を知った後、私はほとんど独占的に前者を使用していることに気付きました。


6
同意しません。同様にこのブログ初心者のための「オールオアナッシング」のアプローチは、VIMの「ユーザー非友好的な」の評判原因に役立つと、述べています。新規ユーザーが開始し、動揺して圧倒され、vimが厄介な混乱であると結論付け、驚くほど生産性の高いエディターに切り替えます。-泳ぐことを学んでいるなら、船から外洋に放り出さないでください。あなたが水に慣れるまで、子供用プールの周りを犬でパドルすることは完全に受け入れられます。
RM

2
...矢印キーを無効にしても人々には機能しないと言わないでください。しかし、それは「vimが好きで、より良い使い方を学びたい」というステップであり、「vimは初めてで、使い方を学びたい」というステップではありません。
RM

5

通常の答えには効率が関係します。あなたは、おそらく長年にわたってタッチタイピングを使用するように訓練されてきたでしょう。Viのキーバインディングの大部分は、hjkl移動コマンドを含むこの事実に基づいて設計されています。

個人的に私は実際に両方を使用しています。テキストの大きなセクションをアクティブに編集するときはhjklを使用し、ログファイルをスクロールするときは矢印キーを使用します(ファイル全体でスポット編集を行うときは|、g、および/)。これはたまたま私にとってうまくいくものであり、このような場合、それは本当に重要なことです。


2

昔、多くの端末には矢印キーがなかったか、4つすべてがありませんでした。通常、ナビゲーションを必要とするソフトウェアシステムは、矢印キーに依存せずに、ある種のナビゲーションアプローチを提供し、viのhjklは標準的な例です。(もう1つの古典的な例は、WordStarの^ E- ^ S- ^ X- ^ Dです。)キーボードナビゲーションのユーティリティがますます明らかになるにつれて、新しい端末に矢印キーが付属するようになり、ソフトウェアシステムはしばしばこれらを古い方法にマッピングしましたナビゲーション。しかし、これはある種の移植性の懸念をもたらしました。学校で訓練された子供たちが、矢印キーのような派手な新しい機能を頼りにしようとするなら、考えは、彼らが-かつて一般的-矢印キーのないキーボード。

したがって、基本的なコンピューティングのコースの教師は、雇用可能性を最大化するために、最も一般的な分母を使用することを学ぶよう生徒に慎重に警告し始めました。そして、この慣行は、かつてあったかもしれないどんな理由でも長く生き続けてきました。

viの最新の実装では、hjklを好む主な理由は、矢印キーがある場所に手を動かすよりも、既に手元にあるキーを使用する方が少し速いことです。もちろん、手のコンテキスト切り替えを回避することの欠点は、viのコンテキスト切り替えを実行する必要がある場合があることです。現在、人間がタイピングの速度によって非常にまれになっている場合、どちらを行うかは個人的な好みの問題であり、矢印キーを使用することに本質的に悪いことはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.