Vimでより良くなる[終了]


116

私はかなり長い間Vimを使用してきましたが、ほとんどの場合挿入モードを使用するレベルにあり、矢印キーを使用して移動します(!)。

私の素敵なエディター、特にナビゲーション(特にコード)、コピーと貼り付け、その他の既存のコードの操作に関して、私は最高の機能を引き出せていないように思います。(私は複雑な検索/置換パターンにかなり慣れていますが)。

  • もっと学習するにはどうすればよいですか?
  • どのようなリソースが推奨されますか?

8
移動に矢印キーを使用することの何が問題になっていますか?それが彼らの使命です
Vilx- 2010年

39
@Vilx、コンピューターアクションゲームでも矢印キー移動しないでください!テキストエディタは
言うまでもなく

6
@Vilx:キーボードの矢印キーは、どんな種類のナビゲーションでもひどく不便な場所にあります。そのため、ViMの標準ではHJKLを使用します。これは、一人称ゲームでWASDを使用するのと同じです。
Vousden、2010年

4
WASDがあるのは、右手がマウスを制御するため、左手で使用するほうが簡単だからです。左利きの人は矢印を使います。また、HJKLは直感に反しています。どちらがどこに移動しますか?
Vilx- 2010年

8
まあ、それは「矢印vs hjkl」ではなく、「カーソル移動vsテキストオブジェクト」ではないと思います。
Matteo Riva

回答:


78

「なぜ、ああ、なぜ、それらの#?@!頭がviを使用するのですか?」「Vimの方法」、特にVimの最も定義的な機能の1つであるテキストオブジェクトについての素晴らしい紹介です。


3
おまけとして、素晴らしいグラフィカルなチートシートがあります(記事の最後にリンクされています)。
Csaba_H 2010年

そのリンクにアクセスできないようです。カールもありません。誰か確認できますか?
H.Rabiee 2013

66

ここでは、次に何を学ぶべきかがわかるすばらしいスクリーンキャストをいくつか紹介します。中級および上級トピックのビデオもありますが、初心者の方が実際に最も重要です。

また、停滞していて「Vimのやり方」を実際に学んでいないと感じたとき、私は通常モードと挿入モードの両方で矢印キーを無効にすることを選びました。これにより、ESCを使用してどこかに移動することが強制され、よりVimのように考えることができます。最終的に、挿入モードで矢印キーを再び有効にしましたが、ほとんど使用しませんでした。ほとんどの場合、回避するにはより良い方法があります。

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

そして特に

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
私は矢印キーを無効にするアイデアが好きです、それは自分にそれらを使用することをやめるように強制する良い方法です。
Idan K 2010

1
それは私にとってはとてもうまくいきましたが、最初の数日は非常にイライラしました。ただし、慣れてきたら、挿入モードであまりにも多くの動きをする癖をつけたら、imapを再度有効にすることをお勧めします。
Sarah

これらのスクリーンキャストは素晴らしかった。ご指摘ありがとうございます。
Mert Nuhoglu

2
矢印キーを無効にすることは素晴らしいアイデアです、私は今それをやっています。
gorsky

矢印キーを無効にするのは、矢印キーがhjklよりも邪魔にならないという前提に基づいています。より良いキーボードを入手することです。私はKinesis Advantageを使用しています。標準のキーボードを使用していても、dvorakを使用しているため、hjklはまだ意味がありません。私が言いたいのは、要点は「矢印キーを使用しない」ではなく、「最も効率的な手段を使用し、学習曲線のために効率の向上を妨げないこと」です。
限定的な償い

23
  1. vimtutorコマンドラインでタイプする
  2. vimに移動し、:helpまたは <F1>
  3. メーリングリストを購読する
  4. 公式のvimドキュメント

1
私が考慮していなかったことの1つは、メーリングリストに参加することでした:今すぐ完了:)
James

1
他の人の問題を解決することにより、助けを得てvimスキルを練習するのに良い場所です。
ghostdog74 2010年

1
vimtutorの+1-vimを筋肉の記憶に取り込む優れた方法。
Hamish Downer 2010年

16

さらに2つのヒント:

  • すべて(メール、Webフォーム、コードなど)を編集するにはVimを使用します。何か遅いと感じるときは、おそらくそれを行うためのより速い方法があるでしょう。:helpgrepあなたの友だちです。

  • 頭の上http://vimgolf.com/と競合しています。私はその方法で多くのヒントとコツを学びました。[ 免責事項VimGolfでの競技中に「行方不明になった」長期間、責任は負いません]


2
きちんと、私はvimgolfについて知りませんでした!
James

1
@Autopulated:免責事項を追加しました。
Johnsyweb

2
@Johnsyweb:本当にすべてにvimを使用できるようにしたいのですが、どうやって?すべてのWebフォーム内で適切なvimクローンを取得することは理想的です-私が見つけたすべてのブラウザーアドオンは通常、vim機能の小さなランダムなサブセットのみを実装し、ブラウザーがまだ必要であるという事実に対応するためにキーバインディングを再マップするためです特定のキーマッピングへのアクセス。
Conrad.Dean


10

これは私がVim(および他の多くのこと)を学んだ方法です。とても簡単です。

ヘルプドキュメントを参照して、いつも何かをするためのコマンドを見つけてください。たとえば、単語全体を削除します。これを覚えておいてください。

さて、次に「xxxxx」を押して単語を削除することに気づいたら、停止して元に戻し、新しいコマンドを使用してください。必要に応じて調べてください。したがって、「xxxxxx」を押すのではなく、戻って「dw」を押します。

これを何度も繰り返します。最初は遅くなりますが、最終的には固定されます。

そのコマンドを取得したら、上部から開始します。いつも行うアクションの別のコマンドを見つける...

この方法で新しいコマンドとテクニックをどれだけ速く取り込めるかは、驚くでしょう。


7

提案されているように矢印キーの再マッピング/無効化は、矢印キーを使用しないように強制するための優れた方法です。

考慮すべきもう1つのこと:キーボードでEscを押すことがまったく不快な場合は、OSでCaps LockをEscに再マッピングすることをお勧めします。Escは私のKBでぎこちないリーチであり、それが挿入モードを維持するもう1つの障害だったので、私にとってこれは非常に役立つ手順でした(外に出すのが難しいため)。Caps LockにEscがあると、リーチが狭くなり、挿入モードの内外へのジャンプが非常に高速になります。

Vimで高度なものを学習するための最適なリソースは:helpですが、基本を理解するには、それを実行するだけです。何よりも筋肉の記憶です。あなたはあなたが検索を知っていると言います。ナビゲーションツールとして意識的に使用してください。検索[/、?]およびインライン文字ベースの検索[f、F、t、T]は、Vimの主要なナビゲーションツールの一部です。それらを使用してください。無効化されたカーソルキーと組み合わせると、すぐに筋肉の記憶だけをナビゲートできます。

テキストオブジェクト。エディターの最も優れた機能の1つです。これは、すぐに意識的に練習するもう1つのことです。「yiw」、「dit」などのようなものは非常に強力で高速です。それらを単独で学習して使用すると、Vimユーザーのような気分になります。

テキストオブジェクトと基本的なナビゲーションを取得したら、:helpを定期的に読んで学習し、すばらしいプラグインをWebで探す作業に移りましょう。真剣に、あなたは何年もVimを使うことができて、「あはは!」あなたが知らなかった:helpのあいまいな一口に偶然偶然出会った瞬間。


Caps Lockに再マッピングする代わりに、Ctrl-Cをお勧めします。これは入力が簡単で、Linuxユーザーにはなじみ深いものです。
BandGap

6

このスレッドを参照してください:Vimで最も生産的なショートカットは何ですか?

特に最初の答え。


3
「最初の」回答の著者として、私は、すべての公平を期して、編集者の習熟度を全体的に向上させるための最良のガイドであるとは限らないと述べなければなりません。テキスト、画面/端末、およびエディター自体の環境を操作する方法を表現するための言語としてそれを考えるときにviで何ができるかについての多くの根拠をカバーしています。しかし、そこにあるものの多くはかなり進んでいます。
ジム・デニス

1
私はその答えを読むことからあまり多くを学んでいないので、ドキュメンテーションを読むことでこれまで学んだことはないと思います!
James


3

もっと学習するにはどうすればよいですか?

vimマニュアルを完全に読みます(タイプ:h;そこから参照できます)。これは、すべての動きとコマンドを知る方法です。これは、すでに基本を知っていて、改善したい場合に最も役立ちます。

どのようなリソースが推奨されますか?

vim.org、最も人気のあるvimスクリプトを調べます。興味のあるものが見つかったら、それらのソースをチェックしてください。または、それらをインストールしてお楽しみください。このサイトには、さまざまな言語でソースコードを閲覧するのに役立つスクリプトへのリンクが多数含まれています。そしてそれらをそこで見つけるのは比較的簡単です。

StackOverflow.comも役に立ちます


3

私は甥が学ぶのを助けるためにこのゲームを作りましたが、それはFirefoxとChromeでのみ動作します>。< http://kikuchiyo.org

現時点では、移動と挿入モードへの移行のみを扱います。ベータ版では、ライトセーバーで敵を攻撃できます。左に「i」、右に「a」:P

Vimの学習を続けてください。努力する価値はあります。

:)


今、それは本当に良いアイデアです!
ジェームズ

更新:サイトは現在kikuchiyos-vim-game.herokuapp.comにあります。
kikuchiyo 2013


2

矢印キーを使って移動します(!)。

これに問題はありません。

率直に言って、vimと矢印キーのないキーボードを使用しなければならない確率はどれくらいですか?

ほとんどの人はvimを使用します。それは、(矢印キーを使用しないなどの)エリート主義者ではなく、仕事を行うためです(まあ、彼らが仕事をするときのレベルに達したためです)。

vimの知識を向上させるためのいくつかのアドバイス:

  • ランダムな場所でvimヘルプを定期的に開き、ランダムな個別の機能について読んでください。数分かかります。今後X年間はこの機能を使用しない可能性があります。しかし、運が良ければ、その機能に関する知識を応用して特定のタスクを実行できることがわかるでしょう。もう一度ヘルプを開いて、記憶を更新します。機能を実際に数回使用した後、それは固執します。この時点で、vimの知識が向上します。
  • :helpgrepを使用して、ドキュメントのランダムな場所を掘り下げます。何かをする必要があり、それを説明する場所がドキュメントで見つかった場合は、そこで停止しないでください。ドキュメントスニペットをもう一度お読みください。キーワードを見つけます。キーワードごとに、:helpgrepキーワードを使用して、vimドキュメントの他の部分との論理リンクを見つけます。

私はドキュメントを読むと、私が持っている問題は、私は、私は実際にはなく、非常に効果的なことを学ばない見つけることだと思いやってそれらを。
James

1
カーソルキーを使用してカーソルを近距離に移動すると、[h]、[j]、[k]、[l]キーを使用するのと同じくらい効率的です。直線的なカーソルの動きを使用すると、数列または数行を超える動きをすることになります。通常、あなたが探しているものについて考え、それをviで/または?を使用して直接表現するのが最善です。コマンドと正規表現。fooの近くのテキストの最後のビット?G?foo [Enter](6つのキーストローク)。最初の行は「bar ...何か..強打しますか?1G / bar。* bang [Enter](約12回のキーストローク)...など」
Jim Dennis

矢印キーは、おそらくマウスに手を伸ばすよりも効率的ですが、一連の文字を入力した後でホーム行キーを使用して手を再グループ化して入力する場合、基本的な移動キーの1つを入力する必要はありません。 「j」、「k」、「l」、および「h」キーを取得するためのわずかに左方向の「twitch」。Vimのやり方でVimを行う場合、手は常に矢印キーよりもホーム行キーに近づける必要があります。練習を続けると、それが得られます。:)
kikuchiyo


2

矢印キーの使用を停止した方法では無効になりませんでしたが(挿入モードでは引き続き使用します)、右に移動する場合はlキーである小指を使用し、左に移動する人差し指のhキー&kキーを指で持ち上げる(「鳴らす」)&キーを「下に引く」j

つまり、手にある4桁の最初の数字(親指は忘れてください)は、1番目が左端、Pinkyが右端です。薬指で中指を鳴らす場合のように、「リングアップ」という表現を使用します。中指はどこにも行くところがありません。

また、キーの名前(h、j、k、l)を忘れてしまうことが多くあります。私が見つけた方法でそれらを記憶するための良いニーモニックはなく、それらのキーを使用するマッピングもあまりありません。





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