どのVim機能を使用しますか?[閉まっている]


13

私はほぼ一日中Vimでプログラミングを行っていますが、多くの人もそうしていると確信しています。日々のコーディングをより良くするために、どの機能を使用していますか?私が使用しているのはgvです。これにより、以前に選択したテキストを再選択できます。再インデントに最適です!


1
歴史的な目的のために、ここに元のSOの質問へのリンクがあります: stackoverflow.com/questions/95072/…–
Jax

以下のコメントに注意してくださいgv。入力する必要さえありません。:)
ネイサンロング

回答:


9

:%s / x / y / g

このコマンドは、すべてのインスタンス置き換えるのxを持つ現在のファイルでのy。これは基本的に単なる検索と置換ですが、職場で学んだため非常に頻繁に使用しているため、非常に貴重です。

また、/ 検索文字列

次に、nを押して、ファイル内の検索文字列のすべてのインスタンスをナビゲートします。特にファイル全体にルールを適用できない場合は、手動調整をより簡単に行うのに最適です。


私は実際に作業中のコードベースの大規模なセクションの変換に取り組んでおり、vim正規表現でこれを完全に行っています(これまで)。本当にうまくいきます!
フリューシュミット

その最後に「c」を追加して、コマンドをインタラクティブにします。例:%s / x / y / gc
sml

1
%は、置換を行う場所であることに注意してください- %「現在のファイル」を意味します。いくつかの行を視覚的に強調表示してを入力すると:s、その選択範囲内で置換を行うことができます。
ネイサンロング

7

== 現在の行で素晴らしい自動インデントを行います。

ただし、通常は、ファイルの末尾までインデントする、または現在の中かっこ内でインデントする=などのモーションで使用します。=G=i}


2
また、インデントを手動で(アン)実行できる>>および<<にも留意してください。
フリューシュミット

@フリュー-はい。あなたが追加した場合にも、vmap <Tab> >gvそしてvmap <S-Tab> <gvあなたに.vimrc、あなたはインデントやインデント解除タブとShiftキーを押しながらタブで、それぞれ、できるあなたはさらにインデントまたはインデント解除することができますので、それは視覚的な選択モードに右に戻って行くだろう。
ネイサンロング

6

=% コードブロック内のすべてを自動インデントします。


ああ!それは私にとって新しいことです!
フリューシュミット

カーソルが先頭にある場合に機能します{。ブロック内にいる場合は=i{、「中括弧内のインデント」を行うことができます。
ネイサンロング

5

*コマンドモードで使用して、カーソルの下の単語を検索します。


1
また、同じコマンドを実行しますが、前方ではなく後方に移動する姉妹コマンド#を忘れないでください!
フリューシュミット

5

:!コマンド-のための貴重なlsINGの、および「sudoのティー」トリック。

ティートリックの説明を求められました。基本的に、rootとしてVIMを起動していなくても、管理者権限でテキストファイルを保存できます。

:w !sudo tee %

ここで "sudo tee"トリックを説明したいかもしれません:-)また、変数の定義などを強調表示した後で:!sortを実行したいです。
フリューシュミット

:!を使用して、Vimを優れた「スクリプト可能な」エディターに変えることができます。およびいくつかのシェル/ Python / Perl /その他のスクリプト。
ジョナス

実際には、の代替手段があり!ls、aを実行して、新しいバッファーにvnew出力r!lsし、水平方向に縮小します。ディレクトリ内のすべてのファイルに3つ以上のファイルが含まれていることを思い出せません;)
new123456

4
.

を打つ。キーは前のコマンドを繰り返します。たとえば、を編集するの.iniに最適です。


これは驚くほど強力ですが、実際に使いこなすには少し時間がかかります。
アーロン


2

私は常にgqを使用して、電子メール、テキストファイルなどで改行をやり直します。電子メールに返信するとき(私はpineを使用)、以前の複数の返信を編集するときに本当に役立ちます。


うーん、私はこれを完全に忘れていました!
フリューシュミット

なぜ、なぜ、人気のあるメールクライアントが同様の機能をサポートできないのですか?
エリチュー2009

最近カーソル位置を保持するため、gqの代わりにgwを使用しています
-SergioAraujo

2

どこから始めますか...ここ5分ほどで使用したことを思い出すことができます。

  • NERDツリー -ファイル探索。VIMをIDEのようにします。
    • 私にとって大きなことの1つは、cdディレクトリに移動してから、シェルマッピング(下記)を介してシェルプロンプトにドロップできることです。
  • ci 間に挟まっているものをすべて空にします。
  • :! 標準アプリの起動用。
    • シェルプロンプト、mysqlクライアント、Apacheログファイルなどを起動するためのマッピングがあります。
    • Subversion統合は常に素晴らしいものです。クイックdiffs、statsなど
  • :abbr 大きなブロックを繰り返し入力する必要がなくなります。
  • タブ。もっと言う必要がありますか?
  • ファイルを分割する、常に良い。 :Sexいつもいいです。
  • :set paste! 自動インデントでamokが実行されないようにします。

私は、abbr以外のすべてを使用します。略語よりも多くのマクロを作成する傾向があります。
フリューシュミット


1

C / Tcl / Perlコードを記述またはトラバースするときに、次のコマンドを頻繁に使用します。

コピーアンドペーストコード

CTRL-fそしてCTRL-b、前方と後方のページトラバーサルのために
%ブロックごとの横断のための
^ 行の先頭五島
$ ラインの最後の最後後藤

コピーして貼り付ける ためのコマンドv(ビジュアルモード)と上記のトラバーサルキーのいずれかを使用してコードの選択を開始します
y
p

s 文字を削除し、挿入モードに移動して新しいテキストを入力します。

コードレベルトラバーサル(コーディングスタイルの規律が必要)

]]次の機能
[[の開始用prev機能の開始用

CTRL-] タグが利用可能な場合、変数/関数/マクロの定義にジャンプします。

探す

* =>ワード(またはvを使用して選択したテキスト)を順方向に
# 検索=>ワード(またはvを使用して選択したテキスト)を逆方向に
n 検索=>前の検索コマンドを順方向に
N 実行=>前の検索コマンドを逆方向に実行

上記のすべてのコマンドには、実行回数を示す数字を先頭に追加できます。vimをますます使用し、改善するために自分自身に挑戦するにつれて、この追加の次元の力の実現はゆっくりとなります。


ああ、]]と[[は私にとって新しいものです。カッコいい!
フリューシュミット


0

私はTextPadの元ユーザーであり、そのプログラムのアクセラレータキーの多くを記憶していました。Vimで最初にしたことの1つは、一貫性を保つためのマップ機能を学習することでした(F5検索、F8置換など)。私は自分のカラースキームを作成し、他人のvimrcファイルから多くを借りました。ビバビム!自由に設定可能。

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