2009-09-04 14 views
10

emacsでテキストを操作するためのさまざまな機能があります。 xcodeを使用しているので、私はemacsをデフォルトのエディタにすることができますが、obj-cオブジェクトなどを参照したいので、xcodeに最もよく使用されるテキスト操作コマンドを実装したいと思います。XCodeでテキストを操作し、1行移動する

最初に私のリストに、現在の行のテキストを1行上/下に移動し、現在の行にカーソルを置いておくコマンドが必要です。 Emacsで

これは次のとおりです。

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

私はXcodeで同等の操作を行いますPythonでスクリプトを書くことができますが、私の知る限り、私が話をする必要がある場合は、私が一番幸せだろうこれを行うAppleScript。

誰かがXCodeでこれを行う方法を教えてもらえますか?

+0

ことができますと、選択したテキストを移動させるための命令の新しいセットを有しますつかいますPythonはApplescriptのことをする - appscriptを参照してください。http://appscript.sourceforge.net/ – Mark

答えて

0

あなたの質問は、Xcode/emacsというより一般的なものだと思います。ほとんどのIDEは、エディタが行うことはできませんし、その逆もできません。

私がしていることは、「単純な」ものとコンパイル/デバッグにXcodeを使用することです。私はたくさんのコーディング(hm ...テキスト編集)をしたいとき、私は1つのVimで複数のファイルを開きます(emacsに違反することはありません... vimは私のエディタです)、利用可能なすべてのvimのテクニックを使用します。

Windows(Visual Studio)でたくさんのコーディングを行う必要がある場合は、同じプロセスに従います。私はVSをコンパイル/デバッグのためだけに開いていますが、私は別のVimウィンドウでほとんどのコーディングを行います。

私がそうで、私はちょうどオープンのVimでファイルとエラーに直接ジャンプし、Vimの中からMakefileを実行しているためUnix上でそのいずれかを実行する必要はありません。私は「

...(MAK)確かに、Xcodeにできることは、VimやVimにはXcodeができることをするためのものがありますが、コーディングに集中して遊ぶことに集中しています。

+1

これは、お勧めの方法ですが、それは問題ではありませんでした。 – guns

6

あなたがしたいことは、Xcodeの "User Scripts"を使って達成できます。また、あなたが望むことをほぼ達成するスクリプトが役立ちます。 (ここではXcode 3.2を使用していますが、3.1にも含まれていたと思います)

/Developer/Library/Xcode/User Scripts/を参照してください。そこには2つのアプリスクリプトがあり、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に追加することができます。スクリプトメニュー項目の項目の横にある右側の列をダブルクリックして、そのウィンドウ内のスクリプトにショートカットキーを割り当てます。

User Scriptsメニューでシェルスクリプト(perl、python、bashなど)を使用することもできますが、これらは選択またはファイル全体のみを処理するので、1行を上下に動かすにはちょっと重いかもしれません。

は、ここではユーザスクリプトにすべてdocuemntationを参照してください:http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeWorkspace/310-User_Scrips/user_scripts.html

私はこれが役に立てば幸い!

+0

+1いいえ............ – stefanB

+0

しかし、あまりにも複雑です。セスコフライには答えがあります。 – HenryRootTwo

0

また、emacs(またはvi、またはbbedit、ed、想像する)をxcodeに接続して、お互いに話すことができます。 xcodeにファイルを開くように指示すると、emacsclientなどが呼び出されます。xcodeにどこにブレークポイントを置くかを指示するためのemacsを取得することもできます(私は覚えていませんが、ここで質問します。 )

関連する問題