Как я могу сделать нажатие клавиши, чтобы удалить непрерывный пробел в XCode? - PullRequest
5 голосов
/ 13 сентября 2011

Я хотел бы найти способ иметь привязки клавиш в XCode (или, возможно, в более общем смысле, любой текстовый редактор Какао), который будет удалять (слева или справа, в зависимости от привязки клавиш) непрерывные пробелы без удаления каких-либо-пробельные символы или символы новой строки.

При удалении влево-пробел я вижу логику:

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

Очевидно, что я также хотел бы получить правильную версию, работающую справа.

В идеальном мире я хотел бы более сложное / интеллектуальное поведение по отношению к новым строкам (возможно, удаление смежных строк, не содержащих ничего, кромепробел), но я бы сначала согласился на этот простой.

У меня есть QuicKeys, и я не афраЯ бы использовал это.:) Я также хотел бы написать что-нибудь сам, если у кого-нибудь есть идеи, как можно исправить такое поведение во время выполнения - было бы очень хорошо, чтобы такое поведение работало во всех текстовых редакторах Какао в моей системе.

Я НЕ заинтересован в запуске emacs, vi, vim, pico, nano, WordStar или любого другого текстового редактора.Если решение не может работать в Xcode4, это не решение для меня.

Ответы [ 2 ]

0 голосов
/ 10 января 2013

Я придумал что-то, что вроде работает.

Сначала фальстарты ...

Сначала я подумал о создании InputManager, но кажется, что InputManager устарел по сравнению со Snow Leopard (я думаю, по уважительной причине ... это огромная дыра в безопасности), поэтому они не были опцией.

Я также рассмотрел использование Input Method Kit . Вероятно, возможно сделать то, что я хочу, используя метод ввода, но затем я застрял, используя нестандартный метод ввода, который, скорее, не то, что я хочу. Насколько я могу судить, методы ввода не совсем подходящий инструмент для этой работы.

... и затем для вещи, которая (вроде) работает.

Оказывается, система привязки клавиш в редакторе текста Какао вполне настраиваема. Я наткнулся на эту веб-страницу , которая предоставила отличное введение. Короче говоря, я поместил plist с именем DefaultKeyBinding.dict в ~ / Library / KeyBindings /, который описывает пару ярлыков. Вот файл:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>@~^</key>
    <array>
        <string>setMark:</string>
        <string>moveWordForward:</string>
        <string>moveWordBackward:</string>
        <string>deleteToMark:</string>
    </array>
    <key>@~^$</key>
    <array>
        <string>setMark:</string>
        <string>moveWordBackward:</string>
        <string>moveWordForward:</string>
        <string>deleteToMark:</string>
    </array>
</dict>
</plist>

Точный синтаксис / содержание комбинаций клавиш был получен из вышеупомянутой веб-страницы, но общий эффект состоит в том, что нажатие Cmd-Opt-Ctrl-Delete устанавливает метку, перемещается вперед на одно слово (включая все пробелы до слово), затем перемещается назад на одно слово (обратите внимание, что это не противоположно движению вперед на одно слово, потому что оно не возвращается назад через пробел), а затем удаляется до метки. Это эквивалент Shift-Opt-Right, Shift-Opt-Left, Delete. Другая комбинация клавиш такая же, за исключением того, что она добавляет смещение и меняет поведение.

Это не идеально, потому что оно не учитывает контекст. Если вы не пробуете пробелы, когда вызываете его, вы в конечном итоге удаляете часть слова, в котором находитесь. Тем не менее, это лучшее, что я придумал в этом году (плюс), так как я разместил этот вопрос.

0 голосов
/ 21 августа 2012

Я знаю одно решение не так быстро, как использование макросов, но не каждый может написать макрос.

  1. Выберите файл, который вам нужен, чтобы избавиться от места.
  2. Выбрать текст (скорее всего, это весь текст в файле.)
  3. Вы нажимаете «Command + [», поэтому весь текст влево сдвигается и пробел исчезает. Возможно, придется нажимать комбинацию клавиш несколько раз, в зависимости от форматирования текста.
  4. Теперь осталось вернуть форматирование для текстовых блоков. Выделите текст и нажмите комбинацию клавиш «Command +]». XCode будет использовать вкладки для отступа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...