web-dev-qa-db-ja.com

Vimを学ぶことの利点は何ですか?

プログラマーとして、私はキーボードに多くの時間を費やし、過去12年間、多かれ少なかれそれをしてきました。私がこれまでずっと慣れていなかったことがあるとすれば、それは私がコーディング中に経験するこれらの厄介でほとんど無意識の一定のマイクロ割り込みです。最も一般的なコード編集作業のためです。別の行から(あるいは同じ行でも)単純にコピー&ペーストしたり、現在の位置から上下に1または2行移動したりするには、入力しすぎるか、矢印キーを使用する必要があります。さらに移動したい場合はさらに悪い結果になります - マウスを使用することになります。今度はこれと同じシナリオを想像してみてください。

私はいつもVIMを学ぶことを考えていましたが、それを習得するのに必要な時間の量はいつも私が後退したいと思っています。

私はそれを学んだ人たちから聞きたいのですが、それが最終的にはあなたなしでは生きられないものの一つになってしまいます。

職場では、VS2008、C#、R#を使っていますので、コードの編集がこれまでよりもずっと速く簡単になりましたが、それでもマウスを使わなくても大丈夫だと思います。

そして、矢印キーさえもそうではありません。

469
Trap

私はviとvimを20年も使っていますが、それでも新しいことを学んでいます。

David Raynerの Best of Vim Tips サイトは優れたリストですが、vimに慣れてきたらもっと便利でしょう。

私はまた、 vi/vim tips に関するいくつかの素晴らしい情報を持っている ViEmu サイト、そして特に記事 について言及したいなぜ、ああ、なぜ、それらの小頭はviを使うのですか?アーカイブバージョン

250
Greg Hewgill

私はそれなしで暮らすことができますか?簡単に.

それは便利ですか?はい。

学習の理由

  • viはすべてのUnixシステムに存在することが保証されており、ほとんどのLinuxシステムにも存在します。そのような幅広い報道はそれを学ぶ価値があります。

  • Sudoの編集にviを使う方がはるかに速いです。

    $ Sudo vi

  • また、GMailはvi-ishコマンドを使ってメールを選択して移動させます。

あなたはマスターになる必要はありません。

ただ学ぶ

基礎:

  • コマンドモードから挿入モードに切り替える方法 i
  • 挿入モードからコマンドモードに切り替える方法 Esc
  • コマンドモードで行を移動する方法 k
  • コマンドモードで1行下に移動する方法 j
  • コマンドモードで文字を左に移動する方法 h
  • 文字を正しくナビゲートする方法 l
  • ファイル:wを保存する方法Enter (書きます)
  • 保存せずに終了する方法(コマンドモード):q!Enter
  • 元に戻す方法 u
  • やり直す方法 Ctrl+r
  • (コマンドモードで)書き込みと終了を組み合わせることができます。:wqEnter

そこから残りはちょうどあなたを速くするでしょう。

185
Trampas Kirk

vimtutor を実行しても30分しかかかりませんでした。これはvimに慣れるのに十分なものでした。それはそれの毎秒の価値がありました。

138
Сыч

もしあなたがたくさんのテキストを編集するプログラマーなら、それはA Serious Text Editorを学ぶことが重要です。どのSerious Text Editorを学ぶかはそれほど重要ではなく、編集する環境の種類によって大きく異なります。

その理由は、これらのエディタは、あなたがたくさんすることになる種類のタスクを実行するために非常に最適化されているからです。たとえば、各行の末尾に同じテキストを追加することを検討してください。これはA Serious Text Editorでは自明のことではありませんが、それ以外はばかげて面倒です。

A)それはあなたが遭遇するほとんどすべてのUnix上で利用可能であること、そしてB)あなたの指がホーム行から出ることはめったにないことを意味します。 。巨大ファイルを編集する場合でも、通常は非常に高速で軽量です。

しかしながら、たくさんの選択肢があります。 Emacsはもちろん最も一般的な例です。実際に掘り下げてみると、単なる高度なテキストエディタではありません。私はvim/gvimを何年も使ってきた個人的にはとてもうれしい TextMate ユーザーです。

これらのいずれかに切り替えることへのトリックは、それらが意図された方法でそれらを使用することをあなた自身に強いることです。たとえば、vimでは、マルチステッププロセスのすべてのステップを手動で実行している場合、または矢印キーやマウスを使用している場合は、おそらくそれを実行するより良い方法があります。あなたがしていることをやめて調べてください。

あなたが他に何もしなければ、vimとEmacsの両方のための基本的なナビゲーションコントロールを学びます。たとえば、Mac OS、ほとんどのUNIXシェル、Eclipseなどのテキスト入力フィールドでEmacsスタイルのコントロールを使用できます。vimスタイルのコントロールは、 less ( 1)コマンド、on スラッシュドット 、on gmail など.

楽しむ!

69
Ryan Bright

間違いなく努力する価値があります。

Vi(m)を使用する人があなたに話す理由は1つあり、他の2人は決して言及しないようです。

明らかなものは次のとおりです。

  1. viは、ユビキタスで信じられないほどパワフルであり、一度学習することで、キーボードを備えたほとんどすべてのコンピューターでその能力を発揮することができます。

そして、これらはVimを学ぶあまり知られていない理由です:

  1. それは、あなたがそうなると思うほどの努力の半分ではありません。 Vim tutor once(シェルでvimtutorを実行するか、Windowsで[スタート]メニューの[Vim]フォルダーから実行します)。 、そしてそこからすべて下り坂です。私は、仕事でVimを使用できるレベルに達しましたが、1週間未満の昼食時間以内に目立った生産性の打撃を受けることはありませんでした。

  2. それはfun!テキストの編集は、今ではgameのようなものです。私はそれを積極的に楽しんでいます。それについて考えると、それはかなりばかげています。

Vimを学ばない2つの理由もあります。

  1. それは中毒性があり、コンピューティングでallVimコマンドを使用し、できないときはいつでも呪いを使いたいと思うでしょう。幸いなことに、少なくともいくつかの状況では、 ways取得するaroundthis があります。

  2. 繰り返しますが、中毒性があり、実際にusingVimから生産性を失うことはありませんが、 Vimエクスペリエンスをさらに向上させ、スタックオーバーフローで Vimタグ を読み取ります。

36
Rich

それは間違いなくvimかemacsを学ぶ価値があります。タッチタイプを学ぶことも価値があります。どちらの場合も理由は同じです。あなたの思考は、コードを画面に表示するという機械的プロセスによって中断されることはもうありません

始め方については、ちょっと飛び込んですべてのものにvimを使い始めてください。

P.S emacs-vs-viに関する議論は無限大です。私は26年間emacsを使ってきました。今日から始めたら、(a)それが良くなったこと、(b)修飾キーが少なくなったこと(Ctl-Alt-V、だれでも)、そしてvimユーザーがはるかに少ないタイピングの害を受けるように思われるので.

32
Norman Ramsey

16個のキーだけの意味を学ぶことでvimから良い機能を得ることができます:ijkdbw9:q!%s/nNEsc。あなたはi:wqだけで裸の骨をすることができますEsc

知っておく必要がある最初の2つのキーは以下のとおりです。 Esc コマンドモード(起動するモード)に移動し、iは挿入モード(通常の入力)に移動します。


節約するには

  1. タイピングモードから抜け出す(Esc
  2. コロンを入力してください:
  3. 次に小文字のwを入力します Enter

保存して終了するには

  1. タイピングモードから抜け出す(Esc
  2. コロンを入力してください:
  3. 次に小文字のwqを入力します Enter

非保存強制終了するには

  1. タイピングモードから抜け出す(Esc
  2. コロンを入力してください:
  3. 次に小文字のq!を入力します Enter

詳細については、コマンドラインでvimtutorを実行してください。それは中くらいの長さで、体系的なレッスンです。

iを超えて Esc:あなたはjkwbd3:%s/nNだけでいくつかのMS Wordの機能を複製したり凌駕することができます。

  1. bはWordを返します(Ctrl+
  2. wはWordを進めますCtrl+
  3. 9wは9つの単語を進めます
  4. dbは前のWordを削除します(Ctrl+Backspace
  5. d3bは先行する3つの単語を削除します
  6. 9jは9行下に移動します
  7. / ornithopter Enter 次の単語 "ornithopter"のインスタンスに移動し、次にnNにそれぞれ前後の "ornithopter"を表示します。
  8. :%s/confounded/dangfangled/ Enter すべての "confounded"を "dangfangled"に置き換えます(MS Wordのfind and replace allのように)

それらのどれもが「コマンド」モードで実行されるべきです(Esc)モードではありません(i)。

17
isomorphismes

私は最近VIMに切り替えました、そしてそれはそれが価値があると思います。 「何かを終わらせる」必要がある場合は、常に挿入モードのままにすることができます。そこでは、vimは(ほとんど)通常のテキストエディタのようなものです。

私は気にする必要がなかったこと、矢印キーに手を伸ばすことのようなものが、今では間違っていて多すぎる努力を感じていることに気づきました。それは間違いなく私の手の動きとマウスの使用量を減少させた、それは人間工学と生産性の両方に良いです

16
Gabe Moothart

それはあなたがVIMでやりたいことによります。多くの人がそれなしでは生きられないからといってそれを学ぶことは意味がありません。

私がUNIX環境で多く働いていたとき、私はそれなしでは生きられませんでした。 VIMがUNIXマシンにインストールされていなくても、少なくともviを使うことができます。あなたがいつもそれを頼りにすることができました - たとえ機械があなたのものでないとしても(顧客からのものであっても)。

今私はC#でプログラムし、主にWindows環境で動作します。 PCにVIMをインストールしましたが、必要ありません。

あなたが本当にVIMを必要としているか、そしてそれがあなたの「仕事の流れ」の中であなたを支えているかどうかを評価しなさい。やってみよう。それで遊びます。あなたがそれを必要と思うならば、それに固執してください...学習曲線は非常に急です。

12
Theo Lenndorff

私がしなければならなかったので、私はviを学びました。

私の狂った先生は私たちにAIXシステムへの端末を使ってCでプログラムすることを学ぶことを強いました。

それは本当の痛みでしたが、それだけの価値があります。

今日、私はviを素早い編集や小さなプログラムのためだけに使います。

プロジェクトに行かなければならないときは、むしろIDEを使います。私の場合、IntelliJのアイデアは非常に優れています。マウスをつかむことなく何時間もコーディングできるからです。

私はVS2008がどれほどのショートカットを持っているかわかりませんが、それらがEclipseと同じくらい発見可能であるならば、私はあなたがviのために問題があると思います。

IDEの外側のコードを編集しないで、IDEに適切なショートカットがある場合は、それらを習得してから、viを学習してください。

:)

10
OscarRyz

私は25年以上vi/vimを使ってきました。あなたがすでに何らかのコマンドラインエディタを知っているならば、多分あなたはvi/vimを学ぶ必要はないでしょう。しかし、他のコマンドラインエディタをあまりよく知らないのであれば、学ぶ価値があります。少しの努力でvi/vimで生産的になるのはとても簡単です。

9
Craig S

私はVIMをほとんど独占的に使用しています。

私はVimを編集用に、VS Editorをデバッグ用に使用していました。これはおそらくちょっとクレイジーに思えるかもしれませんが、私はViパラダイム(マクロ、ホームキーベースの編集など)が私の生産性を非常に高めていることを発見しました。

Viemu のおかげで、これ以上切り替える必要はありません。それはまだ完璧な解決策ではありません(コード補完はネイティブのvimほど洗練されていないことが多く、マクロの記録は完璧ではありません)が、絶えず行ったり来たりするよりはずっといいです。

Vimの学習曲線はおそらく誇張されています。一度それに入ると、それはかなり直感的だと思います。

6
RedBlueThing

私の仕事は私にウイルスを拾うことを強いました、そしてそれはすぐに第二の性質になりました。今私の不満はVimのエミュレーションやプラグインを持っていないIDEのものです。私はescキーがvimの外で私の敵になったことに気づきます。

私はVisual Studio内でvi用のエミュレータをいくつか見つけました。

http://code.google.com/p/vim-visual-studio/

5
Courtland

まずvi(m)の知識が豊富であれば、seige環境下のサーバー上で設定ファイルを緊急に編集するために煩わしい時間を節約できます。それは遅れたssh接続に耐えることができます。

あなたが人間工学的のキーボードでそれを効果的に使用するならば、vimの入力方法は別としての管理者用のものは手根管トンネルに対するあなたの最高の防御になるでしょう。

Vimのポイントを確認する最良の方法は、自宅でさりげないプロジェクトを開始し、マウスを取り外して矢印キーをテープで固定することです。

そして助けを読む

4
michael

Vi/vimの2つの利点:

  • とても軽量です

  • ほとんどすべての* NIXシステムにインストールされています。

4
Colin

私はリモートコンピュータで非常に大きなLinuxプロジェクトを保守しています。 Eclipseやそれに似たGTKベースのIDEを使用するという選択はありません。私は3年間そこで働いています。そして私はこのプロジェクトのためだけに私のVIMを設定しました。それでも微調整。

ソース管理、SQL、デバッグ、コンパイル、ブラウジング - 本当に1Gbのソースコードを使ったブラウジング - Vimから何でもできるようになった.

Visual StudioまたはEclipseはこれらすべてを処理できませんでした。そして私が選択したならば、私はVimを他のエディタかIDEに変えるでしょう。

4
Mykola Golubyev

私はVimを学びました。それほど努力ではありませんでした。今私は絶対にci "ci(cw V:s/from/to/gが大好きです

4
thomasrutter

はい、間違いなく少なくとも「vi」と「vim」を学ぶために時間をかけてください。それはとてもうまくいっています。

あなたがあなたのためにインストール機能を持​​っていない顧客のUnix/Linux/Macシステムに直面しているとき、あなたは決して立ち往生することは決してないでしょう。 Windows上でさえ(あなたがインストール機能を持​​っているなら)、 'Vim'は無料で簡単にインストールできます。 (あなたの学習曲線をUltraEditのようなものに純粋に投資するのとは対照的に、優れたエディタは常にあなたのために利用可能ではないかもしれませんが...)。

Learning viは 'sed'のような他のツールや一般的な正規表現の習得のためにあなたをセットアップすることができます。

あなたが適切なオタクになりたいのであればプラスあなたは単に 'vi/m'を知る必要があるだけで、あなたは偽物のように見えるでしょう;-)

3
monojohnny

私はvimが間違いなく学ぶ価値があると思います。私は去年の夏それを拾い上げました、そしてそれは今やほぼすべてのもののための私の選択のエディターです(Javaはストレッチですが、私が広範囲の分析サポートを必要としないときに実行可能です)。誰もがすでに確認しているように、それは素晴らしく効率的なツールです。

その価値があるために、私は グラフィカルチュートリアル からvimの機能のほんの少しのサブセット(1日か2日かかった)だけを学んだ。 、そしてここで(長い読み)、検索と置換機能、そして私は夢中になっていました。私はそれ以来物事を学んだが、私の余暇に。この時点で学習曲線は平らになっていると思いますが、それから私はそれをかなり頻繁に使っていて、他の人たちにも囲まれていました。

3
Ellery Newcomer

私はあなたと同じ状況にいます、そしてVimの初心者として、私はもともとそれを少し困難に感じていました - 学習曲線は急勾配に見えます。私がたった数時間で学んだことから、私はそれなしでは生きていけないような気がします。

ここで a 少ないリンク 私はVimのスクリーンキャストで役に立つことを教えてくれました。

最後のリンクでBram Moolenaar(Vimの慈悲深い独裁者)が出したアドバイスのほんの少しは、すべてのコマンドや機能を学ぼうとするのは非効率的だということです。非常にうまくいっている、それをより効率的にしそしてそれを習慣にする方法を探しなさい。

3
Andy

あなたがすでに使っているエディタに満足していないかもしれないので、あなたはvimを学びたいと思うかもしれません。

クールだと多くの人が言うので、あなたはvimを学びたいと思うかもしれません。この質問に対する回答がいくつあるかを見てください。

私はウイルスを学ぶもう一つの理由を提供します。それはその文書の品質と完全性に関して評判があります。そのため、ヘルプクエリに適切なキーワードを追加するとすぐに、ヘルプシステムで質問に対する回答の大部分が見つかります。

2
Anonymous

Vi(m)を早く習得するには、まずデザイン全体を理解する必要があります。 Vimにはたくさんのカーソル移動コマンドがあります。いくつかチェックしてください(Xは文字、#は数字です)。

矢印を入力します。0 $ w W b BコントロールコントロールコントロールH M L f X FX t X TX、;。 %gg G n N m X 'X' '

それ以上に列挙するのは退屈でしょう。 4jが4行上に移動するように、これらの多くはコマンドの前のカウントをサポートします。

さて、デザインに戻って、削除のためにdのようなコマンドを入力し、その後にカーソルの移動を続けます。コマンドはカーソル位置から移動の終わりまでのテキストに適用されます。たとえば、Hは画面の上部に移動し、dHは画面の上部に削除され、cHは画面の上部に変更(置換)されます。

このデザインは非常に強力です。それはまたあなたが学ぶ必要があることを減らすか、または組織します。最終的な最初のステップは、いくつかのカーソル移動コマンドを学ぶことです。最初に8、10と言ってください。それであなたはほとんど終わりました。

2
Juan Lanus

Vimは、これまでに述べられてきたことを部分的に要約することを学ぶ価値があることは間違いありません。

  • Vi/VimはほとんどのUNIXシステムで見られます。
  • Vimはキーボードから手を離さずに簡単にコーディングすることを可能にします。
  • あなたがUNIXベースのシステムで何かを設定することを計画しているなら、あなたはかなりの数の設定ファイルを編集することになるでしょう、それであなたはvimが最も良いものの1つです。
  • VimはほとんどすべてのOS用のバイナリをコンパイルしています。 「[insert OS]の代わりにtextmateを使う必要があります」と投稿する必要はありません。代わりにVimを使うでしょう。
  • エディタ内のcvs diffなど、たくさんの機能を追加するための優れたプラグインがたくさんありますが、これらの中にはかなりの変更を必要とするものがあります。

また、Vimのキーバインディングが好きな場合は、エディタに単純なコマンド用のvimバインディングを含めるIDEもあります。 Komodo Edit .

Vimの学習を手助けするには、端末に 'vimtutor'と入力して指示に従ってください。特に良い本もあります Hacking Vim

2
Jamie

コマンドの数に怖がらないでください。私はせいぜい2ダース以上使用した人には会いません。コードを考えるときはテキストを考えるときに、マウスを考えることに移ることは私を困惑させるので、私はそれが不可欠であると思います。大きなトリックは、一度に少しずつ習得することです。また、やり直すことを躊躇しないでください。アンドゥ機能は、その動作を調査するのに最適です。

また、深く理解していれば、vimはスクリプト可能です。可能性は文字通り無限です。

(はい、これはすべてemacsにも当てはまります)

2
Kim Reece

私が自分のテキストパッドとecpliseの世界に満足していたのは、Linuxで稼働しているサーバーで作業を始めなければならなかったためです。リモートスクリプトと設定ファイルの設定が必要でした。

最初は大変でしたが、今では簡単にサーバーをセットアップして調整することができます。

2
Cesar

私もviやvimの学習を何年も延期しました。実際のところ、私はいつも指エアロビクスをやっているように見えた "viの男"をからかうために使用します。それから、私が私の主なOSとしてWindowsからLinuxに移ったとき、私はvimにもっと慣れなければなりませんでした。それは習熟曲線でした、そしてそれはまだあります。毎日9年間vimを使用してきた後も、私はまだ自分自身が新しくてより速いもののやり方を学んでいるのに気づきます。私が「フィンガーエアロビクス」と考えるために使用することは、実際には生産的であるための非常に効率的な方法であることがわかった。私は今、vimの前に行ったことよりもはるかに少ない時間と労力で、はるかに多くのコード開発を行うことができます。そして私があなたがそれを必要とするときあなたがいつもそれを持っているようにあなたがvimがそこの外のあらゆるプラットホームで動くのをあなたが知っていると確信するように。また、GUIが好きなら、ほとんどのプラットフォーム用のGUIバージョンがあります。個人的には、マウスのように、メニューバーやスクロールバーなどが編集ウィンドウに散らばって表示されるのを避けたいのです。

もしあなたがvimに旋風を与えることを決心したなら、O'Reillyの "vi Editor Pocket Reference"という本を強くお勧めします。それは安くて、あなたがただvi(vim)を学んでいるのであれば素晴らしいです。本格的なvimの本も良いですが、ポケット参照はあなたにすばやく生産的であるためにあなたにすべての基本を与えます。

2
user71918

何か新しいことを学ぶことはいつも努力の価値がある、私見。私はあなたがチートシートをプリントアウトしてそれを日中および日中使用することを自分自身に強いることを勧めます。

2
switchmode

私はそれがvimを学ぶための時間と努力に間違いない価値があると思います。私にとっては、テキストの入力やナビゲートが非常に効率的になるので、emacsやctrl/shift/alt/meta keyの組み合わせに戻ることを想像するのは困難です。

Vimのすべての派手な機能に怯えないでください。十分に使用した後は、どのコマンドを最もよく使用するかを判断し、どのことを忘れることができるかを判断します。

2
Andy White

Unixシステム上でのVimの驚くほどの偏在性、そして一般的にはViクローンのさらにいっそうの偏在性は、学ぶ価値があるほど十分です。

それに加えて、全体のViスタイルの考え方は私が本当に私がもう少し生産的にしたと思う何かです。コマンドモードや挿入モードのようなモードに慣れていない人にとっては、テキストを挿入するためだけにモードを入力しなければならないことは少し過剰に思えます。しかし、数ヶ月間Vimを使用してきて、かなりの数のヒントやコツを学んだとき、Vimはそれだけの価値があると思われる資産のようです。

もちろん、Emacsの群衆はEmacsスタイルの考え方について同じことを言っていますが、Vimがより単純で私のために仕事をしたので私はEmacsを学ぶことをあきらめました。

2
James Mishra

私はそれが非常に熟練している誰かがめちゃくちゃ速いクリップで編集をするためにナビゲートするのを見た後にviが好きであることを学びました。あなたは本当にそれを使って素早くコーディングすることができます。私がそれを好むもう一つの理由は時々私がIDEの周りにマウスを動かすことがしばらくして本当に私の手を傷つけて、viがいい変化を提供するのを見つけるということです。他の人が言ったようにそれはまたほとんど常にunixシステムで利用可能であり、お粗末な接続の上でさえうまく機能します。

私が言及していないことの一つは、viを知っていることには、一部の分野では「オタクの信用」という追加の利点があることです。新しいプログラマーがファイルを変更するためにneditを起動するのを目にしたときに笑う人が少なくとも2、3人いると思います。

2
Dana Robinson

いいえ。Vimを学ぶことは努力以上の価値があります。

2
ojblass

学習への投資VIM(私の好み)またはEMACSは成果を上げます。

Derek Wyattのサイトにアクセスして、VIM家庭教師を調べ、Steve Oualine PDF本をチェックアウトすることをお勧めします。

Vimは、私が使った他のエディタよりも早く動き回って編集できるようにします。私の仕事用IDEは、できることにかなり制限があり、通常は特定の環境に専念しています。 IDEをもう一度見直す必要があるタスクがいくつかあります(IDEのコンパイル済み部分であるデバッガなど)。

1
modal

個人的には

私はこれらの端末のテキストエディタの多くは時々不可能であると思います。時間を取って投資するのですか。絶対に!私はIDEに沿って一つを学び続けるでしょう。もちろん結局のところ、それは本当に好みに帰着します。

1
Rev316

はい:将来使用しないで、今後IDEを使用する予定がない場合。たとえIDEを使ったとしても、多くのことをするためにそれに戻っていることに気づくでしょう。スクリプトを書くのであれば、500行を個別に編集するのではなく、複雑なタスクを実行します(少し難解ですが、一度ピックアップすると理解しやすくなります)。最初は難しいと感じましたが、後になって私は大いに助かりました。最高のIDEの編集者でさえもvimの力に欠けるでしょう。 VimはCVS、SVN、make、デバッガなどでうまく動作します。

いいえ:EclipseやNetbeansのようなIDEを使い続けるつもりならば。あるいは、Kateのような編集者があなたには十分であることがわかった場合。 Infact Kate、Notepad ++、またはjEditには、vimには欠けている可能性のあるGUIと機能があります。例えばKateのシンボルビューアまたはNotepad ++の巨大なメニューバー。

1
Xolve