(НЕ возможный дубликат Поменять местами текст вокруг знака равенства :)
Очень часто я обмениваюсь вещами. Что боль в заднице.
Скажем сразу после того, как я напишу этот кусок кода
tmp = realloc (words, sizeof (char **) * (*count + 1));
Я заметил, что в строке слишком много звездочек, не нравится, и хочу поменять местами два множителя вокруг звездочки умножения.
Или я пишу
#if !defined(_CONSOLE_H_) && defined (__MINGW32__)
но я вдруг осознаю, что defined (__MINGW32__)
по какой-то причине должен прийти первым.
Я думаю, было бы здорово, если бы я мог сделать что-то вроде этого:
(На символе x
, [x]
обозначает положение курсора. <S>
обозначает эту гипотетическую команду "swap around") *
#if [!]defined(_CONSOLE_H_) && defined (__MINGW32__)
команда: vf&<S>$
=> выберите от курсора до центра (слово &&
) и поменяйте местами выделенный текст с текстом до конца строки.
Или, для первого примера:
tmp = realloc (words, [s]izeof (char **) * (*count + 1));
команда: v3f*<S>f)
=> выберите отсюда до третьего *
, поменяйте местами текст вперед )
.
Для меня это было бы невероятно полезно. Есть ли что-то подобное, или я должен написать свой собственный плагин?
Спасибо!
РЕДАКТИРОВАТЬ -
Как @ib. говорит в комментариях к своему ответу, я должен быть более конкретным в отношении что такое это стержень.
Пивот также может быть символом, например здесь:
static char ** tokenize_input (char * input, PDWORD count);
Я могу захотеть поменять местами два аргумента вокруг ","
. Точнее, ", "
.
Так что, возможно, мне понадобятся две команды:
<s> - char-wise - the pivot is the last character of the selection;
<S> - word-wise - the pivot is the last word of the selection.
Спасибо!
(пс. как насчет последнего Word ?:)