Visual studio code убрать пробелы

Обновлено: 08.07.2024

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

Данный мануал научит вас использовать инструмент Prettier, который автоматически форматирует код в Visual Studio Code (или VS Code)

Для демонстрации мы возьмем такой фрагмент кода:

const name = "James";
const person = >
console.log(person);
const sayHelloLinting = (fName) => console.log(`Hello linting, $`)
>
sayHelloLinting('James');

Если вы знакомы с правилами форматирования кода, вы заметите несколько ошибок:

  • Здесь одновременно используются двойные и одинарные кавычки.
  • Первое свойство объекта person должно быть с ним в одной строке.
  • Оператор console внутри функции должен иметь отступ.
  • В стрелочной функции используются необязательные круглые скобки.

Требования

1: Команда Format Document

Установив расширение Prettier, вы можете использовать его для форматирования вашего кода. Для начала давайте рассмотрим команду Format Document. Эта команда сделает ваш код более последовательным по интервалам, переносам строк и кавычкам.

Чтобы открыть панель команд, нажмите Command+Shift+P в macOS или Ctrl+Shift+P в Windows.

В палитре команд найдите format, а затем выберите Format Document.

Затем панель может предложить вам выбрать формат, который нужно использовать. Для этого нажмите кнопку Configure.

Примечание. Если панель не предложила вам выбрать формат по умолчанию, вы можете выбрать его вручную в Settings. Установите в Editor: Default Formatter значение ebsenp.prettier-vscode.

Теперь код будет отформатирован с учетом всех пробелов, переносов строк и правильных кавычек:

const name = 'James';
const person = < first: name >;
console.log(person);
const sayHelloLinting = (fname) => console.log(`Hello linting, $`);
>
sayHelloLinting('James');

Это также работает для файлов CSS. Вы можете превратить код с неправильно расставленными скобками, точками с запятой и разбивкой на строки в хорошо отформатированный файл. Например, такой код:

Будет переформатирован так:

body color: red;
>
h1 color: purple;
font-size: 24px;
>

Теперь, когда мы изучили эту команду, давайте посмотрим, как запускать ее автоматически.

2: Форматирование кода при сохранении

Пока что нам приходилось запускать команду для форматирования кода вручную. Чтобы автоматизировать этот процесс, вы можете выбрать параметр в VS Code, и тогда ваши файлы будут автоматически форматироваться при сохранении. Также благодаря этому неформатированный код не будет попадать в контроль версий.

Чтобы изменить этот параметр, нажмите Command+ в MacOS или Ctrl+ в Windows. Вы попадете в меню Settings. Открыв это меню, найдите параметр Editor: Format On Save и выберите его, поставив галочку.

После этого вы сможете писать свой код как обычно, а он будет автоматически форматироваться при сохранении файла.

3: Конфигурация Prettier

Prettier делает много полезного по умолчанию, но стандартное поведение можно изменить, отредактировав настройки.

Откройте меню Settings и найдите Prettier. На вашем экране появятся все параметры Prettier, которые вы можете изменить.

Вот несколько параметров, которые меняют чаще всего:

  • Single Quote: позволяет выбрать одинарные или двойные кавычки.
  • Semi: указывает, следует ли включать точку с запятой в конце строк.
  • Tab Width: указывает количество пробелов, которое нужно вставлять.

Главный недостаток встроенного меню конфигураций в VS Code – это то, что оно не обеспечивает согласованности настроек в вашей команде.

4: Создание конфигурационного файла Prettier

Создайте новый файл .prettierrc.extension, указав вместо extension одно из следующих расширений:

Вот пример конфигурационного файла в формате JSON:

"trailingComma": "es5",
"tabWidth": 4,
"semi": false,
"singleQuote": true
>

Более подробную информацию о конфигурационных файлах можно найти в документации Prettier. Создав один из таких файлов и протестировав его в своем проекте, вы можете убедиться, что все члены вашей команды применяют одинаковые правила форматирования.

Заключение

Поддерживать согласованность вашей базы кода очень важно. Это особенно полезно при совместной, командной работе над проектом. Согласовав список конфигураций, вы можете достичь с удобочитаемости и простоты кода. Тогда вы сможете посвятить больше времени решению сложных технических проблем.

Prettier обеспечивает согласованность кода и может форматировать его автоматически.

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


Здесь речь пойдёт о шести сферах применения расширений, в которых эти расширения могут быть заменены стандартными механизмами VS Code.

1. Автоматическое переименование и закрытие тегов

Речь идёт о двух возможностях. Во-первых — это возможность одновременного переименования открывающих и закрывающих тегов. Во-вторых — возможность автоматического закрытия тегов.

Автоматическое переименование открывающего и закрывающего тегов

▍Расширения

    (3,3 миллиона загрузок): автоматически переименовывает парные HTML/XML-теги, так же, как это делается в Visual Studio IDE. (3,1 миллиона загрузок): автоматически закрывает HTML/XML-теги, так же, как это делается в Visual Studio IDE или в Sublime Text.

▍Возможности VS Code

Соответствующая настройка в VS Code имеет несколько нечёткое и непонятное название. Наверное, именно поэтому многие люди не могут её найти.

  • Editor: Rename on Type : управляет автоматическим переименованием парных тегов при вводе кода. Значение по умолчанию — false .

Для включения этой возможности надо добавить следующее в settings.json :


Пока поддерживаются только HTML-файлы, но в трекере проекта есть открытая задача, касающаяся поддержки JSX-файлов.

Сам VS Code вряд ли будет поддерживать подобное для Vue-файлов. Похожий механизм, вероятнее всего, будет реализован в расширении Vetur. В трекере этого проекта уже давно открыта соответствующая задача.

2. Синхронизация настроек

Теперь VS Code поддерживает синхронизацию настроек между разными компьютерами. Эта возможность доступна, начиная с предварительной версии VS Code 1.48 (июльский релиз 2020 года).

Я сейчас испытываю эту возможность и до сих пор ни с какими проблемами не столкнулся.

▍Расширение

    (1,8 миллиона загрузок): синхронизирует настройки, клавиатурные сокращения, сниппеты, расширения, файлы launch.json и многое другое c GitHub Gist.

▍Возможности VS Code

Об этих возможностях можно почитать в документации к VS Code. Ниже показаны страницы с соответствующими настройками.


Настройки синхронизации

Для синхронизации можно пользоваться учётными записями Microsoft или GitHub, можно указывать то, что необходимо синхронизировать.


Выбор объектов, которые нужно синхронизировать

3. Управление импортом модулей

Управление импортом JavaScript- и TypeScript-модулей может представлять собой непростую задачу, особенно в том случае, если нужно реорганизовать проект или отрефакторить код. Разработчики стремятся, по возможности, это автоматизировать.

▍Расширения

    (1,1 миллиона загрузок): автоматически находит и разбирает команды импорта модулей, предоставляет механизмы автозавершения кода и даёт возможность использовать действия (Code Actions). Поддерживает TypeScript и TSX. (308 тысяч загрузок): наблюдает за перемещением TypeScript-файлов и поддерживает в актуальном состоянии связанные с ними команды импорта в пределах рабочего пространства. (157 тысяч загрузок).

▍Возможности VS Code

  • JavaScript > Suggest: Auto Imports : позволяет включать и выключать предложения по автоматическому импорту. Требует использования в рабочем пространстве TypeScript начиная с версии 2.6.1. Значение по умолчанию — true .
  • TypeScript > Suggest: Auto Imports : позволяет включать и выключать предложения по автоматическому импорту. Требует использования в рабочем пространстве TypeScript начиная с версии 2.6.1. Значение по умолчанию — true .
  • JavaScript > Update Imports on File Move: Enabled : позволяет выбирать способ автоматического обновления путей импорта модулей при переименовании или перемещении файлов в VS Code. Требует использования в рабочем пространстве TypeScript начиная с версии 2.9. Значение по умолчанию — prompt .
  • TypeScript > Update Imports on File Move: Enabled : позволяет выбирать способ автоматического обновления путей импорта модулей при переименовании или перемещении файлов в VS Code. Требует использования в рабочем пространстве TypeScript начиная с версии 2.9. Значение по умолчанию — prompt .


Кроме того, если вы хотите упорядочивать команды импорта при сохранении файлов, вам понадобится следующая настройка:


Её использование приводит к удалению неиспользуемых инструкций импорта и к размещению команд импорта таким образом, чтобы сначала шли бы команды, в которых используются абсолютные пути. Я — большой любитель таких механизмов, о которых можно попросту забыть, однажды настроив их.

4. HTML- и CSS-сниппеты

Возможно, вы решите, что вам пригодилось бы следующее:

  • Использование HTML-шаблонов, которые позволяют быстро создавать стандартные элементы описания страниц.
  • Создание хранилища часто используемых фрагментов кода, использование которого позволяет экономить время.
  • Сокращённые способы описания больших блоков кода.

▍Расширения

    (3,8 миллиона загрузок): полные HTML-теги, включая HTML5-сниппеты. (684 тысячи загрузок): простой генератор шаблонного HTML5-кода. (22 тысячи загрузок): коллекция CSS-сниппетов.

▍Возможности VS Code

В VS Code встроен набор инструментов Emmet. Эти инструменты предлагают возможности по работе с сокращениями и сниппетами для HTML и CSS. Emmet включен по умолчанию для следующих файлов: html , haml , pug , slim , jsx , xml , xsl , css , scss , sass , less и stylus . Подробности об этом можно узнать в документации по VS Code.

Например, для того чтобы добавить в файл шаблонную HTML-разметку страницы, достаточно ввести восклицательный знак ( ! ) и нажать клавишу Tab .

Добавление шаблонного HTML-кода в файл

Emmet поддерживает и сокращения, позволяющие вставлять в документы группы элементов. Их устройство напоминает CSS-селекторы.

Например, введём в HTML-файле такую конструкцию:


Нажмём клавишу Tab . Эта конструкция будет преобразована в следующий код:


Если ввести в редакторе a и нажать на Tab , то в код будет вставлена конструкция <a href=""> , а курсор будет размещён внутри кавычек, позволяя тут же ввести значение атрибута href .

Это — лишь очень краткий рассказ о возможностях Emmet в сфере HTML. VS Code предлагает похожие возможности и для CSS. Среди этих возможностей мне больше всего нравится автоматическое добавление префиксов производителей браузеров. Подробности об Emmet вы можете найти в документации к этому набору инструментов. Кроме того, вам может пригодиться эта шпаргалка по Emmet.

Настраивать имеющиеся сниппеты и создавать собственные можно, редактируя файл snippets.json .

Emmet поддерживает не только обычные HTML и CSS. Например, чтобы пользоваться Emmet при создании Vue-приложений и при написании JavaScript-кода, в settings.json нужно добавить следующее:


Если вы хотите включить поддержку Emmet для markdown, то вам следует знать об одной особенности (или, скорее, об ошибке). Она заключается в том, что для этого вам нужно, чтобы в emmet.excludeLanguages был бы записан пустой массив:

5. Шаблонный текст

Возможно, вам, в ходе работы над страницей, понадобится заполнить её шаблонным текстом. Делают это обычно для того чтобы оценить внешний вид страницы, на которой имеется какое-то содержимое. В роли такого текста часто используется знаменитый «Lorem ipsum». Существуют расширения, позволяющие генерировать подобный текст, но соответствующие возможности есть и в VS Code.

▍Расширение

▍Возможности VS Code

Выше мы уже говорили о том, что в VS Code встроен набор инструментов Emmet. В Emmet имеется сокращение, позволяющее генерировать шаблонный текст. Для того чтобы им воспользоваться, достаточно ввести lorem и нажать на клавишу Tab . Благодаря этому будет автоматически сгенерирован абзац, состоящий из 30 слов.


Ввод сокращения lorem

Это сокращение можно использовать не только при создании одного абзаца текста, но и, например, для генерирования нескольких блоков каких-то элементов. Скажем, конструкция p*2>lorem приведёт к созданию двух элементов <p> , заполненных шаблонным текстом:

6. Автоматическое удаление хвостовых пробелов

Обычно соответствующие расширения убирают ненужные пробелы в конце строк либо в процессе редактирования кода, либо по команде. А те настройки VS Code, которыми я предлагаю воспользоваться вместо подобных расширений, рассчитаны на удаление пробелов при сохранении файлов.

▍Расширения

    (447 тысяч загрузок): позволяет выделять и удалять хвостовые пробелы. (15 тысяч загрузок): в описании к этому расширению сказано следующее: «Хвостовые пробелы часто появляются после редактирования кода, после удаления конструкций, находящихся в концах строк, после выполнения других подобных действий. Это расширение наблюдает за процессом редактирования кода, оно запоминает номер строки, в которой находится активный курсор. После того, как в этой строке больше не будет активного курсора, оно удалит из неё хвостовые знаки табуляции и пробелы».

▍Возможности VS Code

  • Files : Trim Trailing Whitespace : когда эта возможность включена, она будет убирать хвостовые пробелы при сохранении файлов. Значение по умолчанию — false .

Итоги

Прежде чем вы, столкнувшись с необходимостью решения какой-то задачи в VS Code, приступите к поиску подходящего расширения, выясните, есть ли средство для решения вашей задачи среди стандартных возможностей VS Code. Это кажется совершенно очевидным, но мы все, вероятно, иногда поступали с точностью до наоборот. Новые возможности появляются в VS Code регулярно, поэтому время от времени рекомендуется заглядывать в журнал изменений, внесённых в этот редактор.

Стремитесь ли вы всегда, когда это возможно, пользоваться стандартными возможностями VS Code, а не расширениями?

Форматировщик C++ Visual Studio имеет обширный набор настраиваемых параметров, которые можно применять глобально. Чтобы задать параметры форматирования C++ для конкретной рабочей области, используйте clangformat или EditorConfig. Visual Studio и Visual Studio Code имеют встроенную поддержку EditorConfig для каждого из глобальных параметров форматирования C++ Visual Studio. При этом параметры EditorConfig имеют приоритет. Это означает, что вы можете добавить файлы EditorConfig в рабочую область, чтобы настроить форматирование C++ на более детальном уровне и применить согласованный стиль кода для всех пользователей, участвующих в проекте.

Соглашения о форматировании C++

Параметры EditorConfig форматирования C++ имеют префикс cpp_ . Ниже приведен пример файла EditorConfig.

В оставшейся части этого документа перечислены все параметры форматирования EditorConfig C++, поддерживаемые Visual Studio и VS Code.

Параметры отступов

Отступ для фигурных скобок

  • Имя: cpp_indent_braces
  • Значения: true , false

Отступ каждой строки относительно

  • Имя: cpp_indent_multi_line_relative_to
  • Значения:
    • outermost_parenthesis — при вводе новой строки делается отступ относительно внешней открывающей скобки.
    • innermost_parenthesis — при вводе новой строки делается отступ относительно внутренней открывающей скобки.
    • statement_begin — при вводе новой строки делается отступ относительно начала текущего оператора.

    Внутри скобок выравнивать новые строки во время их ввода

    • Имя: cpp_indent_within_parentheses
    • Значения:
      • align_to_parenthesis — выравнивать содержимое по открывающим скобкам.
      • indent — отступ для новых строк.

      В имеющемся коде нельзя использовать параметры выравнивания новых строк внутри скобок

      • Имя: cpp_indent_preserve_within_parentheses
      • Значения: true , false

      Отступ в конструкции case

      • Имя: cpp_indent_case_contents
      • Значения: true , false

      Отступ заголовков конструкции case

      • Имя: cpp_indent_case_labels
      • Значения: true , false

      Отступ для скобок перед оператором case

      • Имя: cpp_indent_case_contents_when_block
      • Значения: true , false

      Отступ фигурных скобок лямбда-выражений, используемых в качестве параметров

      • Имя: cpp_indent_lambda_braces_when_parameter
      • Значения: true , false

      Положение меток Goto

      • Имя: cpp_indent_goto_labels
      • Значения:
        • one_left — один отступ слева
        • leftmost_column — переместить в самый левый столбец
        • none — оставить с отступом

        Позиция директив препроцессора

        • Имя: cpp_indent_preprocessor
        • Значения:
          • one_left — один отступ слева
          • leftmost_column — переместить в самый левый столбец
          • none — оставить с отступом

          Отступ спецификаторов доступа

          • Имя: cpp_indent_access_specifiers
          • Значения: true , false

          Отступ перед блоком пространства имен

          • Имя: cpp_indent_namespace_contents
          • Значения: true , false

          Сохранить отступы комментариев

          • Имя: cpp_indent_preserve_comments
          • Значения: true , false

          Параметры новой строки

          Положение открывающих фигурных скобок пространств имен

          • Имя: cpp_new_line_before_open_brace_namespace
          • Значения:
            • new_line — перемещать на новую строку
            • same_line — оставлять на той же строке, но добавлять пробел перед скобкой
            • ignore — не изменять положение автоматически

            Положение открывающих фигурных скобок типов

            • Имя: cpp_new_line_before_open_brace_type
            • Значения:
              • new_line — перемещать на новую строку
              • same_line — оставлять на той же строке, но добавлять пробел перед скобкой
              • ignore — не изменять положение автоматически

              Положение открывающих фигурных скобок функций

              • Имя: cpp_new_line_before_open_brace_function
              • Значения:
                • new_line — перемещать на новую строку
                • same_line — оставлять на той же строке, но добавлять пробел перед скобкой
                • ignore — не изменять положение автоматически

                Положение открывающих фигурных скобок управляющих блоков

                • Имя: cpp_new_line_before_open_brace_block
                • Значения:
                  • new_line — перемещать на новую строку
                  • same_line — оставлять на той же строке, но добавлять пробел перед скобкой
                  • ignore — не изменять положение автоматически

                  Положение открывающих фигурных скобок лямбда-выражений

                  • Имя: cpp_new_line_before_open_brace_lambda
                  • Значения:
                    • new_line — перемещать на новую строку
                    • same_line — оставлять на той же строке, но добавлять пробел перед скобкой
                    • ignore — не изменять положение автоматически

                    Поместить скобки на отдельные строки

                    • Имя: cpp_new_line_scope_braces_on_separate_lines
                    • Значения: true , false

                    Для пустых типов перемещать закрывающую фигурную скобку в ту же строку, где находится открывающая скобка

                    • Имя: cpp_new_line_close_brace_same_line_empty_type
                    • Значения: true , false

                    Для функций с пустым телом перемещать закрывающую фигурную скобку в ту же строку, где находится открывающая скобка

                    • Имя: cpp_new_line_close_brace_same_line_empty_function
                    • Значения: true , false

                    Помещать ключевое слово catch и аналогичные ключевые слова на новую строку

                    • Имя: cpp_new_line_before_catch
                    • Значения: true , false

                    Помещать ключевое слово else на новую строку

                    • Имя: cpp_new_line_before_else
                    • Значения: true , false

                    Помещать "while" в цикле do-while на новую строку

                    • Имя: cpp_new_line_before_while_in_do_while
                    • Значения: true , false

                    Параметры интервалов

                    Пробелы между именами функций и открывающими скобками списков аргументов

                    • Имя: cpp_space_before_function_open_parenthesis
                    • Значения:
                      • insert — вставить пробел
                      • remove — удалить пробелы
                      • ignore — не изменять пробелы

                      Вставлять пробел между скобками со списком аргументов

                      • Имя cpp_space_within_parameter_list_parentheses Значения: true , false

                      Вставлять пробел между скобками с пустым списком аргументов

                      • Имя: cpp_space_between_empty_parameter_list_parentheses
                      • Значения: true , false

                      Вставлять пробел между ключевым словом и открывающей скобкой в инструкциях потока управления

                      • Имя: cpp_space_after_keywords_in_control_flow_statements
                      • Значения: true , false

                      Вставлять пробел между скобками операторов управления

                      • Имя: cpp_space_within_control_flow_statement_parentheses
                      • Значения: true , false

                      Вставлять пробел перед открывающими скобками со списками аргументов лямбда-выражений

                      • Имя: cpp_space_before_lambda_open_parenthesis
                      • Значения: true , false

                      Вставлять пробел между скобками в приведениях в стиле C

                      • Имя: cpp_space_within_cast_parentheses
                      • Значения: true , false

                      Вставлять пробел после закрывающей скобки приведения в стиле C

                      • Имя: cpp_space_after_cast_close_parenthesis
                      • Значения: true , false

                      Вставка пробела внутри скобок в выражении в круглых скобках

                      • Имя: cpp_space_within_expression_parentheses
                      • Значения: true , false

                      Вставить пробел перед открывающими скобками блоков

                      • Имя: cpp_space_before_block_open_brace
                      • Значения: true , false

                      Вставлять пробел между пустыми фигурными скобками

                      • Имя: cpp_space_between_empty_braces
                      • Значения: true , false

                      Вставка пробела перед открывающей фигурной скобкой равномерной инициализации и списков инициализаторов

                      • Имя: cpp_space_before_initializer_list_open_brace
                      • Значения: true , false

                      Вставлять пробел между фигурными скобками равномерной инициализации и списков инициализаторов

                      • Имя: cpp_space_within_initializer_list_braces
                      • Значения: true , false

                      Сохранить пробелы внутри равномерной инициализации и списков инициализаторов

                      • Имя: cpp_space_preserve_in_initializer_list
                      • Значения: true , false

                      Вставлять пробел перед открывающей квадратной скобкой

                      • Имя: cpp_space_before_open_square_bracket
                      • Значения: true , false

                      Вставлять пробел между квадратными скобками

                      • Имя: cpp_space_within_square_brackets
                      • Значения: true , false

                      Вставлять пробел перед пустыми квадратными скобками

                      • Имя: cpp_space_before_empty_square_brackets
                      • Значения: true , false

                      Вставлять пробел между пустыми квадратными скобками

                      • Имя: cpp_space_between_empty_square_brackets
                      • Значения: true , false

                      Группировать квадратные скобки многомерных массивов

                      • Имя: cpp_space_group_square_brackets
                      • Значения: true , false

                      Вставлять пробел между квадратными скобками для лямбда-выражений

                      • Имя: cpp_space_within_lambda_brackets
                      • Значения: true , false

                      SpaceBetweenEmptyLambdaBrackets

                      • Имя: cpp_space_between_empty_lambda_brackets
                      • Значения: true , false

                      Вставлять пробел перед запятой

                      • Имя: cpp_space_before_comma
                      • Значения: true , false

                      Вставлять пробелы после запятых

                      • Имя: cpp_space_after_comma
                      • Значения: true , false

                      Удалять пробелы до и после операторов членов

                      • Имя: cpp_space_remove_around_member_operators
                      • Значения: true , false

                      Вставлять пробел перед двоеточием для базового типа в объявлениях типов

                      • Имя: cpp_space_before_inheritance_colon
                      • Значения: true , false

                      Вставка пробела перед двоеточием для конструкторов

                      • Имя: cpp_space_before_constructor_colon
                      • Значения: true , false

                      Удалять пробелы перед точкой с запятой

                      • Имя: cpp_space_remove_before_semicolon
                      • Значения: true , false

                      Вставлять пробел после точки с запятой

                      • Имя: cpp_space_after_semicolon
                      • Значения: true , false

                      Удалять пробелы между унарными операторами и их операндами

                      Репутация: 1
                      Всего: 2

                      Как АВТОМАТИЗИРОВАТЬ удаления пробелов при удалении строки в редакторе кода Visual Studio?
                      т.е. если мы, например, удаляем строку, нажимая delete, то следующая строка начинается не с текста, а с пробелов - оставшиеся отступы.
                      Resharper, кажется, это делает.

                      С помощью макросов?

                      Репутация: нет
                      Всего: 7

                      Если нажимать клавишу Home и затем Backspace, то всё прекрасно удалится
                      Меня зовут Себастьян Парейра, торговец чёрным деревом.

                      Репутация: 22
                      Всего: 118

                      ctrl+l удалит строку (внимание: удалит вырезанием посути - испортит буфер обмена)
                      Что-то не поняли? -> Напейтесь до зеленых человечков. эта сверхцивилизация Вам поможет.

                      Репутация: нет
                      Всего: 7

                      jonie, Тока не понимаю чем Home->Backspace хуже? Ничего не затирает и не менее оперативно, поскольку Home и Backspace рядом находятся (я уж молчу, что на буках они вообще ближайшие соседи).

                      Короче, я за мой вариант

                      Меня зовут Себастьян Парейра, торговец чёрным деревом.

                      Репутация: 22
                      Всего: 118

                      ДобренькийПапаша, а чем хуже Выделить мышкой, нажать правой. ну ты понял. Мы разве спорили что лучше?
                      Что-то не поняли? -> Напейтесь до зеленых человечков. эта сверхцивилизация Вам поможет.

                      Репутация: 1
                      Всего: 2

                      Доктор Зло(диагност, настоящий, с лицензией и полномочиями)

                      Репутация: 31
                      Всего: 141


                      Возможно это потому, что вопрос сформулирован непонятно? Напиши что ты хочешь делать: удалять пустые строки(все или только в выделенном фрагменте), форматировать документ или что-то еще.
                      Хочешь получить мудрый совет - читай подписи участников форумов.
                      Злой доктор Щасзаболит

                      Репутация: 1
                      Всего: 2

                      хочу нажимать del, и чтобы при этом удалялось пустое место справа - все пробелы на текущей строке, 1 перевод на новую строку и там все пробелы до первого символа, если символов нет то просто все пробелы

                      Доктор Зло(диагност, настоящий, с лицензией и полномочиями)

                      Репутация: 31
                      Всего: 141

                      Хочешь получить мудрый совет - читай подписи участников форумов.
                      Злой доктор Щасзаболит

                      Репутация: 1
                      Всего: 2

                      никогда макросы не писал и не подключал.
                      можно tutorial как его подцепить?

                      Доктор Зло(диагност, настоящий, с лицензией и полномочиями)

                      Репутация: 31
                      Всего: 141

                      Цитата

                      1. Выбери меню Сервис->Макросы->Интегрированная среда разработки макросов.
                      2. В открывшейся среде разработки макросов, в обозревателе проектов выбери проект MyMacros (или создай новый проект), щелкни по нему дважды и в раскрывшемся списке выбери главный модуль.
                      3. Щелкни дважды по главному модулю, он и откроется
                      4. Вставь код в модуль и сохрани проект.
                      5. В основной среде выбери меню Сервис->Макросы->Обозреватель макросов. Откроется обозреватель макросов(это инструментальное окно, обычно открывается справа), там найдешь. Так же он будет доступен среди команд студии и ему можно будет назначить "горячие клавиши".
                      Хочешь получить мудрый совет - читай подписи участников форумов.
                      Злой доктор Щасзаболит

                      Репутация: 1
                      Всего: 2

                      ну дык знаю же что есть такая вещь крутая

                      скрипт работает, только не допер, как сделать так чтобы whitespaces удалялись только справа, а то при удалении символы удаляются и слева, т.е. каретка перемещается влево до упора.
                      и если есть символы правый символ всё-таки удалялся

                      Доктор Зло(диагност, настоящий, с лицензией и полномочиями)

                      Репутация: 31
                      Всего: 141


                      Каретку я намеренно перемещаю в начало строки, не нравится - удали 11-ю строку.
                      Хочешь получить мудрый совет - читай подписи участников форумов.
                      Злой доктор Щасзаболит

                      Репутация: 1
                      Всего: 2

                      Доктор Зло(диагност, настоящий, с лицензией и полномочиями)

                      Репутация: 31
                      Всего: 141

                      Хочешь получить мудрый совет - читай подписи участников форумов.
                      Злой доктор Щасзаболит

                      Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

                      [ Время генерации скрипта: 0.1431 ] [ Использовано запросов: 21 ] [ GZIP включён ]

                      Читайте также: