vimの効果的な使用:「信じられないほどのヒント、パートI」

すべての人に良い一日を

約束を守ろうとして、痕跡を公開したい。 vimエディターの記事

この記事は、読者がvimでの作業の基本にすでに精通しており、蓄積された知識のより効率的な使用に専念することを意味しています。





ヒント1:



編集しているファイルを忘れてしまった...



ファイル名の表示-CTRL-G

「Php.ini」1255行--1%-

詳細情報-gCTRL-G

71列1 1255の18行目。 6980のWord 79; 44684のバイト563





ヒント2:



giを使用しませんか?????????



gi-非常に便利

php.iniファイルの143行目に書き込み、貼り付けモードを終了し、別のファイル\バッファーを監視し、giを押して、php.iniの143行目を編集し続けます。





ヒント3:



女の子、繰り返します!





スパイス1、シングルリピート



CTRL-E、CTRL-Yコマンドモードで1行下/上に画面シフト

挿入モードでは、下/上行から文字を挿入します




例:

行があります:

$ i-> love()-> mylove()-> because-> sheis-> VerySuccessfully();

印刷する必要があります

$ i-> love()-> mylove()-> because-> sheis-> VerySexy();

黒で強調表示されているものはすべてCTRL-Yで印刷されます。

本当に印刷されたのはVerySexy()のみです。



スパイス2、最後のエントリを繰り返します



CRTL-A-最後に入力した文を挿入します(挿入モードで!)


例:

行があります:

$ i-> love()-> mylove()-> because-> sheis-> VerySilly();

ここでもビルドしたい:

CRTL-A(それだけです。別のモードに切り替えたり、コピーしたりする必要はありません。)

$ i-> love()-> mylove()-> because-> sheis-> VerySilly();



スパイス3、なぜ考慮するか、CTRL-R =があるときに苦しむ理由

挿入モード:

CRTL + R = 5 * 5 + 25-挿入50;



A.

スパイス4



:read!date-現在の日付を挿入

:read!catファイル -ファイルファイルの内容を挿入

:grep -iR "TODO" * + copen-プロジェクト内のすべてのTODOを使用できます

:read!cat / dev / random-管理者に現在のユーザーパスワードを与える(真のUNIXユーザーのみ!?)主なことは、CTRL + Cを押すことを忘れないこと




スパイス5段落



A.
CRTL-T、CRTL-D編集モードで段落を挿入




検索は自然です



* /# -単語の次/前の位置を検索

[I、] I-カーソルの下の単語が含まれるすべての行を表示します

うーん...

より便利に使用するために、次のことを行います。

:nmap [I:let nr = input(“ Which one:„)exe“ normal”。 nr。 "[\ t"



だから、私の口はすでに閉じており、現実への信仰が戻ってきたように見えますが、他の編集者への精神的な価値と信仰はもはや回復していないようです...

続けます...



vimでの検索は自然です





繰り返し-学習の母



/-トラックエントリをお探しですか? -エントリnを検索-最後の検索を繰り返します

N-最後の検索を反対方向に繰り返します





だから:

正規表現(bl *、pi **** =)のトピックに触れたい



残念ながら通常の言語は本全体のトピックです。

ここでは、他の例よりも頻繁に使用する例を示します。

d / ^# -現在の行から最初のコメントまでをすべて削除します

10d / ^# -それぞれ10日まで



y / ^ class /; functionは、クラスclassで現在の位置からfunctionの最初の出現までのすべてを選択します。

:%s / foo / bar-ファイル全体でfooをbarに置き換えます(1、$ s / foo / bar /)

:。、/ <\ / body> / s、

、gc-タグを編集

現在の行からタグへ
スペースなしで確認求めて、これはHabroeffectです

(c-「cautios」、注意)

著者はとても酔っていた...それは読者にトレイルについてコメントする機会を残しました。 式:

:-23、 'ts / wow / WOW /



-現在の行で最後の置換を繰り返します

:&& -同じフラグで現在の行の最後の置換を繰り返します

g& -ファイル全体に対して置換を繰り返します





シフト+左から左へメモ帳の左手

aw、iw、as、ap、{-vimの魂が歌う





仮想モードに移動します。

iw、iW-単語をハイライトします

aw、aW-単語を選択します。空白は考慮されません

as、 is-単語のシーケンスを強調表示します(as、is-違いがあります、参照-iw、aw)

ap、ip-段落を強調表示

{、i { -ブロック全体{..}またはその中のテキストを選択します

a(、i( -ブロック全体(..)またはその中のテキストを選択

a <、i < -ブロック全体(..)またはその中のテキストを選択します

'、i'-その中のシングルクリックドレインまたはテキストを選択します

"、i" -ダブルクォート文字列またはその中のテキストを選択

(vimは\ "考慮する必要がないことを知っています)

at、 it-タグ全体またはその中のテキスト(hello XML&HTML)を選択します



例:

das-空白を含むシーケンスを削除します。

ci( -内部のテキストを置換(...)

yat-カーソルが置かれているタグ全体をコピーします

gU '-SQLクエリは大文字で書かれています! (単一行の文字列の大文字と小文字を変更します)

vip-空白なしで段落全体を選択します




スマートインサート



:set autoindent-新しい行を挿入するときに段落をフォーマットします。

] p、] P-インデントの前後に挿入し、インデントをフォーマットする

必ずしも便利ではない(

:nnoremap P P '[v'] =

:nnoremap P P '[v'] =

に]-届かないので、



レジスタを操作する



pre-habrahabr.ru/blog/vim/45414.htmlで部分的に説明されていました

私は追加したいと思います:

「0-レジスタに入力されなかった最後にコピーされたテキスト

»1-レジスタに入力されていない最後に削除されたテキスト

( " -および1行より長かった)

...

「2-」 2.9番目のチームの9個の削除されたテキスト

" 。-最後に挿入されたテキスト

「% -現在のファイルの名前

"_-レジスタはブラックボックスです(その使用は他のレジスタに影響を与えません)

:reg-すべての現在のレジスタの値を表示します





マクロ記録



qマクロの記録を開始、順次q記録を停止

@はマクロを実行します

@@は最後に実行されたマクロを実行します



ここで小さな例を挙げることができると思います

以前にコードで書いた

グローバル$ db;

今、スタイルが少し変わって、私は書き始めました

$ db =データベース:: get();

そのようなコードはたくさんありますが、かなり小さいです



どのアクションを置き換える必要がありますか?

1.グローバルな$ dbを見つけます;

2.グローバル$ dbを置き換えます。

3. on $ db = Database :: get();



今vimを介して;

1点目:: grep -iR "global $ db;" *

マクロとして2.3番目を実行しようとします。

だから、最初のポイント、コマンドモードの後、qa、d2W、iを押す

Enter $ db = Database :: get();

q。

記録されたマクロ

:コペン

グローバルな$ dbエントリのトレースを探します。

今すぐ@aをクリックしてください

次のエントリに移動します



psこれはマクロのハローワールドのようなものだと言ってすみません、これらは非常に簡単な例です。



過去の時間



おそらく私を驚かせるvim'a機能の1つ=)

g- / g + -古いテキストと新しいテキストの間をスライドします

:Earler Ns、m、h-ファイルの内容を返します。これは、後でs、m、h“ time”でした

:後で -反対に、ファイルの内容を返します。これはs、m、hの「時間」の後です

:ealer 60m-いまいましい、彼らは今日ワインを私に売った=)



ご清聴ありがとうございました...

PS質問がありますか? 書いて、集合的な心があなたを助けます!



All Articles