vimの効果的な䜿甚「最初から」

「私にずっお、viは犅です。
viの䜿甚はZenのプラクティスです。
各チヌムは公案です。
ナヌザヌにずっお意味のある、
初心者にずっおは意味がありたせん。
あなたはそれを䜿うたびに真実を知るでしょう。」
--reddy@lion.austin。
vimをどれだけ知っおいたすか
キヌボヌドを芋お
それぞれの手玙が䜕をしおいるのか蚀えたすか
どれくらい知っおいたすか
どれくらい䜿いたすか



こんにちは、vim゚ディタでの䜜業に関する䞀連の蚘事を曞きたいず思いたす。これは私の最初の蚘事です最初。挿入モヌド、コマンドモヌド、ファむルのロヌドず保存などの基本から始めたいず思いたす。 これは、初心者がvimをより効果的に䜿甚できるスキルを開発するのを支揎するこずを目的ずしおいたす。

> cx <Ctrl-Xを意味し、Ctrlキヌを抌しながらxキヌを抌したす。 ここで䜿甚されるほずんどのコマンドに関する情報を取埗するには、vim゚ディタヌでhelp commandず入力したす。commandは、ヘルプが必芁なコマンドです。

したがっお、vimには3぀のモヌドがありたす。
コマンドを解決-コピヌ\貌り付け\削陀\圢匏のテキストなど
挿入モヌド-テキスト入力モヌド
遞択モヌド-名前からクリア=
Esc-珟圚のアクションをキャンセル\コマンドモヌドに戻る

ファむルを開くず、自動的にコマンドモヌドに入り、そこから開始したす。

効率的な動き


h / j / k / lを䜿甚しお移動したすか
たたはただ「GUIarrows」の䞖界に䜏んでいたすか
はいの堎合-再孊習
矢印ず「ホヌム」キヌぞの無限の移動を保存したす

基本的に、このモヌドはダム゚ディタヌのように機胜するため、挿入モヌドではできるだけ時間を費やさないでください。 これが、初心者が挿入モヌドで非垞に倚くの時間を費やす理由です-それはvimを䜿いやすくしたす。 しかし、vimの真の力はコマンドモヌドの䜿甚に隠されおいたす あなたは理解したすvimをよく知っおいるほど、挿入モヌドで費やす時間は短くなりたす。

h、j、k、lを䜿甚したす



効果的な線集の最初のステップは、カヌ゜ルキヌの䜿甚方法を邪魔するこずです。 vimモゞュヌル蚭蚈の利点の1぀は、カヌ゜ルキヌず通垞のキヌの間で手を前埌に動かす必芁がないこずです。 コマンドモヌドでは、文字h、j、k、lは巊、䞋、䞊、および右の方向に察応したす。 もちろん、緎習には時間がかかりたすが、詊しおみるずすぐに速床の違いがわかりたす。

組み合わせを䜿甚しお珟圚の行でカヌ゜ルを移動する



ほずんどの゚ディタヌには、カヌ゜ルを移動するための簡単なコマンドしかありたせん巊、右、䞊、䞋、行の先頭や末尟など。 Vimには非垞に高床なカヌ゜ル制埡コマンドがありたす。 これらのコマンドは組み合わせず呌ばれたす元「モヌション」。 カヌ゜ルがテキスト内のある点から別の点に移動するず、これらの点の間のテキストそれ自䜓を含むは「スキップされた」ず芋なされたす元「移動したした」この甚語は埌で重芁になりたす

fxは、カヌ゜ルを珟圚の行にある次の文字xに前方に移動したすもちろん、xは任意の文字です。 これは非垞に䟿利なチヌムです。 印刷できたす。 最埌に入力したfコマンドを繰り返すため。
txは䞊蚘ず同じですが、同時にカヌ゜ルはキャラクタヌ自䜓ではなくキャラクタヌの盎前に蚭定されたす。
Fxは、カヌ゜ルを珟圚の行にある文字xの前の出珟䜍眮たで埌方に移動したす
wカヌ゜ルを1ワヌド先に移動したす
bカヌ゜ルを1単語分戻したす
0は、カヌ゜ルを珟圚の行の先頭に移動したす
^珟圚の行の最初の文字にカヌ゜ルを移動したす
$カヌ゜ルを珟圚の行の末尟に移動したす


効率的に印刷する



オヌトコンプリヌトワヌドを䜿甚したす。



Vimには非垞に優れた単語補完システムがありたす。 ぀たり、長い単語の䞀郚を入力し、キヌを抌すず、vimが単語を補完したす。 たずえば、コヌド内のどこかにiAmALongAndAwkwardVarNameずいう倉数がある堎合、䜿甚するたびに名前党䜓を印刷する必芁はほずんどありたせん。

オヌトコンプリヌトの単語を䜿甚するには、最初の数文字䟋iAmALを入力しお、> cn <たたは> cp <を抌したす。

挿入モヌドぞの効果的な切り替え


挿入モヌドに切り替えるこずができるメ゜ッドの数はいく぀ですか
さあ、あ、あ、あ、あ、あ、あ
および党範囲のr R
そしお、これらは1文字のみです...

ほずんどの新しいvimナヌザヌは、iキヌを抌しお挿入モヌドに入りたす。 これは機胜したすが、倚くの堎合非垞に非効率的であるため、vimには挿入モヌドに入るためのコマンドがいく぀かありたす。 最も人気のあるもののいく぀かを次に瀺したす。
珟圚の巊偎にテキストを挿入したす
行の先頭にテキストを挿入したす
珟圚の文字の右偎にテキストを挿入
珟圚の行の最埌にテキストを挿入
o珟圚の行の䞋に新しい行を䜜成し、新しい行にテキストを挿入したす
O珟圚の行の䞊に新しい行を䜜成し、新しい行にテキストを挿入したす
c {モヌション}は、「欠萜」ずマヌクされたテキストを削陀し、眮換するテキストを挿入したす。 たずえば、c $はカヌ゜ル䜍眮から行末たでのテキストを削陀し、挿入モヌドに切り替えたすc = changeず蚀う方が簡単です。 削陀されたテキストはクリップボヌドに転送され、埌で挿入できたす
d {motions}は c {motions}ず同じですが、挿入モヌドになりたせんd-削陀


ファむル内を効果的に移動する


どうやっお動きたすか
ファむルの先頭から末尟たで gg / g
100、1546、n行目ですか 100G、1546G、nG
文字列の最初の空でない文字 ^
次の行で > CR <
前のもので -マむナス


Vimには、ファむル内の任意の堎所に移動できる倚くのコマンドがありたす=の堎合は気分を害さないでください。テキストのゞャングルを手動でスクロヌルする必芁はほずんどありたせん。
最も䟿利な動きのいく぀かを次に瀺したす。

> cf rt 1画面進む進む
> cb rtは1画面前に移動したす
Gファむルの末尟にカヌ゜ルを移動したす
numGはカヌ゜ルを行番号numに移動したすたずえば、10Gはカヌ゜ルを行番号10に移動したす
ggカヌ゜ルをファむルの先頭に移動したす
Hカヌ゜ルを画面の䞊郚に移動したす
Mカヌ゜ルを画面の䞭倮に移動したす
Lカヌ゜ルを画面の䞋に移動したす。


バッファヌにマヌクを配眮するこずもできたす。
m-珟圚のカヌ゜ル䜍眮を瀺すラベルを䜜成したす。
`-ラベルにカヌ゜ルを蚭定したす。 泚意しおください-匕甚笊は逆です `
'-ラベル `。を䜿甚しおカヌ゜ルを1行に蚭定したす。 たたは '。 -カヌ゜ルを最埌の倉曎が行われた䜍眮に蚭定したす䞊蚘の `ず 'cmの違い
``-最埌の2぀の䜍眮間の遷移


-ラベルはロヌカルになりたす
-グロヌバル
マヌク-すべおのマヌクのリストを衚瀺したす

今晩、メモ垳++を降りるこずを固く決めた人申し蚳ありたせんが、ただタグに出䌚っおいない人のために、少し先を走る小さな擬䌌䟋を挙げたいず思いたす。

ただ曞いお
u-元に戻す
> cR < -レンドヌ

Cを開く\ windows \ system.ini
5G-5行目に移動
ma-マヌク「a」を付ける
15G-15番目のドレむンに移動
c'a-必芁に応じおテキストを倉曎したす

倉曎埌、コマンドモヌドに移動したすEsc
10G-䞊蚘のcm
mb-䞊のcm
d'b-d =削陀

もう䞀床挿入モヌドに移動したす
> cv <-遞択モヌド圌に぀いおは少し埌で、Wimのすべおの力を瀺したいだけです
4j-j-カヌ゜ルを䞋にnj-シフトをn回繰り返すこずを意味したす
4 >>-テキストを右にシフト、n >> njず同様
20G-20行目に移動
= 'a-自動フォヌマットの驚異 =

挿入モヌドに移動したす
q -倉曎を保存せずに終了する
あなたはvimがすでにマスタヌされおいるず思うなら-あなたは入力するだけですwq私はお勧めしたせんが、あなたは詊すこずができたす



テキスト内の単語を怜玢する



*ファむル内の珟圚の単語の次の蚀及に移動したすたずえば、カヌ゜ルが「Vasya」ずいう単語を指しおいる堎合、ファむル内のこの単語の次の蚀及に移動したす
 *ず同じですが、前の蚀及に移動したす
/カヌ゜ルから始たるテキストは、テキスト行の次の蚀及を怜玢し、そこにゞャンプしたす。 怜玢を実行するには、Enterキヌを抌したす。 最埌の怜玢を繰り返すには、n次ぞを抌したす
テキストは / textず同じですが、怜玢は反察方向に進みたす


テキストブロックを効果的に移動する



芖芚的な遞択ず適切な遞択モヌドを䜿甚する



芖芚的な匷調衚瀺には3぀の䞻なモヌドがありたすテキスト匷調衚瀺モヌド。 これらのモヌドは次のようにアクティブになりたす。

v文字遞択モヌド。 このモヌドはほずんどの人が䜿甚するので、残りを詊す前に緎習しおみおください。
V行ごずの遞択モヌド。 このモヌドでは、行党䜓が垞に匷調衚瀺されたす。 これは、耇数の行を遞択する堎合にはるかに䟿利です。
> cv <ブロック割り圓おモヌド。 少数の゚ディタヌで䜿甚できる非垞に匷力なツヌル。 内郚にテキストがある長方圢のブロックを遞択するず、匷調衚瀺されたす。

通垞のカヌ゜ル制埡コマンドもすべお機胜したす。 たずえば、 vwwwコマンドは 、vimをシンボルごずのビゞュアル線集モヌドにし、次の3぀の単語を匷調衚瀺したす。 Vjjコマンド-vimをシンボルごずのビゞュアル線集モヌドにし、珟圚の行ずその䞋の2行を遞択したす。

ビゞュアル遞択モヌドから切り取りず貌り付け



おそらく、テキストのいく぀かのセクションを遞択した埌、それを䜿っお䜕かをしたいず思うでしょう。そうでなければ、なぜそれを匷調する必芁があるのでしょうか テキストの遞択したセクションで䜿甚できる䟿利なコマンドを次に瀺したす。

d遞択したテキストを切り取り削陀しお、クリップボヌドに眮きたす
yマヌクされたテキストをクリップボヌドにコピヌダンクしたす
cマヌクされたテキストを切り取り、クリップボヌドに眮きたす。 このコマンドはdコマンドず同様に機胜したすが、゚ディタヌを挿入モヌドのたたにしたす

非ビゞュアル遞択モヌドからのカットアンドペヌスト



切り取りたたはコピヌする必芁があるこずがわかっおいる堎合は、芖芚的な遞択モヌドに入らずにこれらの操䜜を実行できたす。 時間を節玄できたす

d {モヌション} -「スキップ」ずマヌクされたテキストを切り取り、クリップボヌドに入れたす。 たずえば、dwコマンドは単語を切り取り、dfSコマンドはカヌ゜ル䜍眮から次の文字Sで終わるテキストを切り取りたす。これは、文字S自䜓を含む珟圚の行に衚瀺されたす
y {motion}スキップされたテキストをコピヌする
c {motion}は「欠萜」テキストを切り取り、゚ディタヌを挿入モヌドのたたにしたす
ddは珟圚の行をカットしたす
yyは珟圚の行をコピヌしたす
ccは珟圚の行をカットし、゚ディタヌを挿入モヌドのたたにしたす
Dは、カヌ゜ル䜍眮から珟圚の行の終わりたでテキストを切り取りたす
Yは yyなどのすべおのテキストをコピヌしたす。 これはもちろん非暙準です。Yチヌムに期埅するアクションにy $を䜿甚できたす
Cカヌ゜ルから行末たでテキストを切り取り、゚ディタヌを貌り付けモヌドのたたにする
xは珟圚の文字を切り取りたすバックスペヌスのように機胜したす
s珟圚のキャラクタヌを切り取り、゚ディタヌを貌り付けモヌドのたたにする

挿入するには、テキストを貌り付ける堎所にカヌ゜ルを眮き、 pキヌを抌したす

アクションを繰り返さない



玠晎らしいチヌム。



vimで、をクリックしたす。 ピリオドは、最埌に入力されたコマンドを繰り返したす。 たずえば、最埌のコマンドがdw 単語を削陀であった堎合、クリック埌。 コマンドモヌドでは、vimは別の単語を削陀したす。

カりンタヌを䜿甚する



カりンタヌは別の匷力で時間を節玄するツヌルです。 すべおのチヌムの前に番号を付けるこずができたす。 この数倀は、コマンドを繰り返す必芁がある回数を瀺したす。 以䞋に䟋を瀺したす。
3jはカヌ゜ルを3行䞋に移動したす
10行で10行削陀
y3f "は、カヌ゜ルから珟圚の行のカヌ゜ルの埌の3番目の匕甚笊にテキストをコピヌしたす。


ご枅聎ありがずうございたした
正盎に蚀うず、もっず曞きたいず思いたしたマクロ、レゞスタ、远加モゞュヌルなどのテヌマには觊れたせんでしたが、ボリュヌムの芳点からは、今のずころ十分だず思いたす
私は十分なカルマを持っおいる堎合-私は継続を小䟿するこずを玄束したす=

自分で远加したす-戊いで簡単に孊ぶのは難しいです、最初は私にずっお氎泳はひどく耇雑で盛り䞊がっおいお、垞に䜕かを望んでいたので、テキストを入力するこずはできたせんでした=
今-メモ垳などのどこかにテキストを入力できない WIMを介しおメヌルを送信するこずもできたす。

筆者がlinuxずvimを初めお玹介しおくれた人に感謝したいのですが、この蚘事のおかげで、Roman Romanchuckに感謝するこずができたす。
pssリク゚スト-激しく蹎らないでください、私は曞くのが䞋手ですが、詊しおみたす!!

Source: https://habr.com/ru/post/J28108/


All Articles