一行にコメントを付けてコメントを解除したいとしましょう。
私もできることを知っています
:s!^!//!
それから
:s!^//!!
さて、これを線として使用したい場合はどうすればよいですか?
もともと、もし行は次から始め//
て削除します。その他追加してください。
このコマンドを2つではなく1つのショートカットにマップしたいと思います。
ベストアンサー1
私はこれを直接行うことができないと確信しています。しかし、私はあなたのために機能を思いついた。これをあなたの~/.vimrc
:
function! Toggle()
s!^\(\s*/\?[^/\s]/\?\)!xxx//\1!e
s!^\(\s*\)//!\1!e
s!^xxx//!//!e
endfunc
(これを行うと、すでにxxx//
行の先頭にある内容が変更されますが、//
これはほとんど発生しないようです):call Toggle()
。以下ではこれをCtrl+にマップします/。もちろん、必要なキーの組み合わせに置き換えることができます(他の組み合わせにマッピングするのに役立つかどうかを尋ねます)。また、これを次の項目に入れてください~.vimrc
。
nnoremap <C-/> :call Toggle()<CR>
vnoremap <C-/> :call Toggle()<CR>
inoremap <C-/> <Esc>:call Toggle()<CR>i
Ctrl+ は、それぞれ/一般、視覚、挿入モードの機能にマップされます。挿入マッピングは挿入モードに戻りますが、カーソルは行の先頭に移動します。通常のパターンを維持するには、行のi
末尾から削除するだけですinoremap
。
(スペースを処理するように更新されました。//
スペースを削除した後は常に行の先頭に挿入します)