Как я могу выполнить действие n-много раз в TextMate (и Emacs, и Vim могут сделать это легко!) - PullRequest
3 голосов
/ 15 сентября 2008

Emacs : C-U (79) # "красивый разделитель длиной 79 символов

VIM : 79-i-# "см. Выше

Textmate : ????

Или просто предполагается, что мы сделаем вызов Ruby или у нас будет фрагмент кода?

Ответы [ 3 ]

2 голосов
/ 15 сентября 2008

Я бы создал команду bundle для этого.

Вы можете принять выбор редактора в качестве входных данных для вашего сценария, а затем заменить его результатом выполнения. Эта команда, например, возьмет выбранное число и напечатает символ «#» столько раз.

python -c "print '#' * $TM_SELECTED_TEXT"

Конечно, этот пример не позволяет указать символ, но дает представление о том, что возможно.

1 голос
/ 05 ноября 2009

Вдохновлен другими ответами. Сделайте фрагмент со следующим:

`python -c "print ':'.join('$TM_SELECTED_TEXT'.split(':')[:-1]) * int('$TM_SELECTED_TEXT'.split(':')[-1])"`

и при необходимости назначьте ему последовательность клавиш, например, CTRL-SHIFT-R

Если вы введете -x:4, выделите его и вызовете фрагмент (например, по ярлыку), вы получите «-x-x-x-x».

Вы также можете использовать ::4 для получения "::::".

Строка, которую вы повторяете, заключена в одинарные кавычки, поэтому, чтобы повторить ', вы должны использовать \'.

1 голос
/ 18 сентября 2008

Взяв

python -c "print '#' * $TM_SELECTED_TEXT"

шаг вперед, вы можете продублировать примеры, приведенные в вопросе.

Просто создайте фрагмент, называемый делителем или чем-то другим, установите для поля tab trigger что-то подходящее, например, '--', затем введите что-то вроде:

`python -c "print '_' * $TM_COLUMNS"`

Затем, когда вы наберете --⇥ (черточка), вы должны получить разделитель правильной ширины.

Правда, вы потеряли часть краткости, которую получаете от vim, но ее гораздо проще использовать повторно, и вам нужно будет набрать ее только один раз. Вы также можете использовать любой язык, который вам нравится.

...