Мне нравится, что длинные строки отображаются более чем на одной строке терминала; Мне не нравится, что vim вставляет новые строки в мой текст. Какую часть .vimrc я должен изменить?
Мне нравится, что длинные строки отображаются более чем на одной строке терминала; Мне не нравится, что vim вставляет новые строки в мой текст. Какую часть .vimrc я должен изменить?
Ответы:
использование
:set wrap
Визуально переносить строки, то есть строка по-прежнему представляет собой одну строку текста, но Vim отображает ее на нескольких строках.
использование
:set nowrap
Для отображения длинных строк одной строкой (т.е. вы должны прокручивать горизонтально, чтобы увидеть всю строку).
Мне нравится, что длинные строки отображаются более чем на одной терминальной линии
Этот вид визуального / виртуального переноса строк включается с помощью wrap
опции окна:
set wrap
Мне не нравится, что vim вставляет новые строки в мой текст.
Чтобы отключить перенос физической строки, очистите оба параметра: textwidth
и wrapmargin
параметры буфера:
set textwidth=0 wrapmargin=0
set textwidth=0 wrapmargin=0
работает, но если я вставлю его .vimrc
, это не будет иметь эффекта, например, для простых текстовых файлов. Как узнать и устранить перезапись?
:verbose set textwidth? wrapmargin?
. Это скажет вам их текущие значения, а также, где они были установлены. Возможно, у вас есть плагин, который переопределяет их. В этом случае вы можете либо удалить этот плагин, либо попытаться переопределить настройку плагина позже в вашем пути выполнения (например:) ~/.vim/after
или с помощью вашей собственной автокоманды. Правильный подход будет зависеть от того, где / как он сбрасывается.
set wrap
и set linebreak
это то, что сделал это для меня.
Я не уверен, что полностью понимаю, но вы, возможно, ищете параметр конфигурации 'formatoptions'. Попробуйте что-то вроде :set formatoptions-=t
. t
Вариант будет вставить разрывы строк , чтобы сделать обтекание текстом в ширину набора по textwidth
. Вы также можете поместить эту команду в свой .vimrc
, просто удалите двоеточие ( :
).
tw
.
Используйте :set nowrap
.. работает как шарм!
:set tw=0
VIM не будет автоматически вставлять разрывы строк, но сохранит перенос строк.
Вы можете найти set lbr
полезным; с set wrap
этим будет обтекание, но только разрезание строки в пробеле, а не в середине слова.
например
without lbr the li
ne can be split on
a word
и
with lbr on the
line will be
split on
whitespace only
set nolinebreak
вместоset lbr
set formatoptions-=t
Сохраняет визуальную ширину текста, но не добавляет новую строку в режиме вставки.
Странно, что для такой простой настройки потребуется такое количество «фокус-покуса».
Чтобы ответить на ваш вопрос сейчас, мне показалось, что он работает с сочетанием следующего:
:set wrap linebreak nolist
(это, кажется, предотвращает разрыв существующих строк, просто перенос.)
И
set formatoptions=l
(это предотвращает разрыв новых / отредактированных строк, в то время как + = не делает этого для меня, так как другие настройки / плагины, кажется, находят место и добавляют свои собственные опции, которые переопределяют мою.)
Если, как и я, вы используете gVim в Windows, то ваш файл .vimrc может быть источником другого «примера» файла Vimscript, который автоматически устанавливает textwidth
(в моем случае 78
) текстовые файлы.
Мой ответ на такой же вопрос, как и этот, - Как остановить перенос текста gVim в столбце 80 - на сайте Vi и Vim Stack Exchange :
В моем случае комментарий Витора предложил мне выполнить следующее:
:verbose set tw?
Это дало мне следующий вывод:
textwidth=78 Last set from C:\Program Files (x86)\Vim\vim74\vimrc_example.vim
В vimrc_example.vim я нашел соответствующие строки:
" Only do this part when compiled with support for autocommands. if has("autocmd") ... " For all text files set 'textwidth' to 78 characters. autocmd FileType text setlocal textwidth=78 ...
И я обнаружил, что мой .vimrc получает этот файл:
source $VIMRUNTIME/vimrc_example.vim
В моем случае я не хочу
textwidth
устанавливать какие-либо файлы, поэтому я просто закомментировал соответствующую строку в vimrc_example.vim .
autocmd FileType text setlocal textwidth=0
файл vimrc, и это устранило проблему, когда другие предложенные решения этого не сделали.
Это правильно, что установить сейчас позволит вам вставить длинную строку без добавления новых строк в vi / vim, но тогда строка не будет визуально перенесена для удобства чтения. Вместо этого вам нужно прокрутить только одну длинную строку.
Чтобы визуально переносить строку, но не вставлять в нее символы новой строки, установите перенос (который, вероятно, по умолчанию не требуется) и установите textwidth = 0 .
В некоторых системах значение textwidth = 0 установлено по умолчанию. Если вы не находите, что это так, добавьте set textwidth = 0 в ваш файл .exrc, чтобы он стал вашим пользователем по умолчанию для всех сеансов vi / vim.
:set nowrap
это противоположность того, что вы хотите :(.