15

バックグラウンド

ファイルシステムから使用しているドキュメントを検出するアプリケーションを構築しています。これを行うには、アクティブウィンドウのAXDocument属性にアクセスする必要があります。MacVimはこれを提供します。ターミナルでVimを実行しても、これは提供されません。

私のアプリに興味を持っているエディターコーダーが何を使用しているかを尋ねるアンケートを出しました。Vimを使用しているかなりの数の人々が、コマンドラインから直接Vimを使用していました。

GUI Vimを使ってみませんか?

MacVimのようなGUI実装ではなく、この方法でVimを実行することを好む人がいるのはなぜですか?

これにはどのような利点がありますか?私が理解しているように、コマンドラインVimと同じくらい簡単にコマンドラインからMacVimにファイルを送信できます。

4

12 に答える 12

17

gui(sshと考えてください)または単に習慣の力にアクセスできない場合があります。

于 2010-01-27T18:45:35.810 に答える
10
  • 提供vimの下で実行できることscreen

    • 信頼性: X または端末アプリがクラッシュしても存続します。これが Mac にどの程度当てはまるかはわかりません。
    • 端末タブ内でセッションを多重化するオプション。このため、実際には端末タブを使用することはほとんどありません。screen階層セッションをセットアップして、それらのブランチを移動する ことは可能です (少し混乱しますが) 。screen超すごいです。これは、正規表現で検索できるテキスト バッファリングの追加レイヤーも提供します。これは、ページ長のシェル コマンドを生成し、そこで特定の単語を探している場合に便利です。
    • 別のコンピューターから既存のセッションに接続する機能、またはネットワークの停止後に再接続する機能
    • と友達
  • を使用できるようにするだけでなくscreen、コンソールvimはより優れたシェル統合を提供します。gvim 内からシェル コマンドを実行することは可能ですが (繰り返しますが、これが Mac にどのように適用されるかはわかりません。私は Linux を使用しています)、制限があります。私は gui vim をめったに使用しないので、正確な制限についてはわかりません。たとえば、ANSI カラー コードは削除されます。:!git diff --cached私は、コミットする前にインデックスの変更を確認するために実行するなど、SCM をそのように操作する傾向があるため、これは面倒です。カラー化されていると、多少速くて満足のいく(うーん、ディフィー!) 読むことができます。

  • これは差分表示の大きな改善だと感じていgvimましたが、端末の背景色を黒以外の暗い色合いに変更し、設定しました

    :highlight DiffAdd ctermbg=Black
    :highlight DiffChange ctermbg=Black
    :highlight DiffDelete ctermbg=Black
    :highlight DiffText cterm=Bold ctermbg=None
    

    この結果、diff モードでは、異なるテキストは黒い背景で表示され、変更されていないテキストは端末の背景色で色付けされます。横に並べた差分の場合、これは素晴らしく機能します。これは、指定された行が変更か追加かを反対側に基づいてすぐに判断できるためです。非並列の場合、変更された行の変更されていない部分を見ることができます。

    これは、構文の色分けをオンのままにして、差分を表示できることを意味します。繰り返しますが、端末の背景色を黒以外の独特の暗い色合いに設定できる必要があります。この機能は、私が使用するターミナル エミュレータ ( yakuake/konsoleおよびroxterm) やその他多くのエミュレータで利用できます。^[?Mac^M"mya)^O^Op

    これは、暗い背景色で使用するための配色を使用していることも前提としています。改造したものを使用していdelekます。

  • 私はこれを試したことはありませんがvim、256 色モードをサポートする端末でコンソールを実行するオプションもあります。これには、ほとんどまたはすべての最新の端末が含まれると思います。これにより、GUI カラースキームの微妙な部分をコンソールで利用できるようになりますvim^["mp

  • また、起動した場所に住み、すばやく起動することも気に入っています。そのため、いつものように、シェル内をナビゲートしている場合、そのフローを中断したり、その操作を別の概念上の不動産に移したりすることなく、ファイルを編集できます。追跡するものが少ないことは大きなプラスです。バックグラウンドにできることも役に立ちます。たとえば、エクスポートされていないシェル変数の内容をxclip. 代わりに GUI ウィンドウを生成した場合、そのシェルがどこにあったかを思い出すのに苦労するか、すでに閉じている可能性があります。

  • 私が gui vim を使用する主な理由は、ブラウザーなどの gui アプリから生成されたものとしてより理にかなっているからです。実際には、私はこれを行うことはありません。これは、新しいコンソール vim を含む新しいターミナル ウィンドウをポップアップ表示するのとほぼ同じだと思います。GUI実装専用の(ウィンドウマネージャー)ウィンドウ管理機能がいくつかある可能性がありますが。これは、あなたが話しているユースケースとかなり似ています。

于 2010-06-27T20:35:59.210 に答える
5

gvim は実際には、vim が実行されている基本的なターミナル エミュレーターであり、いくつかのメニューとツールバー ボタンが上部にあります。

そのため、すべての端末セッションで使い慣れた同じタイプの端末ウィンドウを使用するため、優れたフル機能の端末エミュレータが既にある場合は、代わりにそれを使用することもできます。

もう 1 つの利点は、vim 内のシェルに簡単に切り替えて、シームレスに切り替えることができることです。

Windows では gvim を好みます。Linux では、gnome-terminal 内の vim です。これは素晴らしく、構成可能です。

于 2010-07-05T00:11:13.153 に答える
3
  • 一部のgvimバリエーションは、一部のホットキーを処理できません

  • プログラムをコンパイルしようとすると、別のウィンドウが生成されます

  • 固定フォントや終端フォントなどのフォントを正しく使用できない場合があります(「終端太字」について考えてください。一部のgvimバリエーションでは、個別のフォントでレンダリングするのではなく、単に「終端法線」を拡張します)

  • cliは通常、GUIよりも高速に動作します。特に、実際のテキストモードコンソールで実行している場合は動作します(Macでは不可能です)。

  • GUIバージョンを使用するメリットはほとんどなく、画面で実行したり、sshを実行したり、ctrl+zでプロセスを一時停止したりする機能が失われます。

于 2010-01-27T20:29:02.677 に答える
2

私がコマンド ラインを使用する主な理由は、1 日のほとんどを既にターミナルで過ごしているためです。vim の使用にはこれが反映されています。さまざまなファイルを編集してから、閉じずに他のファイルを開くだけで、長い間vimを開きません。私は通常、ファイルを 1 つまたは 2 つ開いて、いくつかの編集を行ってから、いくつかのコマンド ライン タスクを実行し、おそらくディレクトリを変更し、vim を別の場所で開きます。GUI を使用すると、エディタを開くときにかなりの遅延が発生します。一度開いてそのままにしておけば問題ありませんが、私はそうはいきません。そのため、私のワークフローではコマンド ラインの方がうまく機能します。さらに、GUI にはコマンド ラインに勝る機能上の利点はなく、またその逆もありません。

于 2010-01-28T14:42:05.630 に答える
2

vim は、巨大なファイル (私の場合は 100 ~ 500MB の .csv または .xml ファイル) でパフォーマンスが大幅に向上します。

gvim は、ファイルの比較 (gvimdiff) に使用すると、vim に勝ります: フォントの設定 (画面上のコンテンツを増やしたい?)、ウィンドウ分割線のドラッグ (他のファイルよりも 1 つのファイルをより多く表示したい) など。

それ以外は、他の市長の違いを見たことがなく、グラフィカル環境(gnome)でより便利だと思うため、大きなファイルを操作する場合を除いてgvimを使用しています。

于 2010-02-23T16:01:13.037 に答える
2
  • レンダリング速度
  • との適切なシェル統合
    • サスペンド(Cz)、
    • 代替ターミナル、
    • 均一なコピー/貼り付け
    • より優れたクイックフィックス統合 (すべての外部プログラムは、ポップアップ ウィンドウではなく、端末内で実行されます...)
  • ネットワークに依存しない: ssh で実行できます
  • GNU screen を使用して、インターネット経由でセッションをデタッチ/アタッチできます。

時々言及される「欠点」に:

  • マウスのサポートは と同等:se mouse +=aです。これにより、選択、マウスによるウィンドウ境界のドラッグ、ssh 経由の GNU 画面上でも可能になります。
于 2011-05-25T12:12:55.883 に答える
1

vim +gnuscreenを介したペアコーディングは私にとってセールスポイントです。私は一日中screen/vimで作業しています。これにより、人々は私のscreenセッションにリモートでアクセスでき、ファイルをスムーズに編集できます。今はとても暑いです。

于 2011-04-13T19:20:01.487 に答える
0

私自身、vim の熱烈なユーザーとして、GUI vim については知っていますが、単に習慣から使用しているわけではありません。

私は 1990 年から vi を使用しており、数年前に vim に切り替えましたが、それでもエイリアス (エイリアス vi=vim) を介して呼び出しています。

私にとってはただの習慣です。vim はそのままで問題なく動作します。おそらく、GUI はもっと多くのことを提供してくれるので、詳しく調べる必要がありますが、vim は私が期待し、望んでいるとおりに機能します。

于 2010-01-27T19:16:55.807 に答える