2009-09-04 4 views
10

이맥스에는 텍스트를 조작하는 다양한 기능이 있습니다. 이제는 xcode를 사용하고 있기 때문에 이맥스를 기본 편집기로 만들 수 있다고 생각하지만 obj-c 객체 등을 찾아보고 싶습니다. 따라서 xcode에 가장 많이 사용되는 텍스트 조작 명령을 구현하고 싶습니다.XCode의 텍스트 조작, 한 줄 이동

처음으로 현재 목록의 텍스트를 한 줄 위로/아래로 이동하고 커서를 현재 줄로 유지하는 명령이 필요합니다. 이맥스에서

입니다 :

(defun move-one-line-downward() 
    "Move current line downward once." 
    (interactive) 
    (forward-line) 
    (transpose-lines 1) 
    (forward-line -1)) 

I 좋겠 수 내가 엑스 코드에 해당 할 것 파이썬 스크립트를 작성할 수 있지만, 지금까지 내가 말할 수있는, 내가 얘기해야하는 경우 가장 행복 AppleScript로이를 수행합니다.

누군가 Xcode로이 작업을 수행 할 수 있습니까?

+0

당신이 할 수와 선택한 텍스트를 이동 명령의 새로운 세트를 가지고 용도 python applescript 일을 할 - appscript를 참조하십시오 http://appscript.sourceforge.net/ – Mark

답변

0

당신의 질문이 Xcode/emacs보다 일반적인 것 같아요. 대부분의 IDE는 편집자가 할 수있는 일을 할 수 없으며 그 반대도 마찬가지입니다.

내가하는 일은 '간단한'작업과 컴파일/디버깅을 위해 Xcode를 사용하는 것입니다. 내가 코딩 (hm ... 텍스트 편집)을 많이하고 싶을 때, 한개의 Vim에서 여러개의 파일을 연다 (emacs에 대한 공격이 없다 ... vim은 나의 편집자이다.) 그리고 모든 vim 트릭을 사용할 수있다.

Windows (Visual Studio)에서 많은 코딩 작업을 수행해야하는 경우에도 동일한 프로세스를 수행합니다. 내가 VS 컴파일/디버깅을 위해 열었지만 별도의 빔 창에서 대부분의 코딩 않습니다.

나는 그래서 난 그냥 개방 빔의 파일 및 오류에 직접 점프, 빔 내에서 Makefile을 실행하고 있기 때문에 유닉스에 그 중 하나를 수행 할 필요가 없습니다 : 나는 '

(MAK) Xcode가 Vim과 Vim에있는 것들을하기 위해 Xcode가 할 수있는 것들을 할 수있는 극도로 영리한 것들이 있다는 것을 확신합니다. 그러나 나는 주위에 놀지 않는 많은 시간을 코딩에 초점을 맞추고 있습니다.

+1

글쎄, 그 작업의 선호하는 방법이지만, 그건 질문이 아니었다. – guns

6

당신이하고 싶은 것은 Xcode의 "User Scripts"를 통해 얻을 수 있습니다. 그리고 그것은 당신이 원하는 것을 거의 수행하는 한 쌍의 스크립트와 함께 제공됩니다. (저는 Xcode 3.2를 사용하고 있습니다. 그러나 이것 역시 3.1에 있었던 것 같습니다.)

/Developer/Library/Xcode/User Scripts/을보세요. 거기에 두 개의 applescripts, Move Line Up.scptMove Line Down.scpt 있습니다. 여기 Move Line Up에서의 내용은 다음과 같습니다

(* 
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 

가이 거의 그들은 이후 전체 라인을 선택을 제외하고 당신이 원하는 것을 할; 나는 애플 스크립트 전문가가 아니지만 아마도 selected character range을 저장하고 싶을 것입니다. Xcode 스크립팅 사전 (AppleScript 편집기에서 파일 -> 사전 열기 -> Xcode)을 사용하여 조작 할 수있는 객체 유형을 찾으십시오.

스크립트 메뉴의 "사용자 스크립트 편집"메뉴 항목을 사용하여 Xcode에 자신의 스크립트를 추가 할 수 있습니다. 스크립트 메뉴 항목의 항목 옆에있는 오른쪽 열을 두 번 클릭하여 해당 창에있는 스크립트에 바로 가기 키를 지정하십시오.

사용자 스크립트 메뉴에서 쉘 스크립트 (perl, python, bash 등)를 사용할 수도 있지만 선택 또는 전체 파일 만 처리하므로 한 줄을 위 또는 아래로 움직이면 비트가 약간 클 수 있습니다 .

여기에 사용자 스크립트의 모든 docuemntation를 참조하십시오 http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeWorkspace/310-User_Scrips/user_scripts.html

난이 도움이되기를 바랍니다!

+0

+1 멋진 ............ – stefanB

+0

하지만 광란하게 복잡합니다. cescofry가 답을 가지고 있습니다. – HenryRootTwo

0

또한 이맥스 (또는 vi 또는 bbedit 또는 ed, 상상)를 xcode에 연결하여 서로 이야기 할 수 있습니다. xcode에 파일을 열라고 명령하면 emacsclient 등이 호출됩니다. xcode에 중단 점을 넣을 곳을 알려주기 위해 이맥을 얻을 수도 있습니다 (어떻게 기억하지 못합니까?하지만 잠시 후에 여기에 질문을했습니다.)