From 8e49bec8beb1c745ef756855ca3c693e96524ed0 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 21 Apr 2020 12:06:03 +0300 Subject: [PATCH] =?utf8?q?=D0=A4=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80?= =?utf8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20C=20=D0=BA=D0=BE=D0=B4?= =?utf8?q?=D0=B0:=20=D1=84=D0=B8=D0=B3=D1=83=D1=80=D0=BD=D1=8B=D0=B5=20?= =?utf8?q?=D1=81=D0=BA=D0=BE=D0=B1=D0=BA=D0=B8=20=D0=BF=D0=BE=D1=81=D0=BB?= =?utf8?q?=D0=B5=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0=D1=82=D1=83=D1=80=D1=8B?= =?utf8?q?=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Уже какую неделю я страдал от того, что в vi команды [[ и ]] не прыгают по функам, как это сделано для Python или Go. В этих двух языках это возможно банально просто из-за наличия "func", "def", "class" и подобных слов, по которым превосходно можно делать навигацию. В C же, разбитое на множество строк объявление функи, невозможно просто так регуляркой выцепить. Для форматирования кода я использую clang-format, у которого очень много ручек настройки этого форматирования. Руками я вообще ничего не делаю. И меня осенило что [[ и ]] прыгают по фигурным скобкам на начале строки и clang-format-у можно сказать чтобы он все функи вот так и форматировал: int main() { ... } Я много видел странного форматирования и такое вот меня бесило. Ладно, самое странное и безумное что я видел -- GNU стиль. Хотя наверное там не просто так всё. Вот и тут эти фигурные скобки бьют по глазам, но зато теперь навигация по коду стала невероятно простой. До этого хака я вовсю использовал https://github.com/jeetsukumaran/vim-indentwise плагин, но с ним приходилось глазами понимать где находится мой курсор и какую команду надо дать чтобы прыгнуть на основе indentation в начало функи. -- 2.50.0