IDEに標準ではないVIMの最も便利な機能[終了]


30

IDEの代わりにVIMを再び使用する必要があるかどうかを検討しています。IDEに標準ではないVIMの最も便利な機能は何ですか?


3
どのIDEを使用していますか?多くのIDEにはVIMプラグインがあるため、VIMを使用しているかのように編集できます。
ブライアンR.ボンディ

2
@ブライアン:確かに彼らはすべての高度な機能をエミュレートしていませんでしたか?
ケースバッシュ

1
おそらくすべてではありませんが、私が使用したものはVSに最適です。少なくとも2つあります。 viemu.com およびgithub.com/jaredpar/VsVim
ブライアンR.ボンディ

2
@ブライアンRボンディ:それらのどれもvimの機能のすべてをカバーするに近づきません。彼らは表面を傷つけると、本当にこれ以上行わない
Daenyth

2
または、あなたは本当に賢明であり、emacs代わりに使い始めることができます。;-)
10

回答:


32

VIMの高度な機能が必ずしも強力であるとは思わない。そのため、何かをするためにキーボードから手を離す必要はありません。巨大なファイルで何かを見つけるのは、キーストロークを数回行うのと同じくらい簡単です。同じウィンドウで複数のファイルを開いたり閉じたりするのも非常に高速です。

最初は直感的に見えないかもしれませんが、時間をかける価値は十分にあります。標準のIDEとして使用しない場合でも(たとえば、通常Visual StudioやEclipseを使用します)、VIMを使用してファイルをすばやく開いて編集することを見つけるでしょう。負荷。

時間をかけてVIMの使い方を学ぶと、後悔することはありません。タッチ式の学習に匹敵すると思います。


3
この答えはおそらくVimにとって最も便利な機能であり、唯一の機能でもあります。Vimのためにプログラムされたものは簡単にIDEのあまりにも適用することができ、それだけでテキスト処理は...すべての後だ
タマラWijsman

4
+1私はemacsの信奉者ですが、同じ議論が当てはまります。最新のIDEは、テキストエディターにとっては「グラフィカル」すぎます
オーブリング

22

私にとって、この:globalコマンドはキラーアプリです。正規表現に一致する(または一致しない)任意の行で任意のvimコマンドを実行します。

ここではいくつかの例を示します。

デフォルトの動作では、一致するすべての行がリストされるため、次のようになります。

:g/TODO:/

テキスト「TODO:」を含むすべての行をリストします

「マウス」という単語も含む行の「ミッキー」を「ミニー」に変更します

:g/Mouse/ s/Mickey/Minnie/

コマンドには独自の範囲を設定できるため、「TODO:」が含まれるすべての行から次の空白行まで削除されます。

:g / TODO:/。、/ ^ $ / d

:g!を使用してください。正規表現に一致しないすべての行で実行します。たとえば、「sucks」という単語を含む行を除き、「emacs」を「vim」に置き換えます。

:g!/sucks/ s/emacs/vim/

グローバルコマンドを使用した素晴らしいトリック!私はそれらをそのように使用することを考えたことがなかった。
ザビエルT.

Eclipseは、個々のファイル、プロジェクト、または同じワークスペース内のプロジェクト全体のファイルの正規表現検索をサポートしています。正規表現の置換もある程度サポートされていますが、vimにははるかに強力な正規表現機能があると思います。
トーマスオーエンズ

16

ペアになったシンボルのセット内のすべてを削除する機能は非常に便利です。たとえば、かなり頻繁に、コード内の文字列を置き換えたいと思うでしょう。そのためdi"、カーソルがブロック内にある間、文字列は削除されますが、""そのまま保持され、2つの引用符文字の間にカーソルが置かれます。da"同じことをしますが、引用文字も削除します。


12
さらに良いのci"は、カーソルを削除し、カーソルを挿入モードにして、すぐに書き込みを開始できるようにすることです。
コンラッドルドルフ

9

「挿入モードのキーワード補完」。挿入モードでCtrl-PおよびCtrl-Nを押すと、テキスト全体を検索して、入力している変数名を入力します。他のIDEでこれを見たことがないので、本当に見逃しています。IDEのコード補完は同じではありません。


2
必要に応じて、omni-completeを使用して適切なコード補完を行うこともできます。^X^O有効になっている場合、挿入モードでのオムニ補完。しかし、あなたは正しい、私はオムニコンプリートよりもはるかに多くのキーワード補完を使用しています。
チンメイカンチ

@Chinmay:「適切な」後方という意味があると思います。適切なコード補完は、コードの代わりにテキストを記述している場合でも、ローカリティの原則を使用してすべてを完了します。
ninjalj

SlickEditにも同様の機能があります。そしてそれは非常にIDEのようだ
user281377

8
私は完全に同意しません。現代のIDE(Visual Studio、Eclipseなど)には、Ctrl-N に簡単に匹敵する(そして実際には超える!)コード補完があります。IDEでこれを見たことがない場合は、現在のバージョンをもう一度見てください。また、残念ながらOmni-Completeは正しく機能しません。
コンラッドルドルフ

8

私が信じられないほど便利だと思うもう一つの機能は、インデントを変更する機能です。:15,30>>15〜30(両端を含む)のすべての行を2回:15,30<<インデントし、同じ行を2回インデント解除します。


この機能は気に入っていますが、ほとんどすべてのIDEにはブロックインデント(およびデデント)があります。
ショーンマクミラン

そして=、それ以上ではないにしても、と同じように便利だ<<と思います>>
greyfade

6

コマンドdd(現在の行を削除)。私はこれをとても使います。

また、3ddのようなものを入力し、次の3行を削除できることは素晴らしいことです。別のエディターでこれを見たことがない= D


Netbeansにはこれがほとんどあります。^ Xを選択しないと、現在の行がカットされます。
アラン・ピアース

@アラン:いいえ、NetBeansにはjViがあります:)
ハンニバルレクター博士

^ Kは行を削除し、^ u3 ^ kはemacsの3行を削除します。shift-deleteは、Visual Studioでも同じことを行います。
ラウル

アラン:DDはまた、切断、それは後でPで挿入することができるという意味で、現在の行を
user281377

3
@Raoul、すべてのvimコマンドを複製するn個の3キーの組み合わせのemacsシリーズがあることを知っています-それでも、3ddは詩です。
cbrandolino

6

cコマンド。たとえば、ci"内部引用符を変更します。cw言葉を変える。便利なトリックがたくさんあります。



3

Esc ! }は、fmtor wcまたはor whichなどのコマンドラインフィルターに現在の段落を押し出し、結果をエディターに返します。


3

コマンドラインへの迅速なアクセス。CTRL + Zまたは:wqaは、キーボードから手を離さずに1秒未満でコマンドラインを取得します。


1
+1最後の少しは、ほとんどすべての利点のための重要なセクションです。キーボードから手を
離さ

...または:!/bin/bash。私は:!かなり頻繁に使用します。
greyfade

私は通常使用します:sh
デビッドブラウン

3

hjklキーボードのホームローを離れずにカーソルを移動するために使用できること。キーバインドを変更したり、スクロールなどにVimの移動キーを使用するように設定したりするほとんどのプログラム(PDFリーダーなど)があります。


1

これは、質問の曖昧さ、およびIDEが異なるという事実、および他の多くが提供しない機能の多く(および私がそれらのほんの一部しか持っていないという事実)が原因で、答えるのがかなり困難です。

しかし、私が信じているのは、Vimを他のエディター(そう、これについてはEmacsでさえも)と区別しているのは、それが本当に素晴らしいエディターだということです。私は時が経ち、多くのエディターを使用しましたが、Vimのように、テキストを操作するためのこのような完全な機能セットを備えたものはほとんどありません。

たとえば、テキストを操作する私のスタイルには、非常に頻繁に(行/複数行の選択)複製を使用したり、上下に移動(複数行の選択)したりすることが含まれます。ほとんどのIDEのこれらの機能が恋しいです(VS向けのReSharperには似たようなものがあると聞きましたが)。


1

Eclipse用のviプラグインがあることをご存知ですか?15ユーロ(20米ドル)かかりますが、それだけの価値があります。dd文書の途中でこれ以上、そしてすべての小さな有用なものを見逃しています。

おそらく少し話題から外れていますが、指摘する価値があると思いました。


0

プログラミングしている言語に応じて、IDEを使い続けるか、見つけることができる最もリファクタリングを提供するIDEを取得します。C#、Javaのintellij、またはビジュアルスタジオのビジュアルアシストを行う場合は、ビジュアルスタジオのリシャーパーを取得します。 EclipseまたはNetBeansのリファクタリングを最大化します。

テキストの操作からコードの操作に移行する必要があり、リファクタリングツールがその能力を提供します。vimがすべての機能を提供してくれるなら、私はもうテキストエディタを使いたくない


3
これはほとんどナンセンスです。はい、リファクタリングは重要なツールですが、コード自体は記述しません。優れたテキストエディタは、優れたリファクタリングツールよりもはるかにプログラマの生産性に貢献します。
Chinmay Kanchi

-1

テーブル列選択

これは人気のあるIDEにはないようです。これは、CSVデータファイルの列に対して正規表現をテストする場合に非常に便利です。


-3

ほとんどのIDEでは、画面を分割できません。VIMのこの機能が大好きです。


5
ほとんどのIDEはそうではありませんか?少なくとも私が使用したものは、実際にそうしていると思います。
アント

例を挙げていただけますか?
projecktzero

1
ほとんどのIDEは、Vim / Emacsとは異なる方法で画面分割を処理します。彼らは通常タブでそれを行います。これらはキーボードで操作するのが難しく/不可能です(Emacsで50ファイルを開くことと、Eclipseで50ファイルを開くことを比較すると、Emacsがすぐに勝つことがわかります)。
-jsternberg

分割画面を備えたほとんどのIDEは、a-laをナビゲート/調整する簡単な方法を提供していません。<C-w>
Wayne Werner
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.