Итак, вот мои проблемы.Допустим, у меня есть файл Python, и я набираю действительно длинную строку, как здесь:
class SomeClass(object):
def some_method(self):
some_variable = SomeOtherClass.some_other_method(some_parameter=some_value)
Когда я набираю это в Vim, это происходит:
class SomeClass(object):
def some_method(self):
some_variable =
SomeOtherClass.some_other_method(some_parameter=some_value)
Это не просто плохой стиль, это ломает PEP8.Я бы хотел, чтобы это произошло:
class SomeClass(object):
def some_method(self):
some_variable = SomeOtherClass.some_other_method(
some_parameter=some_value)
Что соответствует PEP8 .(Для целей этого обсуждения меня интересует только поведение разрыва строки, а не поведение отступа.)
Редактировать: breakat
работает только в сочетании с linebreak
управлять тем, как отображаются строки.Он (по-видимому) не работает вместе с textwidth
, чтобы определить, где вставляются жесткие разрывы строк.Таким образом, моя идея ниже не будет работать ...
Удивительно, но я ничего не нашел там, что другие разделяют эту проблему, что заставляет меня думать, что я делаю что-то не так.Тем не менее, моя идея состояла в том, чтобы добавить символ (
к параметру breakat
(вместе с [
и {
, пока я был там).
Я пробовал это;Вот вывод :set breakat
:
breakat= ^I!@*-+;:,./?([{
Однако, это бесполезно.Независимо от того, что я делаю, Вим настаивает на разрыве после "=" выше.У меня такая же проблема с длинными именами функций, где она сломается сразу после def
.
Вот полное содержимое моего .vimrc:
set nobackup
set nowritebackup
set noswapfile
set columns=80
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set smarttab
set smartindent
set textwidth=80
set wrap
set breakat=\ ^I!@*-+;:,./?\(\[\{
filetype indent on
filetype on
filetype plugin on
(яне нужно устанавливать никаких плагинов и т. д., чтобы попытаться это выяснить.)
Кто-нибудь знает, как я могу заставить Vim подчиняться настройкам своего брейка, или любые другие мысли о том, как лучше всего справиться с этим?это поведение?