В настоящее время я пишу много простого текста (и LaTeX с минимальным форматированием в абзацах), и было бы неплохо, если бы я мог настроить vim, чтобы сохранить каждое предложение (для простоты, текст заканчивается на «.», «!» или '?' - это завершающая пунктуация, за которой следует пробел, чтобы не разбивать десятичные числа) на отдельной строке, чтобы различия в VCS были более полезными.
Как минимум, я хотел бы gq
отформатировать текст из:
He lay flat on the brown, pine-needled floor of the forest, his chin on his
folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he
could see the dark of the oiled road winding through the pass. There was a
stream alongside the road and far down the pass he saw a mill beside the
stream and the falling water of the dam, white in the summer sunlight.
Для того, чтобы:
He lay flat on the brown, pine-needled floor of the forest, his chin on his folded arms, and high overhead the wind blew in the tops of the pine trees.
The mountainside sloped gently where he lay; but below it was steep and he could see the dark of the oiled road winding through the pass.
There was a stream alongside the road and far down the pass he saw a mill beside the stream and the falling water of the dam, white in the summer sunlight.
Но было бы неплохо, если бы vim также выполнял это форматирование по мере ввода текста (как это происходит с переформатированием текстовой полосы). Это возможно?
Мое текущее решение состоит в том, чтобы присоединиться к абзацу J
, а затем запустить, :'<,'>s/\. /.\r/g
что довольно неплохо, поскольку в нем мало восклицательных и вопросительных знаков, но было бы намного лучше, если бы я мог сделать gq немного умнее.
)
и вставить новую строку; повторять до тех пор, пока не достигнете конца диапазона». Тогда он предположительно будет применять любые правила отступов. Но мой Вимфу слишком слаб для этого. :)e.g. blah
, иBlah et al. 2018
это немного раздражает. Вы можете сопоставить подобные шаблоны с чем-то вроде's/\(e\.g\|\<al\)\@<![.!?]\zs /\r/g'
. Просто добавьте больше шаблонов в первую группу, чтобы избежать других вещей, на которые вы не хотите делиться. В противном случае, это супер полезно, спасибо. Я не сталкивалсяgq
раньше, иgqip
это супер полезно для форматирования текста, который искажены текстовые редакторы соавтора.Ну, вы можете настроить некоторые карты и автокоманды:
Затем просто установите тип файла в customtxt или вызовите
AddSentenceMaps
функцию вручную.источник
Я хочу добавить свои мысли по этому вопросу. Обычно люди хотят такой особенности из - за перепрыгивая через завернутые линии , когда те , перемещаясь по коду с
j
иk
команды , которые по умолчанию поведение Vim. Для навигации по заштрихованным линиям я используюgj
- двигаться вниз иgk
- двигаться вверх. Также есть возможность переназначения стандартаj
иk
команды на g-префиксные аналоги, но ИМХО это было бы излишним.источник
j
иk
до ,gj
иgk
когда вы хотите ;-)Он не отвечает на ваш конкретный вопрос о переформатировании, но «set wrap» вместе с «set linebreak» могут сделать редактирование длинных строк намного более приятным. Объедините это с gj и gk для навигации по заштрихованным строкам. Я отображаю стрелки вверх и вниз на gj и gk соответственно, так что у меня есть выбор между перемещением вверх и вниз реальных линий или визуальных линий. Как и для Home / End до g0 / g $.
источник