Пошаговый Vim: Как Вы выстраиваете в линию произвольный текст произвольным разделителем?

Фон:

Существует много больших учебных руководств, и "обманывает" страницы для Vim, но одна вещь, которая является очень трудной, состоит в том, чтобы найти конкретные инструкции о том, как сделать некоторую произвольную вещь, что можно легко сделать в собственном знакомом текстовом редакторе IDE. Поэтому я прошу пошаговые инструкции относительно того, как Вы, я сделал бы что-то в Vim, который я уже знаю, как сделать в других текстовых редакторах. Мне нравятся Vim и большая встроенная справка и многочисленные учебные руководства онлайн, но иногда человек должен сломаться и спросить другого человека.

Вопрос:

Предположим, что у меня есть следующий код в моем файле, как я могу использовать Vim для получения ДО, к ПОСЛЕ?

  BEFORE:
  Lorem ipsum dolor |  sit amet, consectetur | adipisicing elit,
  sed do eiusmod | tempor incididunt | ut 
  labore et | dolore magna aliqua. | Ut enim ad minim veniam,
  quis nostrud | exercitation ullamco | laboris 
  nisi ut | aliquip ex ea commodo | consequat. Duis aute irure

  AFTER:
  Lorem ipsum dolor  |  sit amet, consectetur   |  adipisicing elit,         
  sed do eiusmod     |  tempor incididunt       |  ut                        
  labore et          |  dolore magna aliqua.    |  Ut enim ad minim veniam,  
  quis nostrud       |  exercitation ullamco    |  laboris                   
  nisi ut            |  aliquip ex ea commodo   |  consequat. Duis aute irure

Примечания:

  • Было бы хорошо сделать это на основе любого произвольного разделителя, не только символа вертикальной черты.

  • Если Вы не нашли способ сделать это, но Вы знаете о плагине, который помогает, но предпочтение переходит к кому-то, у кого есть рабочее решение, которое они использовали прежде

7
задан dreftymac 27 May 2010 в 18:04
поделиться

3 ответа

Если вы используете плагин Align , вы можете просто:

  1. Визуально выделить текст с помощью V
  2. Тип : Align |

Где | - любой разделитель

ИЛИ

  1. Визуально выберите текст с помощью V
  2. Тип \ t |

Для предустановки | ярлык.

13
ответ дан 6 December 2019 в 10:47
поделиться

Это не волшебная пуля, и если вы много этим занимаетесь, я надеюсь, что вы найдете / создадите плагин, но эти шаги работают, не требуют установки ничего особенного, и их все равно полезно изучить, так как они обобщать для целого ряда задач.

  1. : установите noet , чтобы табуляция не превращалась в пробелы.
  2. : установите ts = 25 , чтобы установить хороший большой размер табуляции.
  3. :% s / \ w * | \ w * / \ t | \ t / g , чтобы добавить одну табуляцию вокруг труб вместо произвольного интервала.
  4. : установите et , чтобы табуляции преобразовывались обратно в пробелы, когда мы
  5. : retab преобразовываем их.
  6. Здесь все хорошо выстроено, но интервалы могут быть чрезмерными. Поэтому используйте режим визуального блока ( Ctrl + v ), чтобы навести порядок.

Я часто использую комбинации подобных вещей для ряда задач по работе с текстом. Режим визуального блока чрезвычайно полезен, и я не видел много других редакторов, которые имели бы что-то сопоставимое. См. Также : блочные примеры помощи .

3
ответ дан 6 December 2019 в 10:47
поделиться

Damian У Конвея есть серия статей о Vim в IBM Developer Works. Этот:

http://www.ibm.com/developerworks/linux/library/l-vim-script-2/index.html

показывает, как создать функцию для выстраивания операторов присваивания. Он находится в разделе под названием Функция, которая поможет вам написать код . Я думаю, вы могли бы обобщить это для своих нужд. Или используйте плагин Align. Иногда я разрываюсь между написанием собственного инструмента, из которого я могу чему-то научиться, и приобретением чужого инструмента, который часто лучше моего и позволяет мне быстрее вернуться к работе.

Между прочим, вся серия отличная, , и это еще не все. В последнем абзаце последней статьи говорится:

Итак, в следующей статье этой серии мы рассмотрим простую архитектуру подключаемых модулей Vim, которая позволяет вам выделить части вашего .vimrc и изолировать их в отдельных модулях. Мы посмотрим, как работает эта система подключаемых модулей, разработав автономный модуль, который устраняет некоторые из ужасов работы с XML.

2
ответ дан 6 December 2019 в 10:47
поделиться