Vimを補完する最適な汎用プログラミングツールは何ですか?[閉まっている]


22

Vimをテキストエディタとして少しの間使用していますが、何かをするのに長い道のりを取っているように感じます。ctagsを使用してナビゲーション用のコードベースにタグを付け、特定のメソッドが使用されている場所を見つけるために(非効率的ではありますが)grepを使用します。しかし、私はそれが私をより生産的にするかもしれないことを知らないいくつかの非常に有用なツールがそこにあると感じています。

Vimを補完する一般的なプログラミングに使用できる最高のソフトウェアスタックは何ですか?どのようにコードベースをナビゲートし、makeを実行し、ソース管理システムに変更をプッシュしますか?Vimの横に2番目のコンソールを開いていますか?


2
Vim自体。ジョブに正しいプラグイン/スクリプトを使用していない可能性があります。それはあなたがどんな種類のプログラミングをしているのか、どの言語、あなたが必要とする他のツールなどに依存します。
bitek

返される応答に影響を与えないように、言語を指定していません。Vimプラグインを探しているわけではありませんが、有用です。
ルイサリン

このプレゼンテーションは、zmievski.org

これをコミュニティWikiにしました。私の質問に対する唯一の最良の答えはないことに気づきました。回答ありがとうございます!
ルイサリン

回答:


8

vimの優れた機能は、既存のシェルコマンドとの統合が容易なことです。最も有用な外部ツールには、coreutilsやその他の単純なテキスト操作ツールに含まれているものがあります。たとえば、次のようにしてファイルの行数を取得できます。

:! wc -l %

または単語数:

:! wc -w %

シェルで機能するコマンドはすべてここで機能します。これを:read:r)コマンドと強力に組み合わせて、コマンドの出力をファイルに入れることができます。例えば:

:r !wc -l %

編集中のファイルにワードラインカウントを配置します。

これのもう1つの利点は、現在編集中のテキストをこれらのコマンドのいずれかの出力で置き換えることです。たとえばpar、次のコマンドを実行して、ファイル全体をフォーマットできます。

:% !par

5

私のコードベースをナビゲートするには、NERDtreeが不可欠だと思います。それに加えて、バッファ/ウィンドウの移動に習熟することに時間をかけることは本当に価値があります。


この素晴らしいプラグインへの参照については+1。(github.com/scrooloose/nerdtree
noffle

4

どの言語でも、ソース定義を参照できるctagsと呼ばれる機能を使用できます。これには、VIMがプロジェクト内のさまざまなコード定義の場所を検出するために使用するTAGSファイルを生成する外部ツールが必要です。

あふれんばかりのctagsツールを入手してください。これは多くの言語で機能し、簡単に使用できます。

VIMから :help ctags

ctagsは、ソースツリー内のすべての識別子のインデックスを作成します。その後、タグコマンドを使用して、ソースツリー内を移動できます。をご覧ください:help tag-commands。最も簡単な方法は、カーソルをキーワードの上に置いてCTRL- を押すこと]です。プレスから来た場所に戻るにはCTRL-T

これ以外に、ここで説明するVIMのヒントと改善点のいくつかを確認したい場合があります。これは、Vimmerのエクスペリエンスを改善するためにできることよりも、非常に包括的な議論です。


私は質問でctagsを使用していたことを言及しましたが、とにかく答えてくれてありがとう!:)
ルイサリン

4

Vimは非常に強力なツールです。みなさんは既にそれを知っているはずです。数週間以内にvimを使用すると、生産性が向上し始めます。ただし、Vimの知識を飽和させることはありません。だから、私は常に、Vimで物事を行うための新しくて効率的な方法を探しています。Vimの使用法と彼が使用するプラグインについての素晴らしいスクリーンキャストを行ったDerek Wyattという名前の男がいます。

私が使用するいくつかのプラグイン

  1. command-tこれはファイルの閲覧を簡単にし、非常にインテリジェントです。

    Command-Tプラグインは、最小限のキーストロークでファイルを開くための非常に高速で直感的なメカニズムを提供します。TextMateでCommand-Tにバインドされた「Go to File」ウィンドウに触発されているため、「Command-T」と名付けられています。

  2. fuzzyfinder私は主にこれを使用して、バッファをバッファリングし、現在のディレクトリを変更します。

    FuzzyFinderは、必要なバッファ/ファイル/コマンド/ブックマーク/タグにすばやく到達するための便利な方法を提供します。FuzzyFinderは、入力されたパターンを変換したファジー/部分パターンで検索します

  3. NERDTreeこれは、vimに最適なファイルブラウザプラグインです。

    NERDツリーを使用すると、ファイルシステムを探索し、ファイルとディレクトリを開くことができます。キーボードやマウスで操作するツリー形式でファイルシステムを表示します。また、簡単なファイルシステム操作を実行できます。

  4. XPTemplate世界で最高のテンプレートプラグイン。

    Vim用のコードスニペットエンジンとスニペットライブラリ。XPTemplateを使用すると、スムーズ、迅速、快適な方法でコードを記述できます。

  5. rails.vim rails devを行う場合、これは不可欠です。

    TextMateはRuby on Railsアプリケーションを開発するための最新の流行かもしれませんが、Vimは永遠です。このプラグインは、Ruby on Railsアプリケーション開発用に次の機能を提供します。

  6. NerdCommenterは、あらゆる種類のコードのコメントを簡単にします。

そして、これらは私が使用しているプラ​​グインのほんの一部です。すべてのプラグインをvimrcでダウンロードするには、ドットファイルをチェックアウトしてください


3

Syntasticの構文チェックを行うVIM用の優れたプラグインがあります。ファイル管理、構築などに使用できるツールは他にもたくさんあります。freenode.netのIRC #vimにアクセスしてください。そこには多くの役に立つ人々がいます。


3

私のお気に入りはcscopeです。vimをcscopeサポート付きでコンパイルしている場合、VIMからcscopeコマンドを直接使用できます。たとえば、インクルードファイル、xyz関数によって呼び出される関数などを検索します。非常に大きなソースコードリポジトリで試しました。それは大いに役立ちます。

http://cscope.sourceforge.net/cscope_vim_tutorial.html


1

GCCがサポートする言語(C、C ++、Java、Fortran)でプログラミングしている場合、ClewnはGDBデバッガーをVIMに統合する優れたプラグインです。実際に、GDBへの最高のインターフェースの1つであることがわかりました。


0

通常screen、プロジェクトごとにセッションを設定します。Vimはウィンドウ0にあり、シェルセッションにはウィンドウ1を使用します。適切なREPLを持つ言語でコーディングしている場合、通常はウィンドウ2で実行します。もちろん、これを行う必要はありませんscreen。異なるターミナルウィンドウまたはマルチタブターミナルのタブを使用して実行できます。screen他の選択肢よりも安定していることがわかります。ターミナルアプリがクラッシュした場合は、別のターミナルを起動して、実行screen中のセッションに再接続するだけです。 screenまた、一度学習すればすぐにナビゲートできます(vim自体と同様)。

最終的には、リベースやマージなどの複雑なバージョン管理アクティビティにシェルセッションを使用します。vimのコマンドライン(:!git commit % -m 'Added info aboutscreenなど.')から、または逃亡者アドオンを使用して、より簡単なことを実行できます。逃亡者:Gmove(vimとgitインデックスの両方で現在のバッファーの名前を変更する)と:Gdiff(履歴の前のポイントで現在のバッファーでvimdiffを呼び出す)が特に便利だと思います。また、スクラッチバッファーにコミットメッセージを作成し、コードのさまざまな部分からテキストをコピーしてから、次のようにコミットすることもできます。:%!git commit -F /dev/stdin

また、コマンドラインユーティリティを作成している場合など、作業中のすべてに適用できる場合は、機能/統合テストにシェルセッションを使用します。

あなたが仕事をしたいかもしれない各言語に必要なさまざまなアドオンがあるように思われるけれどもVimのクイックフィックス機能は、デバッグに役立ちます。彼らはまた、マッピングで始まるファンクションキーやキーの配列に、呼び出しのさまざまな技術を使用するように見えます\,、またはカスタムコマンド、またはバッファが保存されたときに自動的に呼び出されます。これまでのところ、私は実際にこれを大騒ぎすることはなく、例えばを使用して単体テストまたはlintの結果をスクラッチバッファに読み込むだけ:r !python -m doctest whatever.pyです。コードを変更し、スクラッチバッファに切り替えuて元に戻し、その後、:r(ほとんどの場合)上矢印を押してそのコマンドを戻します。ただし、使用している言語によっては、このアドオンを探すのに時間をかける価値があるかもしれません。

C、javaなどの一般的なコンパイル済み言語の場合:make、ビルドが行われ、quickfixリストのサポートが十分に確立されます。その:copenため、quickfixバッファーを表示することができます。エラーのリストが1行に1つずつ表示されます。打つEnter行にすると、そのファイルにそのポイントにあなたの他のウィンドウをジャンプします。

一度に複数のプロジェクトで作業している場合:lmake、エラーのリストをロケーションリストに保存するようにできます。これはクイックフィックスリストに似ていますが、あなたのシングルトンではなく単一のウィンドウに関連付けられていますvimインスタンス。 :lopen現在のウィンドウの場所リストを開きます。

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