Как настроить идентификацию vim для грамотного программирования на Haskell?
Когда я включаю autoindent
для обычного файла *.hs после нажатия Enter новая строка имеет отступ, как и ожидалось. Однако это не работает с грамотными файлами Haskell *.lhs, строки кода которых начинаются с >
(АКА "Птичьи следы"). Курсор всегда располагается в первом столбце.
Как я могу настроить vim так, чтобы когда я был внутри куска кода в файле *.lhs (и пусть \s скажет autoindent
on), нажимая клавишу Enter, вы создаете птичью дорожку на новой строке и делаете соответствующие отступы?
Обновление: чтобы привести пример, скажем, есть
> myfn x | x <= 0 = 0
> | x == 1 = 1▌
где ▌
представляет позицию курсора (надеюсь, у вас нет проблем с просмотром символа Юникод.) Если я нажимаю Enter, я получаю
> myfn x | x <= 0 = 0
> | x == 1 = 1
▌
тогда как я хочу
> myfn x | x <= 0 = 0
> | x == 1 = 1
> ▌
1 ответ
Это должно быть легко достичь с
:set formatoptions+=ro
или же :se fo+=ro
коротко.
С r
а также o
в 'formatoptions'
, Vim пытается вставить комментарий "лидер", включая отступ в новых строках внутри комментария (то есть некомментированный в грамотном Haskell).
Чтобы сделать этот параметр автоматически, настройте автокоманду в вашем vimrc.
autocmd FileType lhaskell setlocal formatoptions+=ro
Совет: используйте CTRL-U
удалить автоматически вставленный лидер, когда он вам не нужен.