質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

10回答

60317閲覧

Vimで本格的に開発している人はいるのでしょうか?

jimyo

総合スコア243

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

2グッド

15クリップ

投稿2015/09/02 03:45

編集2015/09/02 03:51

Webなどで Vim の記事を読むと「Vim大好き!おすすめのプラグインはこれでvimrcはこれ!開発捗ります!」みたいな記事をよく見るのですが、実際の職業プログラマーで大規模なプロジェクトなどでもVimで開発している人はいるのでしょうか?

小規模な個人開発や、ちょっとしたスクリプト作成、ファイルの編集で渡しもVimを使うことはありますが、本格的に開発するときはVimでは頼りないことが多く選択肢に入りません。

やはりどうしてもIDEで開発するのですが、業務でVimで開発をしている方は本当にいるのでしょうか?

Goripon, Yuduki_dev👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答10

0

私はvimを使い始めて約12年、vimスクリプトで自分が欲しいものはほぼ作れますし、かなり設定を作りこんでいます。

いるかいないかで言えばたくさんいると思います。私の場合、PHPで4〜5万行くらいのWebサイトを作ったのが一番大きかったでしょうか。PHPはデバッガがなくても苦にならないんですよね。printfデバッグで十分。PHP関数は全部辞書(:h 'dict')に書いて、cronで10分おきに自分のソースにctagsを回していました。関数名をタイプするとその引数をecho表示するスクリプトも自作していました。これで何も不便は感じませんでした。

しかしC++やC#で書くときは迷わずIDEを使います。一番の差はインテリセンスでしょうかね。
クラスライブラリや他人が書いたコードを使うときはメソッド名を補完したり、クラス階層を表示してくれるのが非常にありがたい。
他の言語でも本格的なアプリケーションを作るときはIDEがあるなら使いたいです。

[追記]
IDEとvimの差、デバッガの存在も大きいです。Webアプリの場合はリクエストの前後でデータがどう変わるかDBを見ればいいのですが、デスクトップアプリのようなプログラムだと必ずしも1アクションごとにDBやファイルに保存するというものではないので、デバッガで変数を見るということが重要になります。

投稿2015/09/02 04:29

編集2015/09/03 00:37
vc3000

総合スコア196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Vimを使って開発している人結構いますよ。

そもそもですが、なぜ「Vimでは頼りない」という判断になったのかというところがポイントです。
私の予想ですが、

「開発する為に欲しい便利な機能がIDEで実現されているから」

ではないでしょうか?
さらに

「IDEで実現されている機能をわざわざVimで実現する必要性があるの?」

という気持ちもあるかもしれません。
ではなぜVimが雑誌を賑わせ、多くの人に愛用されるのか、利用者の一人である私の意見をお伝えしたいと思います。

★Vimは「The Unix文化」である。
目的の機能以外はバッサリ切り捨て、シンプルの極みを目指す。
Vimは「編集」機能だけに注力し、それ以外の機能についてはマクロや外部ソフトウェア連携で実現する方法をとっています。
「1つの機能に特化した小さなプログラムを連携させれば、目的の機能を実現できる」
という考え方です。

★The Unix文化アプリなので好きに環境を構築できる
編集以外の機能については、自分の好きなプログラムを連携することが出来ます。
マクロで実現することも可能です。
デバッガ、リンカ、コンパイラ、ファイラ、正規表現ツール・・・etc
自分が欲しい機能を自由に組み合わせられることで、自分に特化した最速/最強の開発環境を作ることが出来ます。

ざっくりと上記2点が理由で私はVimを使っています。

「編集はVimでやるとして、ソース連携はGitクライアントを使おう。
Grep検索はGNUの拡張Grepにして、んで、コンパイラ、リンカはGCCで組み合わせる。
デバッガはGDBにしてフロントエンドが必要ならDDDだな。
ファイラは・・FILMTNのCloneにしようか。
コード色付けはVimの設定でやってしまおう。
スニペットはマクロで対応しよう。
Shell連携もセットアップして、Vimからawkやらsedを叩けるようにしよう。」

といった感じで、自分のお気に入りのツールと合わせ、自分に必要な機能を持った開発環境をつくり上げるわけです。
IDEだとこのあたりの小回りが効かないんですね。
この小回りが開発スピードに如実に関係してきます。
「物づくり」に対するソフトウェアの選定と構築を行う行為を”楽しい”と思えるかどうかがキモでしょうか。

デメリットとしては、上記のようなアレコレを考えるための知識が必要になるので、アレコレと普段から勉強しとかないといけません。
Vimの編集機能が体に染み付いているのも条件です。
※そもそも染み付いてないならnano等を使ったほうが直感的で作業が早いと思います。

(*´∀`)ノ 「熟練のVim使いやEmacs使いはIDEなんて必要ないぜ!!」

という記載をブログ等でよく見ますが、それは、そのレベルまで自分の環境を育て上げて、ツールを使い倒しているから言えることであって、そこに魅力を感じることができない気持ちであれば、無理にVimやEmacs等の生粋のUnixアプリを使う必要ないと思います。

最後に私が言えることは・・・・

(*´∀`)ノ 「騙されたと思ってVimを使った開発環境構築をアレコレ試してみると、きっと面白いよ!!」

ってことくらいです。

投稿2015/09/11 06:09

kamuycikap

総合スコア135

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimyo

2015/09/12 16:35 編集

ご回答ありがとうございます。 私がVimを頼りないとかんじるのは ・補完機能、推測機能の弱さ ・リアルタイムでのコードチェックがない ・マウスホイールでスクロールができない ・画面上の特定の位置にカーソルを持っていきたいと思った時GUIエディタならクリックで済むところをVimではコマンドをいろいろ打って移動しなければならない などとといった点です。 「頼りない」というよりは「不便」といった感じですね。 [訂正] ・マウスホイール及びクリックによるカーソル移動は「mouse=a」でできることがわかりました。 調べもせずコメントしてしまいすみません。
guest

0

私の場合、Linuxをはじめた20年ぐらい前からVI,VIMを使用しています。
もしあなたが、Makefileを自分でガリガリ書いて、コンパイルをするようなエンジニアでない。大量のコードを高速に読み解かなければならない。あと、Windows上で動くソフトの開発をやっている。というのであれば、vimの本当の価値に気がつくことはないでしょう。単にエディタとして使うんであれば、vimの恩恵にあずかれないでしょうか。そういうエンジニアはIDEを使用するのをお勧めします。マウスでグリグリ、プチプチしてください。
もし、Makefileを書いて、gdb、ctags、sedその他のもの便利なコマンドラインのツールを使えるのであればvimは指が勝手に覚えるまで使いこなせれば、vimのすばらしさがわかるでしょう。

投稿2015/09/08 14:42

MorimasaMatsuda

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

最近プログラミングを始めた人は、IDE(統合開発環境)が当たり前だと思いますが、大昔はその様なものは無く、テキストエディタで、ソース書いて、同じくテキストエディタでmakefile書くしか方法がありませんでした。その時代は、vimではなく、viでさんざん仕事をしていました。
その時代から、開発やっている人は、だいたい今でもvi(vim)か、emacsのどちかで仕事してますね。
自分は、emacs(と言ってもMeadow3.0ですがね)を使っています。
ただ、ビルドやデバックにはIDEを使っているので、ソース編集だけ、viやemacsという感じです。
完全にブラインドタッチで、エディタ扱う人は、ファンクションキーやカーソルキーに指をのばしたくないですからね。

投稿2015/09/11 15:05

ShinyaAnan

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

つい最近vimでも開発をするようになりました者です。

私は、携わった開発の環境如何で、IDE使ったりvim使ったりします。

それまでは主にVisual Studioな開発と、PHPでの開発でEclipseを使っていました。(ここまでずっとほぼコーディング作業はWindows)

vimで開発するようになったのは、初めてRuby on Rails + 使い慣れないMac OSでの開発に携わった時です。以下の様な理由で使ってみました。
・CUIでのいろいろな操作に慣れたかった(今まで、少しだけならvimも使ってたし、ダイジョブだろ)
・使い慣れないOSでIDE使うのは大変かなあ(OS元々の機能を使うだけでせいいっぱい。IDEを覚えるのを諦めた)
・そんなに環境に依存しないで使えそう(Macで作業することはいつあるか分からないけれど、Linuxな環境で作業することはあり続けるから、Mac用に覚え直すよりは良いじゃね?)

まだまだ使い始めですが、少しカスタマイズするだけでも結構楽しいと個人的には思ってます。

さすがに、デバッガ機能などをプロジェクト全体で慣例的IDE機能を使っていると、迷わずIDEにはしますが。。。(でも、そういうプロジェクトに携わったことないから、したことない)

投稿2015/09/08 14:55

t-sagiri

総合スコア31

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Vimで開発していますよ。ここ2年くらいなので、まだまだやり始めですが・・・。
基本は大きなプロジェクトではないのですが、5人くらいでgithubでコードを管理しています。
vimが強制というわけではないので、IDEいれている人もいますが少ないです。

ruby,PHP,perlなどのweb系のみなので、デバッグ等はドットファイルで設定したり、コマンドでやっちゃうことが多いですね。

投稿2015/09/08 07:54

aic0o

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

5,6年vimを使っているプログラマーです。

僕の場合はIDEのキーバインドをvimにして使っています。
やっぱり入力補完は使いたい。でもカーソル移動などやコピペなどはvimが慣れているので、vimでやりたいので。。。

なのでvimrcをカスタマイズというよりかは、vimの基本機能をIDEで使用しているという使い方になります。

JetBrainsのIDEのvimプラグインが優秀なので、オススメですよ。

投稿2015/09/08 06:30

sekitaka_1214

総合スコア509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

vim というよりは vi を30年ほど使っていますので、既に編集コマンドは指が覚えていて、私には最も使いやすいエディターになっています。
とは言うものの、IDE のリファクタリングは強力で、特に Java と XML とまとめて編集するような Android 開発などでは使わない手はないと思います。なので、編集コマンドの違いにぶつぶつ文句を言いながらも、Eclipse のエディターを使っています。

投稿2015/09/11 04:37

peki00

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私も投稿者と同じく、shellスクリプトや簡易ツールは
vimを使ってトライ・アンド・エラーで作成しますが、
大規模なチーム開発では、IDEの方がよいと感じています。
理由は以下のとおりです。

・グラフィカルなデバッグ(PHPでもxdebugと連動させることで、webデバッグ可)
・テンプレート機能などにより、コーディング規約に強制的に従わせる
・コンパイル/リファクタリングの効率化
・クラスやパッケージから関連ソースの追跡が容易
・バージョン管理システムやサーバとの連携が容易

また、一概には言えないですが、直感的に操作できるため
新人にとって学習コストが低いのではないでしょうか。

投稿2015/09/08 12:56

mickeyjap182

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私も、PHPやRubyなどのプロジェクトの時はVimを使用しています。
IDEの入力補完も便利なのですが、やはりVimのテキストオブジェクトなどの便利機能が捨てきれないので・・・(IDEでも同等の機能が有るのかもしれないですが)

投稿2015/09/08 08:48

k.tada

総合スコア1679

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問