Итак, вот мои проблемы. Скажем, у меня есть файл 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
работает только вместе с разрывом строки
, чтобы управлять отображением линий. Он (по-видимому) не работает вместе с textwidth
, чтобы определить, где вставляются жесткие разрывы строк. Так что моя идея ниже не сработает ...
Удивительно, но я не нашел ничего, что указывало бы на то, что другие разделяют эту проблему, что наводит меня на мысль, что я делаю что-то не так. Тем не менее, моя идея заключалась в том, чтобы добавить символ (
к настройке breakat
(вместе с [
и {
, пока я работал)) .
Я пробовал это; вот результат : set breakat
:
breakat= ^I!@*-+;:,./?([{
Однако это безрезультатно. Независимо от того, что я делаю, Vim настаивает на взломе после "=" выше . У меня такая же проблема с длинными именами функций, когда они ломаются сразу после 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 подчиняться моей настройке breakat, или какие-либо другие мысли о том, как лучше всего справиться с этим поведением?