Как настроить идентификацию 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 удалить автоматически вставленный лидер, когда он вам не нужен.

Другие вопросы по тегам