Vim шаг за шагом: как вы выстраиваете произвольный текст по произвольному разделителю? - PullRequest
7 голосов
/ 27 мая 2010

Справочная информация:

Для 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

Примечания:

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

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

Ответы [ 3 ]

13 голосов
/ 27 мая 2010

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

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

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

OR

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

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

3 голосов
/ 27 мая 2010

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

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

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

2 голосов
/ 28 мая 2010

У Дамиана Конвея есть серия статей о Vim на IBM Developer Works. Вот этот:

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

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

Кстати, вся серия отлично, и это еще не все. Последний абзац последней статьи гласит:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...