VIM коментує те, що я вставляю


14

Я отримав це під час спроби скопіювати цю суть на vim: https://gist.github.com/w0ng/3278077

введіть тут опис зображення

Я помічаю всюди таку саму поведінку: якщо я вставляю щось, що включає коментар, все, що йде за коментарем, вставляється коментується.

Можливо, це пов'язане з тим, що якщо я напишу коментар у режимі вставки та натисну клавішу Enter, наступний рядок автоматично додає коментар.

Як я можу позбутися такої поведінки?

Відповіді:


26

Перед вставкою введіть режим вставки:

:set paste

Щоб повернутися до "нормального" режиму:

:set nopaste

6
або: встановити пасту! toggle :)
valbaca

@valbaca Ви можете використовувати задні посилання для створення code blocksкоментарів
Izkata

Мені потрібні були ці команди навпаки!

11

Крім pasteопції, згаданої Mat , ви також можете безпосередньо отримати доступ до буфера обміну X з VIM:

  • "*p щоб вставити вибір X11
  • "+p щоб вставити буфер обміну X11

Вам потрібна версія VIM з підтримкою X11 (у Debian та її похідних потрібно встановити vim-gtkабо vim-gnomeпакет).

Для отримання додаткової інформації дивіться документацію ( :help x11-selection).


6

Ось що відбувається. Є параметри форматування Vim, які автоматично коментують нові рядки, коли ви знаходитесь у рядку коментарів. Деякі з цих параметрів зазвичай увімкнено за замовчуванням. Наприклад,

# a comment<CR>
# 

Як бачимо, новий рядок автоматично був попереджений із символом коментаря. Можна вимкнути більшість цих параметрів, видаливши cта rвстановивши його formatoptions. Докладнішу :h fo-tableінформацію про ці параметри див.

:set formatoptions-=cr

Vim не має можливості розмежовувати текст, який вставляється за допомогою механізмів вставлення емулятора терміналу, і текст, який ви вводите. Встановлення параметрів вставки ( set paste) вказує Vim очікувати вставленого тексту та вимикати будь-які параметри форматування, які були б небажаними.


3

Моя улюблена - використання putкоманди.

  • :put* вставити з вибору в поточному рядку
  • :put+ вставити з буфера в поточному рядку

"*p/ "+pтакож добре, але :pu[t]має деякі переваги:

  • вона завжди вставляється лінійно
  • Ви можете додати додатковий параметр, щоб контролювати, куди вставити:
    • :$put+ вставити після останнього рядка
    • :0put+ вставити на початку файлу

1

Як бічна відповідь: Якщо у вас є файли, у яких це є, ви можете позбутися від нього, ввівши блок блочного режиму Vertical Visual

ctrl+, vа потім за допомогою клавіш зі стрілками / hjkl перейдіть по частинах, які потрібно видалити, а потім просто натиснітьd

Іноді я знаходжу це швидше, ніж скасовувати налаштування режиму вставки, режим вставлення та зняття режиму вставки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.