52

В Vim, если я набираю комментарий в файле кода и нажимаю клавишу Enter, он также автоматически делает перевод новой строки комментарием.

Например, в файле Ruby:

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

В общем, это то, что я хочу, но не всегда. Как я могу временно отключить это автокомментирование?

5 ответов5

74

Я думаю, что вы ищете

:set formatoptions-=cro

From :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.
...
6

Временная установка опции «вставить» может делать то, что вы хотите, но она также отключает множество других функций Vim:

Использование :set paste чтобы включить его и :set nopaste чтобы выключить его. В качестве альтернативы вы можете использовать :set paste! переключить это.

Смотрите также:

:help 'paste'
:help 'pastetoggle'

(Эти команды набираются в одинарных кавычках.)

2

Я ввожу неформатированные простые новые строки с помощью <CR> .

Когда я хочу продолжить ввод следующей строки в прокомментированном блоке, я просто использую клавишу O, как обычно.

Попробуй это:

nnoremap <silent> <cr> :set paste<cr>o<esc>:set nopaste<cr>
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .