2009-09-04 40 views
10

Trong các emacs, tôi có các chức năng khác nhau để thao tác văn bản. Bây giờ tôi đang sử dụng xcode, tôi giả sử tôi có thể làm cho emacs trình soạn thảo mặc định của tôi, nhưng tôi muốn duyệt các đối tượng obj-c và như vậy, vì vậy tôi chỉ muốn thực hiện các lệnh thao tác văn bản được sử dụng nhiều nhất cho xcode.Thao tác văn bản trong XCode, di chuyển một dòng

Đầu tiên trong danh sách của tôi, tôi muốn một lệnh di chuyển văn bản của dòng hiện tại lên/xuống một dòng, giữ con trỏ trên dòng hiện tại.

Trong emacs này là:

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

tôi muốn được hạnh phúc nếu tôi có thể viết một kịch bản trong Python mà có thể làm tương đương trong XCode, nhưng như xa như tôi có thể nói, tôi cần phải nói chuyện với AppleScript để làm điều này.

Ai đó có thể hướng dẫn tôi cách thực hiện điều này bằng XCode không?

+0

Bạn có thể sử dụng python để làm những điều Applescript - xem appscript http://appscript.sourceforge.net/ – Mark

Trả lời

0

Tôi nghĩ câu hỏi của bạn là chung chung hơn Xcode/emacs. Hầu hết IDE không thể làm những thứ mà các biên tập viên có thể làm và ngược lại.

Điều tôi làm là sử dụng Xcode cho công cụ 'đơn giản' và biên dịch/gỡ lỗi. Khi tôi muốn làm rất nhiều của mã hóa (hm ... soạn thảo văn bản) tôi mở nhiều tập tin trong một Vim (không có hành vi phạm tội emacs ... vim là biên tập viên của tôi lựa chọn) và sử dụng tất cả các thủ thuật vim có sẵn.

Tôi làm theo quy trình tương tự khi tôi cần thực hiện nhiều mã hóa trên Windows (Visual Studio). Tôi có VS mở chỉ để biên dịch/gỡ lỗi nhưng tôi làm hầu hết mã hóa trong cửa sổ Vim riêng biệt.

tôi không cần phải làm được điều đó trên Unix vì tôi chỉ cần mở tập tin trong Vim và chạy Makefile từ bên trong Vim, nhảy trực tiếp đến sai sót và vân vân (: mak) ...

tôi m chắc chắn rằng có một số điều cực kỳ thông minh để có được Xcode làm những thứ đã có trong Vim và Vim để làm những thứ mà Xcode có thể làm nhưng tôi tập trung vào mã hóa nên không có nhiều thời gian để chơi xung quanh.

+1

Vâng, đó là cách làm việc PREFERRED, nhưng đó không phải là câu hỏi. – guns

6

Những gì bạn muốn làm có thể đạt được thông qua "Tập lệnh người dùng" của Xcode — và nó giúp đi kèm với một cặp tập lệnh gần như thực hiện những gì bạn muốn. (Tôi đang sử dụng Xcode 3.2 tại đây, nhưng tôi nghĩ rằng chúng cũng có trong 3.1)

Tìm trong /Developer/Library/Xcode/User Scripts/; có hai applescripts ở đó, Move Line Up.scptMove Line Down.scpt. Dưới đây là những gì trong 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 

Những gần như làm những gì bạn muốn, ngoại trừ họ chọn toàn bộ dòng sau đó; Tôi không phải là chuyên gia về bản ghi chép, nhưng bạn có thể muốn lưu trữ selected character range. Có một cái nhìn vào từ điển kịch bản Xcode (trong AppleScript Editor, File -> Open Dictionary -> Xcode) để tìm ra các loại đối tượng bạn có thể thao tác.

Bạn có thể thêm tập lệnh của riêng mình vào Xcode bằng mục menu "Chỉnh sửa tập lệnh người dùng" trong trình đơn tập lệnh; và gán các phím tắt cho các tập lệnh trong cửa sổ đó, bằng cách nhấp đúp vào cột bên phải bên cạnh mục nhập cho mục menu của tập lệnh.

Bạn cũng có thể sử dụng tập lệnh shell (perl, python, bash, bất cứ điều gì) trong menu Tập lệnh người dùng, nhưng quá trình này chỉ chọn hoặc toàn bộ tệp, vì vậy có thể hơi nặng để di chuyển một dòng lên hoặc xuống .

Xem tất cả các docuemntation vào User Scripts đây: http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeWorkspace/310-User_Scrips/user_scripts.html

Tôi hy vọng điều này sẽ giúp!

+0

+1 đẹp ............ – stefanB

+0

Nhưng cực kỳ phức tạp. cescofry có câu trả lời. – HenryRootTwo

0

Ngoài ra, bạn có thể treo các emacs (hoặc vi, hoặc bbedit, hoặc ed, tôi tưởng tượng) để xcode, để họ sẽ nói chuyện với nhau. Khi bạn nói với xcode để mở một tập tin, nó sẽ gọi emacsclient, v.v. Bạn thậm chí có thể nhận được emacs để nói với xcode nơi đặt điểm ngắt (tôi không nhớ làm thế nào, nhưng tôi đã hỏi một câu hỏi ở đây một lúc trở lại, và nó hoạt động tuyệt vời)

Các vấn đề liên quan