Обріжте пробіли в Xcode


Відповіді:


22

Ви можете створити сценарій і прив'язати його до комбінації клавіш:

  • Виберіть Меню сценаріїв> Редагувати сценарії користувачів ...
  • Натисніть кнопку + та виберіть Новий сценарій оболонки
  • Дайте йому назву на кшталт "Strip Trailing Spaces" та дайте їй ярлик на зразок ⌃⇧R.
  • Встановіть введення на "Вибір", а вихід - на "Замінити вибір"

Потім введіть такий сценарій:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}

9
Ах, так, так просто ... Дякую. Чи є спосіб пов’язати це із збереженням файлу?
Олександр Гладиш

Для роботи над усім файлом (що, мабуть, ви хотіли б зробити), встановіть для Input значення "Весь документ", а вихідний - "Замістити вміст документа". Однак це залишає курсор у нижній частині файлу.
SMBiggs

7
Ця відповідь застаріла з Xcode 4.4. Дивіться відповідь Мартіна Столца.
Василь Бурк

239

Починаючи з Xcode 4.4, білі простори будуть обрізані автоматично за замовчуванням, за винятком випадків, якщо лінія не є всім пробілом. Ви також можете активувати, Including whitespace-only linesщоб виправити це, яке за замовчуванням не активне.

Йти до Xcode > Preferences > Text Editing > While editing

Скріншот налаштувань Xcode


15
Цей параметр обрізає пробіли пробілу рядка лише після того, як курсор покинув цей рядок. Отже, він все ще дозволяє зберегти файл з одним рядком пробілу пробілів, якщо курсор знаходиться в цьому рядку при збереженні.
ma11hew28

7
Чому на землі це не за замовчуванням? Якщо у вас є файл з пробілом пробілу, просто позначте всі, виріжте, збережіть, вставте, збережіть.
friederbluemle

Це потребує переосмислення рішення хакі, що відповідає на цю відповідь.
Урда

7
Використовуючи цю ctrl-i
клавішу

24

Я використовую Google Toolbox For Mac Xcode Plugin , він додає параметр "Виправити пробіл при збереженні", який обрізає пробіл пробілів на збереженні. Я багато чого пропустив від emacs.


1
Я також використовую цей плагін. Це робить те, що говорить.
Натан

Було б ідеально, на жаль, він не працює на Xcode 4 на даний момент :(
deepwell

6
Зараз у нас є основна підтримка Xcode 4. Дивіться наш новий плагін
dmaclach

1
Де я можу знайти параметр "Правильне пробіл при збереженні"?
jhasse

Нарешті мені вдалося змусити GTM працювати над Xcode 4.3.2, але вказівки щодо установки з вікі GTM здаються недійсними. Замість того, щоб розміщувати .xcplugin ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(згідно з інструкціями Google), я повинен був поставити його /Applications/Xcode.app/Contents/PlugInsта перезапустити Xcode.
Крістофер Сомместад

3

Для Xcode 8 я встановив плагін Xcode плагін для форматування коду Swift, який видалив усі проміжки та рядки, що мають лише пробіли.

Методи установки

  1. Встановити через homebrew-cask:

    brew cask install swimat
  2. Завантажте додаток безпосередньо:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. Клоніруйте extensionвідділення та архів у додатку Mac.

Використання

Після встановлення ви можете запустити Swimat в Xcode через Editor -> Swimat -> Format.


цей інструмент не видаляє порожні рядки.
Мехдіко

1

Це неможливо в Xcode 3.2

Редагувати:

Я відповів на це питання так коротко, тому що немає способу зробити це правильно .

Звичайно, оскільки це програмне забезпечення, ви можете робити все, що завгодно: починаючи з хакерів Input Manager або інших способів введення коду до загальносистемного перехоплення клавіатури, ви можете змінити свою локальну систему, щоб робити що завгодно будь-коли. Ви можете встановити дію папки Applescript (arrgh) або скористатися демонстрацією запуску та засобом FSEvents для перегляду файлів вихідного коду.

Ви також можете додати пару скриптів у Xcode (сценарії користувачів у меню, фази сценаріїв у цілях, спеціальні дії в органайзері, є навіть дуже невідома можливість сценарію запуску), але всі ці рішення є недоліками, оскільки це включає користувальницькі або власні налаштування на машині користувача.

Мені невідомо рішення, яке просто працює після перевірки проекту від SCM. Я вважаю, що в цьому і подібних сценаріях налаштування є потреба, тому я подав помилку (радар 7203835, "Особливість: більше запускає сценарій користувачів у робочому процесі Xcode"). Я ще не отримав жодного відгуку.

Ось повний текст запису радіолокатора:

Було б корисно мати більше місць для запуску скриптів у Xcode.

Приклади:

  1. Заздалегідь складання сценаріїв Сценарії
    попереднього збирання можуть бути використані для створення передумов, таких як * .xcconfig файли або заголовки config.h. Це неможливо з "Фазами збірки скриптів", оскільки відстеження залежностей відбувається до початку будь-якої фази збірки.

  2. Опублікувати сценарії побудови,
    подібні до вище, але запущені після закінчення збірки (включаючи підпис коду тощо). Корисно для додаткової упаковки, перевірки дійсності тощо.

  3. Попередні та опубліковані сценарії фіксації SCM.
    Перевірити цілісність проекту.

  4. До / Опублікувати файл збереження сценарію.
    Щоб перевірити / змінити файл перед збереженням. Напр., Коді-красуні

  5. Спеціальні дії проекту.
    Мені відомо про здатність організатора визначати довільні дії. Але це функція на кожного користувача (не є частиною проекту). Я хотів би визначити такі дії, як збірка чи очищення, які відображаються в меню збірки та є частиною проекту.


Відредаговано, щоб відповісти, чому обхідні шляхи в цій справі незадовільні
Микола Рухе

2
Дякую. Хоча я за те, щоб це зробити належним чином, я б погодився на будь-який не надто нав'язливий злом. Ці зайві пробіли справді дратують.
Олександр Гладиш


0

Найкращий і простий спосіб без використання скриптів, хак і багато іншого. Просто перейдіть до пошуку та заміни найкращого та найпростішого способу без використання скриптів, хакерів та багато іншого. Просто перейдіть до «Знайти та замінити» і натисніть «alt / параметр + пробіл» і натисніть кнопку «пробіл» на панелі заміни, а потім натисніть кнопку «Замінити все». Він замінить пробіли на звичайні пробіли, і попередження / помилка піде !!


1
Чи означає це тільки видалити замикають прогалини , як це передбачено в питанні?
Доменна піч
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.