24

これは少し挑発的に聞こえるかもしれませんが、実際には本当の問題です。トーンが気に入らない場合は自由に編集してください。

現在、10 年前のような短い経験から vi を理解している限りでは、vi は、スクロールバーが発明される前に作成された画面の下部に編集可能な 1 行があり、この制限を克服するためのクレイジーなショートカットを備えた原始的なテキスト エディターです。

通常の VS.NET エディタよりも生産性を高める方法を誰か説明してもらえますか? さらに、VS.NET を古代の vi に変えると思われる viEmu を使用したいと思う人がいるでしょうか?

私はそれを試してみたいと思っていますが、学習曲線を克服するための動機が必要です.

4

11 に答える 11

96

viEmuページ自体には、あなたの質問に答えるのに役立つかもしれないかなり良い記事があります。ナットヘッドはviを使用しますか?

私はここ数ヶ月、vimを「適切に」使用することを自分自身に教えようとしてきましたが、他のエディターは力不足で不格好に見えるため、今ではほとんど使用できません。ランダムな例として、次のようなコード行があるとします。

$welcomeMessage = "Welcome to SiteName!"; // shows at the top of homepage

通常のエディターでは、文字列をどのように変更しますか?おそらく、マウスに手を伸ばして慎重に選択するか、カーソルを最初の引用符の内側に移動し、Shiftキーと右矢印を押して終了引用符に到達する必要があります。

vimでは、カーソルを引用符の間のどこかにci"置いて入力すると、引用符内のすべてが消去され、挿入モードになり、必要な新しい値を入力できるようになります。私の手は、通常のタイピング位置から移動する必要さえありませんでした。

このようなことはたくさんあるので、エディターを使ってそれがどれほど強力であるかを理解するには、本当にしばらく時間を費やす必要があると思います。最初はとても遅くて使いにくいので、多くの人が短時間試して「これはばかげている、すべてがずっと難しい」と思うのですが、しばらくすると動きの観点から考え始めます。自動化が始まり、「通常の」エディターを使用するよりもはるかに高速です。私が言ったように、私は今戻ることができません。

于 2009-04-06T18:25:53.060 に答える
27

また、私はときどき vim を使用していたにもかかわらず、人々がなぜ vim をエディターとして選択するのかを理解するのに苦労しました。「なぜ?」の説明がほとんどだと思います。いくつかの重要なポイントを示していないため、失敗します。これらの点を説明するには、まず vim では主にコマンド モードでテキストを操作していることを理解する必要があります。aつまり、デフォルトでは、キーを押すことはコマンドであり、これらのコマンド ( ppend、insert 、hange などc) が挿入モードに切り替わらない限り、通常はテキストを挿入しません。これにより、マウスに触れたり、「編集ポーズ」から手を離したりすることなく、テキストを簡単にナビゲートおよび編集できます。

重要なポイントは次のとおりです。

  • Vim コマンドは、名詞、動詞、および修飾子に分けられます。
  • それらを組み合わせて編集を行います。

そして、これがvimに力を与えるものです。ポイントを説明するために、最もよく使用されるコマンドを次に示します。

  • 名詞: word、sentence、block、引用符、中括弧。
  • 動詞: cchange、iinsert、visual、delete
  • 修飾子: inside、around、till

そして、それらをどのように混合できるかを説明するには:

  • 言葉を変えたいですか?cw
  • 同じですが、単語の途中にカーソルがありますか?caw
  • 引用符内のテキストを変更しますか? ci"、引用符も変更しますか?ca"
  • 関数本体を削除しますか?di{
  • 最初のコンマまで削除しますか?dt,
  • 2 番目のコンマまで削除しますか?d2t,
  • 最初のカンマにジャンプしますか?t,
  • 単語を選択しますか?viw

また、すべてのコマンドが自然言語にうまく変換されていることにも注目してください。

  • d順序を削除wする
  • cハンジ・iインサイド{

vim では、新しい動詞、名詞、または修飾子を学習すると、既に知っているものと簡単に組み合わせることができます。つまり、基本的に 1 つのことを学ぶだけで、さまざまなことを行う方法を学ぶことができます。

もう 1 つの優れた点は、使用したコマンドを vim が記憶し、 を押すだけでシーケンスを繰り返すことができること.です。この投稿では、多くの文字を <kbd> タグで囲む必要がありました。しかし、私はそれを一度だけ行ったことがあり、その後、各文字を調べて..

そして、それは基本的に、vim のパワーを理解し、一晩で上級ユーザーになるために「取得する必要がある」ものです。

PSコンソールベースで最新のテキストエディターが必要なためにvimが気に入らない場合は、優れたエディターでvimモードもサポートするSublime Textエディターを検討することをお勧めします。

PS2。Escキーをjjとにマップすることもお勧めしますkk。これにより、作業がずっと簡単になります。

于 2014-02-07T14:23:17.067 に答える
7

「画面下部の編集可能な1行」については間違っています。ウィンドウ内のすべてのテキストは編集可能です。また、スクロール (すべてのバージョン) を行い、gvim の場合はスクロールバーを備えています。

うっかり「exモード」にしてしまったのかもしれません。これは簡単に実行でき、混乱する可能性があります。

于 2009-04-05T22:05:56.673 に答える
4

インスピレーションが必要な場合、またはVimで何をしているのかを本当に知っている人に会いたい場合は、GaryBernhardtのStringCalculator Kata In Pythonをチェックして、彼を見てください!http://vimeo.com/8569257

于 2010-05-05T16:32:34.563 に答える
4

もう 1 つの答えは、vim を使用した熟練した編集を見るとかなり明らかになるだろうと考えたので、コーディング中の基本的な動きとより高度な動きを示すこのビデオを掘り起こしました。この人は、いくつかのマークなどを使用して少しでも効率的になる可能性がありますが、アイデアが得られます.

http://www.youtube.com/watch?v=FcpQ7koECgk&feature=related

于 2009-05-01T19:47:03.817 に答える
3

viEmuのホームページでのあなたの質問に対して、彼らは長くて受け入れられる答えを持っていると思います:

もう 1 つのさらに強力な例として、'c' と 'e' で構成される 'ce' コマンドを見てみましょう。'c'hange コマンドは、次のモーション コマンドで指定された範囲を削除し、挿入モードにも入ります。'd' と同じですが、通常モードにとどまるのではなく、挿入モードに入るという違いがあります。利点は、次の (短い) 入力セッションで入力するテキストもコマンドの一部であることです。したがって、「ceHello>」を実行すると、カーソルから単語の末尾までが「Hello」に置き換えられ、「.」が「.」に置き換えられます。その後のコマンドは、まさにそのように機能します。単語の最後までを「Hello」に置き換えます。

から: http://www.viemu.com/a-why-vi-vim.html

〜半年前にviEmuをインストールしました。しかし、私はそれを使用したことがないと言わざるを得ません (おそらく強力な Linux の経験がなければ)。異質すぎ、遠すぎ、複雑すぎます。

つまり、私見viEmuにとって、これは技術的にも歴史的にも大きな挑戦ですが、開発者の 95% にとってはそれ以上のことではありません。

于 2009-04-05T21:41:18.370 に答える
1

本当にVimを試してみるべきだと思います。
10年前にViをすぐに試したとしたら、それを評価しなかったと理解できるかもしれません。一見したところ、実際にはユーザーフレンドリーではありません。実際、その真の力は、動きに慣れ始め、カスタマイズして自分のものにし始めると明らかになります。Vimに慣れたら、なぜそれを学ぶ価値があるのか​​理解できるでしょう。

于 2009-04-06T23:27:51.867 に答える
1

VS.Net の経験はありませんが、他の IDE と同じ機能を備えていると思います。

IDE でエディタのすべてのキー コマンドを学習するだけで、Vi の十分な代替手段であることがわかりました。名前の変更、インデント、書式設定、行の移動など。

したがって、VS.Net を学ばなくても Vi を生産的に使用できることを既に知っている人にとっては、大きな勝利になると思います。

しかし繰り返しになりますが、Vi には標準的な IDE エディタでは対応できない、真に難解で強力な機能がいくつかあります。

于 2009-04-05T23:01:49.847 に答える
0

私は実際、最近のデバッグにのみVSを使用しています。vim(viemuではなく本物のvim)でコーディングするのは、より良い体験です。

さて、私はお互いを使用することで生産性に違いが生じると主張するつもりはありません-結局のところ、私はほとんどの時間を問題の解決方法を見つけることに費やしています-コードを入力するのは簡単な部分です。

于 2009-04-06T18:33:06.553 に答える