9

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

set textwidth=0 
set wrapmargin=0

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

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

3 ответа3

13

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

:verbose set tw? wm?

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

:scriptnames

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

:help -V

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

:help 'textwidth'
:help 'wrapmargin'

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

:set filetype?

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

:help filetype-overrule

пункт № 3

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()

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

0

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

(Возможно, BufAdd и BufCreate являются избыточными, но я добавил их на всякий случай)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .