回答:
詳しくは、Vim Tips Wikiの「Inserting text in multiple lines」を確認してください。
Shift + v
いましたCTRL + v
。@ vkaul11おそらくあなたが笑ったのと同じこと
これにより、各行の先頭が「//」に置き換えられます。
:%s!^!//!
これは、選択された各行の先頭(ビジュアルモードを使用して選択)を「//」に置き換えます。
:'<,'>s!^!//!
gv
(通常モードでは)最後のビジュアル選択を復元することに注意してください。これは時々役立ちます。
/
をエスケープする必要//
が:s/^/\/\/
ありました:s!^!//
)
検索と置換の一般的なパターンは次のとおりです。
:s/search/replace/
現在の行の最初の「search」を「replace」に置き換えます
:s/search/replace/g
現在の行のすべての「search」の出現箇所を「replace」に置き換えます。「g」は「global」の略です
このコマンドは、現在の行についてのみ、「search」が出現するたびに「replace」に置き換えます。%は、ファイル全体を検索するために使用されます。各置換をインタラクティブに確認するには、確認のために「c」を追加します。
:%s/search/replace/c
ファイル全体の「search」を「replace」に置き換えるインタラクティブな確認
%文字の代わりに、行番号の範囲を使用できます( '^'文字は行頭の特別な検索文字であることに注意してください):
:14,20s/^/#/
14〜20行目の先頭に「#」文字を挿入します
別のコメント文字(//など)を使用する場合は、コマンドの区切り文字を変更します。
:14,20s!^!//!
14〜20行目の先頭に「//」文字シーケンスを挿入します
または、常に//文字を次のようにエスケープすることもできます。
:14,20s/^/\/\//
14〜20行目の先頭に「//」文字シーケンスを挿入します
エディターに行番号が表示されない場合は、次のように入力してください
:set nu
#
ラインの他のものも置き換えると思います。^#
代わりに使用する必要があります。
新規参入者にとってより簡単かもしれない別の方法:
some█
code
here
カーソルを最初の行に置きます。
gg
次のように入力して挿入モードに入り、テキストを追加します。
I / / Space
// █some
code
here
を押しEscてコマンドモードに戻り、ダイグラフを使用します。
j . j .
// some
// code
//█here
j1行下がるモーションコマンドで.、最後に行った編集コマンドを繰り返します。
|
は、大文字ではなくバー(\が付いたもう1つの記号)を入力していることが原因である可能性がありますI
。|
最初はと思った。
これは#
すべての行の最初に追加されます:
:%s/^/#/
そして、人々はあなたが適切にコメントするスクリプトの欠如について不平を言うのをやめるでしょう。
それについて非常に凝ったものにしたいなら、これを.vimrcに入れてください:
vmap \c :s!^!//!<CR>
vmap \u :s!^//!!<CR>
その後、ビジュアルモードでは、あなたがヒットすることができますたび\c
に、Cブロックをommentと\u
するuのそれをncomment。もちろん、それらのショートカットキーストロークを何にでも変更できます。
vmap
!
さらに別の方法:
:'<,'>g/^/norm I//
/^/
すべての行に一致するダミーパターンです。 norm
次の通常モードのコマンドを実行できます。 I//
カーソルを行の先頭にジャンプしながら挿入モードに入り、次のテキスト(2つのスラッシュ)を挿入するように指示します。
:g
多くの場合、複数の行で複雑なことを実行するのに便利です。複数のモード間でジャンプしたり、行を削除または追加したり、カーソルを移動したり、一連のマクロを実行したりすることができます。そして、パターンと一致します。
コードのブロックにコメントを付けるために、私はNERD Commenterプラグインが好きです。
テキストを選択してください:
Shift-V
...select the lines of text you want to comment....
コメント:
,cc
コメント解除:
,cu
または、行またはブロックのコメント状態を切り替えます。
,c<space>
EnhCommentifyプラグインをお勧めします。
例えば。これをあなたのvimrcに入れてください:
let maplocalleader=','
vmap <silent> <LocalLeader>c <Plug>VisualTraditional
nmap <silent> <LocalLeader>c <Plug>Traditional
let g:EnhCommentifyBindInInsert = 'No'
let g:EnhCommentifyMultiPartBlocks = 'Yes'
let g:EnhCommentifyPretty = 'Yes'
let g:EnhCommentifyRespectIndent = 'Yes'
let g:EnhCommentifyUseBlockIndent = 'Yes'
次に、(選択した)行を '、c'でコメント/コメント解除できます