Vimで、選択範囲の各行の先頭に文字を挿入するにはどうすればよいですか?
たとえば、//
自分の言語のコメント システムで/* */
. どうすればいいですか?
さらなる情報と読み物については、Vim Tips Wiki の「 Inserting text in multiple lines 」を参照してください。
これにより、各行の先頭が「//」に置き換えられます。
:%s!^!//!
これは、選択された各行の先頭を "//" に置き換えます (ビジュアル モードを使用して選択します)。
:'<,'>s!^!//!
(通常モードでは)最後の視覚的な選択を復元することに注意してくださいgv
。これは時々便利です。
検索と置換の一般的なパターンは次のとおりです。
:s/search/replace/
'search' の最初の出現を現在の行の 'replace' に置き換えます
:s/search/replace/g
現在の行の 'search' をすべて 'replace' に置き換えます。'g' は 'global' の略です。
このコマンドは、現在の行についてのみ、出現する 'search' を 'replace' に置き換えます。% は、ファイル全体を検索するために使用されます。各置換をインタラクティブに確認するには、確認のために「c」を追加します。
:%s/search/replace/c
ファイル全体の「検索」を「置換」に置き換えるインタラクティブな確認
% 文字の代わりに、行番号の範囲を使用できます('^' 文字は行頭の特別な検索文字であることに注意してください)。
:14,20s/^/#/
14 ~ 20 行目の先頭に「#」文字を挿入します
別のコメント文字 (// など) を使用する場合は、コマンド区切り文字を変更します。
:14,20s!^!//!
14 ~ 20 行目の先頭に「//」文字シーケンスを挿入します。
または、次のような // 文字をいつでもエスケープできます。
:14,20s/^/\/\//
14 ~ 20 行目の先頭に「//」文字シーケンスを挿入します。
エディターに行番号が表示されない場合は、次のように入力してください。
:set nu
さらに別の方法:
#
これは、すべての行の先頭に追加します:
:%s/^/#/
そして、適切にコメントするスクリプトがないことについて人々が不平を言うのをやめるでしょう。
もしあなたがそれについて超凝りたいなら、これをあなたの .vimrc に入れてください:
vmap \c :s!^!//!<CR>
vmap \u :s!^//!!<CR>
次に、ビジュアル モードのときはいつでも、ブロックにコメントを付けたり、コメントを外し\c
たりできます。もちろん、これらのショートカット キーストロークを何にでも変更できます。\u
さらに別の方法:
:'<,'>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」を使用して(選択した)行をコメント化/コメント解除できます
コメントする領域を視覚的なブロックとしてマークします ( <C-V
)
そして、やりますc#<ESC>p
c
「#」にぶら下げる頻繁に行う場合は\q
、.vimrc でショートカット (例) を定義します。
:vmap \q c#<ESC>p