Vimの次の行へのコメントの継続を無効にできますか?


65

Vimでは、コードファイルにコメントを入力しているEnterときにを押すと、改行も自動的にコメントになります。

たとえば、Rubyファイルの場合:

# I manually typed the pound at the start of this line and hit enter.
# This line formatted itself this way automatically.

一般的に、これは私が望むものですが、常にではありません。この自動コメント動作を一時的にオフにするにはどうすればよいですか?


一時的に、一度だけ実行するコマンドが必要ですか、それともオンに戻すまでいくつかのコマンドが続くオプションを設定しますか?可能性のあるクロスサイト重複:stackoverflow.com/questions/4896003/...
チロSantilli新疆改造中心法轮功六四事件

回答:


86

あなたが探していると思う

:set formatoptions-=cro

から:help fo-table

You can use the 'formatoptions' option  to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below.  The
default setting is "tcq".  You can separate the option letters with commas for
readability.

letter  meaning when present in 'formatoptions'

t       Auto-wrap text using textwidth
c       Auto-wrap comments using textwidth, inserting the current comment
        leader automatically.
r       Automatically insert the current comment leader after hitting
        <Enter> in Insert mode.
o       Automatically insert the current comment leader after hitting 'o' or
        'O' in Normal mode.
...

13
どうもありがとうございます!この振る舞いは私を悩ませていました-私はunix viからLinux vimに来ました。Googlerの場合:の場合は永久使用、も参照stackoverflow.com/questions/6076592/...と/ etc / vimrcファイルに次の行を入力しますautocmd BufNewFile,BufRead * setlocal formatoptions-=cro
bgStack15

助けなかった。入力する/**<ESC>oと、次の行に星が追加されます。
Qix

動作しません。Z
felwithe

8

一時的に「貼り付け」オプションを設定すると、必要な処理を実行できますが、他の多くのVim機能も無効になります。

を使用:set pasteしてオンにし、:set nopasteオフにします。または、を使用:set paste!して切り替えることができます。

こちらもご覧ください:

:help 'paste'
:help 'pastetoggle'

(これらのコマンドは、単一引用符で入力されます。)


4
:set pasteオンにし、:set nopasteオフにする
ユーザー

2
あるいは:set paste!、TRUEとFALSEを切り替えるために使用できます
フェリペアルバレス14年

3

でフォーマットされていないプレーンな改行を入力し<CR>ます。

コメント付きブロックの次の行の入力を続けたい場合はO、通常どおりキーを使用します。

これを試して:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>

1
どういう意味<CR>ですか?特定のキー?
ピーターモーテンセン

1
CRは復帰を表します。私が使用したコンピューターでは、Enterキーにマップされています。
セバスチャンジュランキ

0

私はこれで終わった:

nnoremap <Leader>o o<Esc>^Da
nnoremap <Leader>O O<Esc>^Da

新しい行を追加し、そこにすでに挿入されているものをすべて削除し、インデントされた列でカーソルを挿入モードのままにします。形式オプションは変更されません。


0

この回答は、Debianおよびその派生物に適用されます

Debianディストリビューションでは、Vimのデフォルトは不合理です。それらは/usr/share/vim/vim80/defaults.vim、(!)の/etc/vim/vimrc実行後に配置され、適用されます。Vimにデフォルトを使用しないように指示する唯一の方法は、~/.vimrcたとえ空白であっても存在するようにすることです。起動時にVimはから読み込もうとし.vimrcますが、ファイルが見つからない場合はデフォルトを適用し、マウスの統合、コピーと貼り付けの癖、コメントの自動折り返しなど、多くの望ましくない動作を引き起こします。

Debianでは、単に実行するだけですべてを修正できます touch ~/.vimrc

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.