Мені подобається, що довгі рядки відображаються на більш ніж одній термінальній лінії; Мені не подобається, що 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
Зберігає візуальну ширину тексту, але не додає новий рядок у режимі вставки.
Дивно, що така проста установка вимагає, щоб ця кількість «hocus-pocus» працювала.
Щоб відповісти на ваше запитання зараз, мені здалося, що це поєднує наступне:
:set wrap linebreak nolist
(це, здається, запобігає розриву існуючих ліній, просто оберніть їх.)
І
set formatoptions=l
(це запобігає порушенню нових / відредагованих рядків, в той час як + = не робить це для мене, оскільки інші налаштування / плагіни, здається, знаходять простір і додають власні параметри, які замінюють мою.)
Якщо, як і я, ви використовуєте gVim в Windows, то ваш .vimrc файл може створювати ще один "приклад" файл Vimscript, який автоматично встановлює textwidth
(у моєму випадку 78
) текстові файли.
Моя відповідь на подібне запитання, як на це - Як зупинити обтікання тексту gVim у стовпці 80 - на сайті Exchange та 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 і вирішив проблему, коли інші запропоновані рішення цього не зробили.
Правильно, що встановлений nowrap дозволить вам вставляти довгий рядок без vi / vim, додаючи нові рядки, але тоді візуально не буде обгорнута лінія для легкого читання. Замість цього потрібно прокрутити лише один довгий рядок.
Щоб візуально обгортати рядок, але не вставити символи нового рядка, встановіть обгортку (яка, мабуть, за замовчуванням, тому не потрібно встановлювати) та встановіть textwidth = 0 .
У деяких системах налаштування textwidth = 0 є типовим. Якщо ви вважаєте, що це не так, додайте встановлений textwidth = 0 у свій .exrc файл, щоб він став типовим для вашого користувача для всіх сеансів vi / vim.
:set nowrap
це протилежне тому, що ви хочете :(.