ТехноСаратов → Блог

Простой файл .vimrc для программирования на СиБлогПрограммы

По просьбам трудящихся частично описываю свой файл .vimrc, который был написан за пару дней и конечно далек от идеала. Есть еще что дополнить и что подправить, но несколько интересных моментов автомати… зирующих написание Си программ в нем всетаки имеется.

В начале ничего особенного нет. Просто выставляем цветовую схему и некоторые другие параметры внешнего вида:

Далее идет самое интересное, а именно функция которая включается при загрузке Си файлов.

Конечно есть cvim плагин, но вопервых он объемный и в нем многое не нужно лично мне, а во вторых самому писать приятнее 🙂

Чтобы понять насколько удобно вводить команды с этой функцией, это нужно попробовать 🙂 Рассмотрим пару примеров.
Скажем, я ввожу ‘if(‘ мне автоматически добавляется вторая скобка и я продолжаю писать условие. После этого не выходя за скобку, прямо на ходу нажимаю ‘{{‘ и у меня автоматически образуется обрамление:


Где | — это я условно обозначил позицию курсора, в которую он переходит сам! А ____ — это вместо пробелов, а то форматирования нету в теге кода…
Таким же манером вызываем функции. Пишем имя скобку ‘(‘ вторая дополняется сама. Указываем передаваемые параметры и нажимаем ‘;;’, курсор переходит к концу строки печатает ; и переходит на новую строку. В общем написание кода превращается в достаточно линейный процесс без неприятного ёрзанья стрелочными клавишами и enter`ом. В принципе в enter практически отпадает надобность. Ну может только для пустых строк. А так можно использовать двойное нажатие ;;, что думаю удобнее нажатия двух кнопок.

Больше из этого файла ничего не покажу, т.к. пока глючно работает. В частности пока не могу разобраться с:

imap «» «»
imap » »

Для ввода пустых строк, по аналогии со скобками. Но это почему-то не работает. Пишет типо бесконечный рекурсивный вызов образуется гдето. Также на очереди автодополнение по TAB и привязка функциональных клавиш к make и перебору ошибок компилирования. Буду рад, если кто-то поделится мыслями как это все сделать. Также буду рад если кто-то выскажет идеи для реализации.