Удаление строк кода в текстовом редакторе - PullRequest
0 голосов
/ 13 сентября 2008

Редактировать: Этот вопрос был помечен как "Толстой" в знак признательности за качество и длительность моего письма :) Достаточно просто прочитать первый и последний абзацы :) Если вы склонны выбирать и перемещать код с помощью мыши, материал в середине может быть вам интересен.

Этот вопрос о том, как вы используете текстовые редакторы в целом. Я ищу лучший способ удалить множество строк кода (нет намерения запатентовать его :) Это распространяется на транспонирование строк, то есть удаление и добавление их где-то еще. Самое главное, я не хочу создавать какие-либо пустые строки, которые я должен удалить отдельно. Вроде как функция SHIFT + DELETE в Visual Studio, но работает для нескольких строк одновременно.

Допустим, вы хотите удалить строку 3 из следующего кода (также отображаются вкладки и переводы строк). Наивным способом было бы выделить текст в угловых скобках:

if (true) {\n
\t int i = 1;\n
\t <i *= 2;>\n
\t i += 3;\n
}\n

Тогда нажмите Backspace. Это создает пустую строку. Хитбэк еще раз дважды, чтобы удалить \ t и \ n.

Вы получите:

if (true) {\n
\t int i = 1;\n
\t i += 3;\n
}\n

Когда вы пытаетесь выделить целую строку, Visual Studio не позволяет вам выбрать завершающий символ новой строки. Например, размещение курсора на строке и нажатие клавиш SHIFT + END не приведет к выделению новой строки в конце. Также вы не выберете новую строку, если используете мышь, то есть щелкаете в середине строки и перетаскиваете курсор полностью вправо. Вы выбираете только завершающие символы новой строки, если вы делаете выбор, который охватывает как минимум две строки. Большинство редакторов, которыми я пользуюсь, делают это так; Microsoft WordPad и Word являются контрпримерами (и я часто ошибаюсь переводы строк при удалении текста; по крайней мере, в Word есть способ явно отображать символы конца строки и конца абзаца).

При использовании Visual Studio и других редакторов в целом, вот решение, которое в настоящее время работает лучше всего для меня:

С помощью мыши я выбираю символы, которые ставлю между угловыми скобками:

if (true) {\n
\t int i = 1;<\n
\t i *= 2;>\n
\t i += 3;\n
}\n

Нажав клавишу Backspace, вы удаляете строку за один раз, не удаляя другие символы. Это работает для нескольких смежных линий одновременно. Кроме того, он может быть использован для транспонирования строк. Вы можете перетащить выделение между угловыми скобками в точку, отмеченную кареткой:

if (true) {\n
\t int i = 1;<\n
\t i *= 2;>\n
\t i += 3;^\n
}\n

Это оставляет вас с:

if (true) {\n
\t int i = 1;\n
\t i += 3;<\n
\t i *= 2;>\n
}\n

где строки 3 и 4 поменялись местами.

Есть вариации на эту тему. Если вы хотите удалить строку 3, вы также можете выбрать следующие символы:

if (true) {\n
\t int i = 1;\n
<\t i *= 2;\n
>\t i += 3;\n
}\n

Фактически, именно это и делает Visual Studio, если вы указываете ей выбрать полную строку. Вы делаете это, нажимая на поле между вашим кодом и столбцом, где идут красные кружки, которые указывают точки останова. Указатель мыши зеркально отображается в этой области, чтобы немного лучше его различить, но я думаю, что он слишком узок и физически слишком далек от кода, который я хочу выбрать.

Может быть, этот метод полезен и для других людей, даже если он служит только для того, чтобы информировать их о том, как обрабатываются новые строки при выборе / удалении текста. Однако, учитывая огромное количество функций и плагинов для Visual Studio (которые я использую чаще всего), я уверен, что есть лучший способ использовать его для удаления и перемещения строк кода. Было бы неплохо получить правильные отступы при перемещении кода между различными блоками (т. Е. Без нажатия кнопки «Формат документа / выбора»). Я с нетерпением жду предложений; Нет проблем на микрооптимизацию, пожалуйста:)


Сводка ответов

Относительно Visual Studio: хорошая навигация с помощью клавиш курсора.

Решение, которое лучше всего подходит для моего стиля перехода и редактирования кода, - это Eclipse way:

YВы можете выбрать несколько последовательных строк кода, где первая и последняя выбранные строки могут быть выбраны только частично. Нажатие ALT + {вверх, вниз} перемещает все строки (а не только выделение) вверх и вниз, исправляя отступы по мере продвижения. Нажатие CTRL + D полностью удаляет строки (не только выделение), не оставляя ненужных пустых строк. Я бы хотел увидеть это в Visual Studio!

Ответы [ 11 ]

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

Используя Краткое отображение клавиатуры, это делается с помощью Alt + L , чтобы отметить линию, и - на цифровой клавиатуре (или Alt + D ), чтобы вырезать строку в буфер обмена. Вырезание полностью удалит строку, включая символ новой строки.

Нажатие клавиши Ins на цифровой клавиатуре вернет строку в документ, включая символ новой строки.

IMHO Brief - это действительно хорошо спроектированное отображение клавиатуры.

PS: Я думаю, что у MSVC есть возможность эмулировать краткое отображение клавиатуры.

...