469

Vimで、選択範囲の各行の先頭に文字を挿入するにはどうすればよいですか?

たとえば、//自分の言語のコメント システムで/* */. どうすればいいですか?

4

14 に答える 14

839
  • を押しEscて「コマンドモード」に入ります
  • Ctrl+を使用Vしてビジュアル ブロック モードに入る
  • Up/を移動Downして、コメントする行のテキストの列を選択します。
  • +を押して、挿入するテキストを入力しますShifti
  • 次にEsc、 を押して 1 秒待つと、挿入されたテキストがすべての行に表示されます。

さらなる情報と読み物については、Vim Tips Wiki の「 Inserting text in multiple lines 」を参照してください。

于 2008-10-31T13:02:10.193 に答える
198

これにより、各行の先頭が「//」に置き換えられます。

:%s!^!//!

これは、選択された各行の先頭を "//" に置き換えます (ビジュアル モードを使用して選択します)。

:'<,'>s!^!//!

(通常モードでは)最後の視覚的な選択を復元することに注意してくださいgv。これは時々便利です。

于 2008-10-31T12:59:17.017 に答える
91

検索と置換の一般的なパターンは次のとおりです。

: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
于 2010-10-06T18:05:09.630 に答える
28

さらに別の方法:

  • 行頭に移動
  • ビジュアルブロックモードに入る ( CTRL- v)
  • j必要な行を選択します ( /で上下に移動するkか、 [line] で行にジャンプしますG) 。
  • プレスI(大文字の i)
  • コメント文字を入力します
  • 押すESC
于 2008-11-20T19:51:29.197 に答える
24

#これは、すべての行の先頭に追加します:

:%s/^/#/

そして、適切にコメントするスクリプトがないことについて人々が不平を言うのをやめるでしょう。

于 2010-01-08T21:00:34.903 に答える
16

もしあなたがそれについて超凝りたいなら、これをあなたの .vimrc に入れてください:

vmap \c :s!^!//!<CR>
vmap \u :s!^//!!<CR>

次に、ビジュアル モードのときはいつでも、ブロックにコメントを付けたり、コメントを外し\cたりできます。もちろん、これらのショートカット キーストロークを何にでも変更できます。\u

于 2008-10-31T13:31:55.767 に答える
14

さらに別の方法:

:'<,'>g/^/norm I//

/^/は、すべての行に一致する単なるダミー パターンです。 norm以降の通常モードのコマンドを実行できます。 I//カーソルを行頭にジャンプしながら挿入モードに入り、次のテキスト (2 つのスラッシュ) を挿入するように指示します。

:gは、複数のモード間でジャンプしたり、行を削除または追加したり、カーソルを移動したり、一連のマクロを実行したりするなど、複数の行で複雑なことを行うのに便利なことがよくあります。パターンに一致します。

于 2008-11-02T00:00:24.687 に答える
3

コード ブロックのコメントには、NERD Commenterプラグインが気に入っています。

いくつかのテキストを選択してください:

Shift-V
...select the lines of text you want to comment....

コメント:

,cc

コメントを外します:

,cu

または、行またはブロックのコメント状態を切り替えるだけです:

,c<space>
于 2009-08-29T18:27:56.070 に答える
2

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」を使用して(選択した)行をコメント化/コメント解除できます

于 2008-11-02T00:12:44.193 に答える
1

コメントする領域を視覚的なブロックとしてマークします ( <C-V)

そして、やりますc#<ESC>p

  1. c「#」にぶら下げる
  2. 元に戻す

頻繁に行う場合は\q、.vimrc でショートカット (例) を定義します。

:vmap \q c#<ESC>p
于 2015-09-29T11:39:58.233 に答える