Незаказывание фрагментов кода

Есть времена, что у меня есть фрагмент кода, который я хочу разместить на шпионе дефекта, Wiki, форуме, и т.д. но это глубоко заказано в кодексе. Я обычно должен подчеркивать фрагмент кода, совершать нападки <переходят> - <счет>, пока заявки не так плохи, тогда скопировать/вставить и затем возвращаются кодекс. Это становится несколько болезненным.

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

Вот чрезвычайный пример:

Прежде:

                            //This is usually some method in an anonymous inner class' anonymous inner class.
                            @Override
                            public void method(){
                                doSomething();
                            }

После:

//This is usually some method in an anonymous inner class' anonymous inner class.
@Override
public void method(){
    doSomething();
}

Заметьте, как у doSomething () все еще есть единственный счет перед ним.

21
задан User1 13 January 2010 в 22:32
поделиться

7 ответов

Выбор прямоугольника - мой любимый способ.

Поставьте себя в начало первой строки, C-пространство , перейдите к последней строке, и конец отступа, который вы хотите удалить и C-x r k (прямоугольное убийство). Вот и все.

40
ответ дан 29 November 2019 в 06:38
поделиться

Способ, который я использую в KEDIT (который имеет возможность выполнения редактирования столбцов), заключается в том, чтобы отметить первый символ первого столбца и строки Alt - b , положите мой курсор в последнюю строку и символ, который я хочу удалить, ALT - b снова, а затем Alt - G . Он ушел и все еще имеет все отступы за пределами удаленных колонн.
В SQL Server легче, отметьте блок и нажмите Shift-Tab, пока код не будет там, где я не хочу.

1
ответ дан 29 November 2019 в 06:38
поделиться

Фактический метод для этого в Emacs - это комбинация ключей.

Сначала выберите раздел, с которого вы хотите удалить вкладки.

Вы можете выбрать весь буфер:

Ctrl + x h

Или, если вы просто хотите, чтобы регион просто установить отметку Ctrl + Пространство Где вы хотите начать, а затем перейти к тому, где вы хотите закончить.

Затем удалите пробел, для 10 символов пробела делают это:

Ctrl + - 1 0 Ctrl + x вкладка


Так как это довольно большое, я сломаю это для вас.

1) Сначала мы даем команду отрицательного аргумента:

(ARG ARG ARG)

КБР: Ctrl + -

2) Следующая поставка численного Аргумент, в этом случае число 10:

1 0

3) Затем мы вызываем команду resently restyly

(arg arn arn arn arg arg arg)

KBD: Ctrl + Tab x

Итак, что мы делаем, это дает аргумент -10 к команде, чтобы сделать restyly, и результат, в результате чего 10 пробежных символов будут удалены с начала Каждая линия, которую мы выбрали, в этом случае у нас есть весь выбранный документ ( Ctrl + x h ), поэтому 10 строк пробела будут удалены с начала каждая строка всего документа.

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

В вашем примере похоже, у вас есть около 30 ведущих пробелов, поэтому это должно сделать трюк:

Ctrl + - 3 0 Ctrl + X вкладка

Попробуйте большее количество, если вы хотите удалить больше.

13
ответ дан 29 November 2019 в 06:38
поделиться

В vi, это просто << сдвинуть влево на один отступ ширины, так что, чтобы развязать 10 строк, вы бы сделали 10<<.

-3
ответ дан 29 November 2019 в 06:38
поделиться

Используйте регулярное выражение для удаления лидирующего пробела.

В Emacs:

C-M-%^<TAB><TAB><TAB><ENTER><ENTER>!

В Vim:

:%s/^\t\t\t//g
0
ответ дан 29 November 2019 в 06:38
поделиться

Если вы точно знаете, сколько вкладок префиксов в каждой строке (как вы говорите), то для замены "^\t\t\t...\t" на " можно воспользоваться простым запросом-заменой-регексом".

1
ответ дан 29 November 2019 в 06:38
поделиться

Если у вас правильные настройки в стиле emacs c, то просто выделите фрагмент и нажмите C-M-\ и отступите его правильно (если вы находитесь в режиме c++).

7
ответ дан 29 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: