Vimで一度に複数の行にコメントしなければならないことがよくあります。私が知っているメソッドは、TextMateが行をコメントアウトする方法ほど速くはありません。
それを行うためのあなたの好きな方法は何ですか?
私は現在使用しています:
#
):
と入力すると、:'<,'>
に拡張できる:'<,'>s/^/#/
プロンプトが表示されます。mm
と入力します。:'m,.s/^/#/
私は方法1が一番好きですが、それでももっと良い方法があることを願っています。
コードをコメント化する最も一般的な方法を説明したと思いますが、Vimスクリプトを使用することにオープンである場合は、それらを見てください。
正規表現部分にキーマップを使用しますが、最初に同じ視覚的選択を行います。通常使用するもの:
vip
ビジュアルブロックを取得するには(段落のビジュアル選択)
その後、
\cc
\co
コメントの追加/削除(筋肉の記憶上の理由でcc、coが選択されました)
.vimrcで次のように定義されたマッピングを使用します。
vmap <leader>cc :s/^/#/<cr>
vmap <leader>co :s/^#//<cr>
これはかなり古いですが、他の人と非常によく似ているが、ハイライト解除機能を追加するソリューションを追加したかっただけです。私の.vimrcファイルには次のマップがあります。
:vmap `c :s/^/\/*/<cr>gv:s/$/*\//<cr>:noh<cr>i
:vmap `r :s/^\/\*//<cr>gv:s/\*\/$/<cr>:noh<cr>i
注:古いcコードと互換性を持たせるために、/ *コード行* /スタイルのコメントを使用しています。 vimでは、行を強調表示し、 `cを押してコメントし、` rを押してコメントを削除します。
私は通常、ステップをマクロに保存してから、好きな方法でマクロを呼び出します。
プラグインは行く方法です。それらは拡張可能であり、これまでに使用するより多くのファイルタイプをすでにサポートしており、行のコメント状態を自動的に切り替えることができます(つまり、1つで十分な場合に2つのショートカットを使用する必要はありません)。
CMSによって提供されたリスト を参照してください。
ANSI Cの1行コメント用の一連のコマンドを探していましたが、SOでほとんどの回答を試しました。
それらはどれも私のニーズに合わず、現時点では古い7.2バージョンのVimを使用する必要があり、適切なプラグインを簡単にダウンロードできないため、次の便利なマッピングを思いつきました。
:nnoremap <leader>c :exe "normal mqI/* "<esc> :exe "normal A */"<esc> :exe "normal 'q"<cr>
:nnoremap <leader>r ^xxx$xxx^
<leader>c
行をコメントアウトし、その行の先頭に戻ります。
<leader>r
は、現在の行の最初と最後からコメントを削除します。