From 3a417a68fd72f8b882dfc760b7dd6fa3a3940cd4 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 1 Jul 2022 12:44:49 +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=20Go=20=D0=BA=D0=BE=D0=B4?= =?utf8?q?=D0=B0=20=D0=B2=20Vim?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit http://www.git.stargrave.org/?p=dotfiles.git;a=commitdiff;h=68ef15d382d0b6f10c6ad30a7370db57ed8318e9 С самого начала знакомства с Go я использовал их плагин для Vim для вызова :Fmt команды форматирования кода, которую никогда не трогал, ибо работает -- не трожь. Для Си кода я использовал set equalprg опцию, и команду "command! -buffer Fmt normal mtgg=G'tz.", которая ставит метку, переходит в начало файла, вызывает equal программу, возвращается на метку. Ведь то же самое можно было бы применить и к Go коду, ведь goimports и go fmt умеют работать в качестве фильтра текста. Родной Vim плагин умеет заполнять quickfix, что мне не нужно при форматировании. Поэтому вместо тьмы строчек можно бы обойтись двумя. Но в его родном плагине увидел красивый хак с тем, чтобы не портить метки и чтобы не скакал экран при вызове :Fmt: они создают view (winsaveview()) и просто его восстанавливают в конце (winrestview()). Просто, красиво и эффективно. :Fmt команда у меня теперь одинакова и для Си и для Go, только equalprg у них отличается. -- 2.48.1