textwidth = 0 и wrapwidth = 0 в .vimrc.local не соблюдаются

11

У меня есть следующие строки в нижней части моего .vimrc.local:

set textwidth=0 
set wrapmargin=0

Однако всякий раз, когда я открываю новый файл, оба эти значения устанавливаются на их значения по умолчанию (72 и 2 соответственно), а не на мои пользовательские настройки. Другие настройки в моем файле .vimrc.local, кажется, установлены (вкладки и т. Д.), Но только эти два продолжают сбрасываться. Если я вхожу, :source ~/.vimrc.localнастройки меняются и работают правильно.

Есть ли способ посмотреть, что настраивает что-либо, когда запускается vim? Я подозреваю, что какой-то плагин или параметр, который поставляется с MacVim или Janus, устанавливает эти параметры, но я не знаю, как посмотреть на каждый параметр сразу.

Ян Поттер
источник
Я никогда не видел ~/.vimrc.localраньше. Версия Януса , что я нашел источники его (если он существует) в конце своего vimrcфайла (который является пунктом назначения ~/.vimrcлинка , что он устанавливает, если вы используете его метод установки). Возможно, не все версии Janus делают это - многие люди, кажется, сливают ту, которую я нашел, в свои вилки, но я не знаю, является ли это «официальной» или нет. Просто чтобы уточнить, где вы взяли своего Януса? Если это Git-версия, какой коммит вы используете?
Крис Джонсен
Стоит прочитать этот формат по умолчанию
anishjp

Ответы:

13

Чтобы узнать, где 'textwidth' и 'wrapmargin' были установлены последними, выполните

:verbose set tw? wm?

Чтобы увидеть, какие файлы были получены, выполните

:scriptnames

Если этого недостаточно для обнаружения проблемы, вы можете использовать опцию -V при запуске Vim и записывать различные события запуска в файл. Видеть

:help -V

Кроме того, значения по умолчанию для 'textwidth' и 'wrapmargin' оба равны 0, а не 72 и 2, поэтому что-то уже устанавливает их в значения не по умолчанию. Для значений по умолчанию см.

:help 'textwidth'
:help 'wrapmargin'

PS
Что-то еще, чтобы проверить, - возможность того, что плагин типа файла делает те настройки. Команда :verbose set ...должна показать, где выполняются эти настройки, но вы также можете выполнить

:set filetype?

чтобы увидеть текущий тип файла, затем откройте $VIMRUNTIME/ftplugin/<filetype>.vim, где <filetype> - это значение параметра 'filetype', найденного выше, чтобы увидеть, выполняются ли эти настройки там. Вы можете переопределить настройки, сделанные плагином типа файла, поместив ваши настройки в файл, который вы создаете, с именем ~ / .vim / after / ftplugin / <filetype> .vim. Видеть

:help filetype-overrule

пункт № 3

garyjohn
источник
Оказывается, проблема была в том ~/.vimrc, что пришло от Януса. Я ожидал, что source ~/.vimrc.localэто будет последнее, что будет выполнено, но он устанавливал эти два с помощью auкоманды. Кажется, что настройки ~/.vimrcсодержат много стилистических решений людей, которые поддерживают Janus. Спасибо, что написали ответ, который поможет мне решить эти проблемы для себя в будущем. :)
Ян Поттер
1
Я также приехал сюда из-за этой проблемы в Янусе. Но обратите внимание, что в последней версии Janus ~/.vimrc.afterзапускается последним, однако, например, было действие, специфичное для python, поэтому мне пришлось использовать его, au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=0а не просто set textwidth=0в этом файле.
Филфрео
8

Я решил это, добавив следующее в мой файл .vimrc.local :

" Disable annoying auto line break
fu! DisableBr()
    set wrap
    set linebreak
    set nolist  " list disables linebreak
    set textwidth=0
    set wrapmargin=0
    set fo-=t
endfu

" Disable line breaks for all file types
:au BufNewFile,BufRead *.* call DisableBr()

Это должно отключить нежелательные автоматические разрывы строк для всех типов файлов

Сиаваш Горбани
источник
1
Работает в .vimrc.after при использовании Janus
Эрик Ян
1
Huzzah, спасибо! Это было единственное, что сработало для меня. По какой-то причине (я не смог разобраться) macvim переопределял ширину текста в моем vimrc для файлов .txt.
Мэтт горит
0

Это должно помочь:

(Может быть BufAddи BufCreateизбыточно, но я добавил его на всякий случай)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()
meain
источник