codegolf'ish решение было бы больше похоже:
flipVal = (wParam == VK_F11) ? !flipVal : flipVal;
otherVal = (wParam == VK_F12) ? !otherVal : otherVal;
То, что вы хотите сделать, может быть достигнуто с помощью «Пользовательских сценариев» Xcode - и он, кстати, поставляется с парой сценариев, которые почти делают то, что вы хотите. (Я использую Xcode 3.2 здесь, но я думаю, что они также были там в 3.1)
Посмотрите в / Developer / Library / Xcode / User Scripts /
; там есть два приложения: Move Line Up.scpt
и Move Line Down.scpt
. Вот что находится в Переместить строку вверх
:
(*
To edit this script, choose Save As... and save it in your home directory, then re-add it to the User Scripts list.
*)
using terms from application "Xcode"
tell first text document
set {startLine, endLine} to selected paragraph range
if startLine > 1 then
set theText to (paragraphs startLine through endLine)
set theText to (theText as string)
delete (paragraphs startLine through endLine)
make new paragraph at beginning of paragraph (startLine - 1) with data theText
set selected paragraph range to {startLine - 1, endLine - 1}
else
beep 1
end if
end tell
end using terms from
Они почти делают то, что вы хотите, за исключением того, что после этого они выделяют всю строку; Я не эксперт по приложениям, но вы, вероятно, захотите сохранить выбранный диапазон символов
. Взгляните на словарь сценариев Xcode (в редакторе AppleScript, File -> Open Dictionary -> Xcode), чтобы узнать типы объектов, которыми вы можете манипулировать.
Вы можете добавить свои собственные сценарии в Xcode с помощью пункта меню «Редактировать пользовательские сценарии» в меню сценариев; и назначьте сочетания клавиш для сценариев в этом окне, дважды щелкнув в правом столбце рядом с записью для пункта меню сценария.
Вы также можете использовать сценарии оболочки (perl, python, bash и т. д.) в меню пользовательских скриптов, но они обрабатывают только выделенный фрагмент или весь файл, поэтому может оказаться немного тяжелым для перемещения одной строки вверх или вниз.
См. всю документацию по пользовательским скриптам здесь: http: // developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeWorkspace/310-User_Scrips/user_scripts.html
Надеюсь, это поможет!
Я думаю, ваш вопрос более общий, чем Xcode / emacs. Большинство IDE не могут делать то, что могут делать редакторы, и наоборот.
Я использую Xcode для «простых» вещей и компилирую / отлаживаю. Когда я хочу сделать много кодирования (хм ... редактирование текста), я открываю несколько файлов в одном Vim (без обид на emacs ... vim - мой выбор редактора) и использую все доступные уловки vim.
Я следуйте тому же процессу, когда мне нужно много писать код в Windows (Visual Studio). У меня VS открыт только для компиляции / отладки, но большую часть кода я пишу в отдельном окне Vim.
Мне не нужно ничего делать в Unix, потому что я просто открываю файл в Vim и запускаю Makefile из Vim, прыгая напрямую к ошибкам и так далее (: mak) ...
Я '
Кроме того, вы можете подключить emacs (или vi, или bbedit, или ed, я полагаю) к xcode, чтобы они разговаривали друг с другом. Когда вы говорите xcode открыть файл, он вызовет emacsclient и т. Д. Вы даже можете заставить emacs сообщить xcode, где поставить точку останова (я не помню, как, но я задал здесь вопрос некоторое время назад, и он отлично работает )