Сколько мне раз говорили, что VIM умеет только пищать и портить текст, я смеялся и не верил. Да, пищит. Если на плате есть динамик, а в ядре — модуль спикера. И от того, и от другого избавляюсь при первой возможности. А порчи не наблюдал.
Позавчера, точнее уже вчера, набираю простейшую программу на C. С таким циклом:
for (i=0; i<imax; i++) { сделать что-то извращённое с текстовой строкой и напечатать символ s[i] }
Собираю. Работает. Всё хорошо, всё прекрасно.
Копирую в программу пару строк из другого окна. При этом забываю включить режим вставки, отключённый при сохранении. Вставляемое попадает в программу частично и не в то место. Бывает. Несколько раз жму undo. Вставляю. Поправляю. Сохраняю.
Собираю. Запускаю. Работает, но печатает какую-то хрень на десятки тысяч строк. Вроде длинного списка шаблонов типа *.txt. Потом останавливается с ошибкой сегментации.
Закомментирываю вставленное. Печатает то же самое.
Удаляю вставленное. Печатает то же самое.
Жму undo, откатываюсь к состоянию до вставки. Печатает то же самое.
Расставляю по всему блоку отладочные сообщения. Прихожу к выводу, что imax внезапно возрастает на много порядков, хотя должен был быть меньше 10.
Добавляю ещё отладочные сообщения. imax=2.
Внимательно перечитываю. Каким-то непонятным образом условие сменилось с i<imax на просто imax. И правка не отменилась по undo. Ржу. Решаю, что спать пора.