「TextEdit」の版間の差分

提供: MacWiki
移動: 案内検索
(AppleScript)
(AppleScript)
行95: 行95:
 
end tell
 
end tell
 
</pre>
 
</pre>
文字色のRGBの数値などは、新規文書に適当な色、フォントの文字列を入力してから以下のようなスクリプトをAppleScriptエディタ(スクリプトエディタ)で実行することで調べられます(結果のところに表示される)。attribute run は文字色などの同じ文字列のこと(attribute run のところを character や word などとしてもいい)。
+
文字色のRGB値などは、新規文書に適当な色、フォントの文字列を入力してから以下のようなスクリプトをAppleScriptエディタ(スクリプトエディタ)で実行することで調べられます(結果のところに表示される)。attribute run は文字色などの同じ文字列のこと(attribute run のところを character や word などとしてもいい)。
 
  tell front document of application "TextEdit" to get properties of first attribute run
 
  tell front document of application "TextEdit" to get properties of first attribute run
  
行138: 行138:
 
end tell
 
end tell
 
tell application "System Events"
 
tell application "System Events"
-- フォーマットをどうやって選択すればいいか?
+
keystroke "o" using {shift down, command down} -- 別名で保存(Dvorak-Qwertyだとsの代わりにo)
keystroke "s" using {shift down, command down} -- 別名で保存(Dvorak-Qwertyだとsの代わりにo)
+
 +
-- システム環境設定でキーボード操作など設定を変更すればポップアップメニューも操作できる
 +
(*
 +
set leftArrow to ASCII character 28
 +
set rightArrow to ASCII character 29
 +
set upArrow to ASCII character 30
 +
set downArrow to ASCII character 31
 +
repeat 7 times -- タブキーでフォーマットのポップアップメニューまで移動
 +
keystroke tab
 +
end repeat
 +
repeat 3 times -- 矢印キーでWebページ(.html)を選択
 +
keystroke downArrow
 +
end repeat
 +
keystroke return -- ポップアップメニューの選択の決定
 +
*)
 +
 +
(*
 +
tell menu bar 1 of application process "TextEdit"
 +
tell menu "フォーマット" of menu bar item 5
 +
if exists menu item "標準テキストにする" then pick menu item "標準テキストにする"
 +
end tell
 +
end tell
 +
-- keystroke "t" using {shift down, command down}
 +
tell sheet 1 of window 1 of application process "TextEdit"
 +
if exists static text "標準テキストに変換しますか?" then click button "OK"
 +
end tell
 +
*)
 +
 
keystroke return -- デフォルトの保存ボタンを実行
 
keystroke return -- デフォルトの保存ボタンを実行
 
end tell
 
end tell
行147: 行174:
 
**[http://d.hatena.ne.jp/zariganitosh/20090218/1235018953 GUIスクリプティングなAppleScript環境を快適にする] - ザリガニが見ていた...。(2009-02-18)
 
**[http://d.hatena.ne.jp/zariganitosh/20090218/1235018953 GUIスクリプティングなAppleScript環境を快適にする] - ザリガニが見ていた...。(2009-02-18)
 
**[http://en.wikibooks.org/wiki/AppleScript_Programming/System_Events AppleScript Programming/System Events] - Wikibooks (en)
 
**[http://en.wikibooks.org/wiki/AppleScript_Programming/System_Events AppleScript Programming/System Events] - Wikibooks (en)
 +
**[http://www.viento-net.org/modules/d3blog/details.php?bid=90 AppleScriptのSystem Eventsでアプリケーション操作(基本)] - studio VIENTO (2011-2-26)
  
 
*Markdown から XHTML を生成する
 
*Markdown から XHTML を生成する

2011年4月19日 (火) 23:53時点における版

テキストエディット (TextEdit) とは?

Mac OS X 標準のテキストエディタ。 標準でリッチテキスト、標準テキスト、ワード、HTMLなどのフォーマットを扱うことができる。

機能

フォーマットメニューからテキスト > 表...とすれば、表を扱うことができる。

  • リンク

URLの文字列は自動的にはリンクにならないが、フォーマットメニューからテキスト > リンク...で選択文字列にURLを設定することができる。

  • ショートカット

Emacsのようなショートカットキーが使える。文字色、フォントなどのスタイル設定のみをコピーやペーストすることもできる。

ショートカット 機能 説明
control + F 前方へ一文字すすむ [→]
control + B 後方へ一文字もどる [←]
control + P 上の行へ [↑]
control + N 下の行へ [↓]
control + A 段落の最初へ 行頭へ
control + E 段落の最後へ 行末へ
control + V 下のページへ 文末へ
control + D 一文字削除 前方へすすむ デリート
control + H 一文字削除 後方へもどる バックスペース
control + T 文字の入れ替え カーソルの左右の文字を入れ替えます
control + Y カットされていたテキストが挿入される command + Vと使い分けると素晴らしい
control + K カーソル位置から行末までカット control + Yでカットされていたテキストが挿入される
control + O カーソル位置に改行を挿入 カーソルは移動しない
esc 単語の途中で候補を示す ヘルプにはOpt-ESCとあるが?
command + option + C スタイル設定のみをコピー
command + option + V スタイル設定のみをペースト
shift + command + T リッチテキストあるいは標準テキストにする

AppleScript

  • 新規文書 (ウィンドウ) を作成
set theText to "* " & ((current date) as string) & return -- 新規文書に書き込む文字列(ここでは日時)
tell application "TextEdit"
	activate
	if not (exists front document) then make new document
	if text of front document is "" then
		set theDoc to front document
	else
		set theDoc to make new document
	end if
	set text of theDoc to theText -- 文字列を書き込む
	set properties of text of theDoc to {color:{65535, 0, 0}, size:12, font:"Osaka-Mono"} -- 文字のサイズなどを指定できる(この指定は維持されない)
end tell
  • 最前面の文書に新規段落を作成
-- set theText to "* " & ((current date) as string) -- 新規段落として書き込む文字列(ここでは日時)
set theText to "* " & (do shell script "date '+%F %R (%Z)'") -- date コマンドを利用
tell application "TextEdit"
	activate
	if not (exists front document) then make new document
	tell front document
		if (exists last character) and (last character is not return) then ¬
			make new character at after last character of it with data return -- at after last 何々 の代わりに at end of 何々s と書いてもいい
		make new paragraph at after last paragraph of it with data theText ¬
			with properties {size:14, color:{0, 65535, 0}, font:"ComicSansMS"} -- 新規段落の文字列を書き込む(この指定は維持される)
		make new character at after last character of it with data return ¬
			with properties {color:{0, 0, 0}, font:"Osaka-Mono"} -- 維持されている指定を変更
	end tell
end tell

文字色のRGB値などは、新規文書に適当な色、フォントの文字列を入力してから以下のようなスクリプトをAppleScriptエディタ(スクリプトエディタ)で実行することで調べられます(結果のところに表示される)。attribute run は文字色などの同じ文字列のこと(attribute run のところを character や word などとしてもいい)。

tell front document of application "TextEdit" to get properties of first attribute run
  • 単語の数や文字数を数え上げる
tell front document of application "TextEdit"
	set charCount to number of characters -- characters の代わりに every character でもいい
	-- set charCount to count characters -- count を使ってもいい
	set wordCount to number of words -- words の代わりに every word でもいい
	-- set wordCount to count words
	set paraCount to number of paragraphs -- paragraphs の代わりに every paragraph でもいい
	-- set paraCount to count paragraphs
	display dialog "ワードカウント結果" & return & return & ¬
		"文字数:" & charCount & return & ¬
		"単語数:" & wordCount & return & ¬
		"段落数:" & paraCount
end tell
  • 最前面の文書を保存
set theName to "untitled.rtfd" -- デフォルトのファイル名(付加情報付きのリッチテキスト)
-- set theName to "untitled.rtf" -- リッチテキスト(iText Express や Jedit X など他のソフトウェアでも扱えるフォーマット)
-- set theName to "untitled.txt" -- 標準テキスト
tell application "TextEdit"
	activate
	save front document in (path to desktop folder as string) & theName -- パスを指定して保存(同名のファイルがあれば上書きされる)
	-- save front document in (choose file name default name theName) -- ファイル名を尋ねる
	-- save front document in (choose file name default name theName default location (path to desktop folder)) -- ファイル名を尋ねる(保存場所を指定)
end tell
set theName to "untitled" -- デフォルトのファイル名(拡張子含まない)
tell application "TextEdit"
	activate
	set name of front document to theName
	set path of front document to POSIX path of ((path to desktop folder as string) & theName)
end tell
tell application "System Events"
	keystroke "o" using {shift down, command down} -- 別名で保存(Dvorak-Qwertyだとsの代わりにo)
	
	-- システム環境設定でキーボード操作など設定を変更すればポップアップメニューも操作できる
	(*
	set leftArrow to ASCII character 28
	set rightArrow to ASCII character 29
	set upArrow to ASCII character 30
	set downArrow to ASCII character 31
	repeat 7 times -- タブキーでフォーマットのポップアップメニューまで移動
		keystroke tab
	end repeat
	repeat 3 times -- 矢印キーでWebページ(.html)を選択
		keystroke downArrow
	end repeat
	keystroke return -- ポップアップメニューの選択の決定
	*)
	
	(*
	tell menu bar 1 of application process "TextEdit"
		tell menu "フォーマット" of menu bar item 5
			if exists menu item "標準テキストにする" then pick menu item "標準テキストにする"
		end tell
	end tell
	-- keystroke "t" using {shift down, command down}
	tell sheet 1 of window 1 of application process "TextEdit"
		if exists static text "標準テキストに変換しますか?" then click button "OK"
	end tell
	*)
	
	keystroke return -- デフォルトの保存ボタンを実行
end tell
  • Markdown から XHTML を生成する

Markdown は軽量マークアップ言語の1つ。詳しくは Wikipedia:Markdown などを参照してください。以下のスクリプトでは Perl で書かれた Markdown.pl(Daring Fireball: Markdown からダウンロードできる)を利用します。Markdown.pl は好きなところに置いていいですが、ここでは /Applications/Markdown_1.0.1/ のフォルダ内に置かれていると仮定しています。

tell application "TextEdit"
	activate
	if not (exists front document) then return
	if not (exists path of front document) then
		display dialog "文書を標準テキストで保存してから実行して下さい" buttons {"OK"} giving up after 5 default button 1
		return
	end if
	set thePath to path of front document -- 最前面の文書のパス
	set perlCode to quoted form of "/Applications/Markdown_1.0.1/Markdown.pl" -- Markdown.pl を /Applications/Markdown_1.0.1/ に置いた場合
	-- set perlCode to quoted form of (POSIX path of (path to applications folder) & "Markdown_1.0.1/Markdown.pl")
	set newText to do shell script "perl " & perlCode & space & quoted form of thePath
	set newDoc to make new document -- 新規文書として作成する場合
	-- set newDoc to front document -- 元の文書と置き換える場合
	set text of newDoc to newText
end tell
  • HTML文書に変換する

textutil コマンドを利用して最前面の文書からHTML文書を生成します。表のHTMLコードを作成するときなどに便利かもしれません。

tell application "TextEdit"
	activate
	if not (exists front document) then return
	if not (exists path of front document) then
		-- 最前面の文書が未保存の新規文書の場合 temporary items フォルダに保存
		set tmpName to "TextEdit_tmp" & (do shell script "date '+%Y%m%d'") -- 保存ファイル名(拡張子含まない)
		-- set tmpName to do shell script "uuidgen"
		save front document in (path to temporary items from user domain as string) & tmpName
	else
		-- 最前面の文書が既存の文書の場合
		save front document
	end if
	set thePath to path of front document -- 保存した処理対象のファイルのパス
	set newText to do shell script "textutil -convert html -stdout " & quoted form of thePath
	set newDoc to make new document -- 新規文書として作成する場合
	-- set newDoc to front document -- 元の文書と置き換える場合
	set text of newDoc to newText
end tell
tell application "TextEdit"
	activate
	if not (exists front document) then return
	if not (exists path of front document) then
		-- 最前面の文書が未保存の新規文書の場合 temporary items フォルダに保存
		set tmpName to "TextEdit_tmp" & (do shell script "date '+%Y%m%d'") -- 保存ファイル名(拡張子含まない)
		-- set tmpName to do shell script "uuidgen"
		save front document in (path to temporary items from user domain as string) & tmpName
	else
		-- 最前面の文書が既存の文書の場合
		save front document
	end if
	set thePath to path of front document -- 保存した処理対象のファイルのパス
	-- open コマンド(-fオプッション)を利用する
	-- テキストエディットで開く場合、HTMLソースを解釈してしまい期待する動作にならないかもしれません
	do shell script "textutil -convert html -stdout " & quoted form of thePath & " | open -tf"
end tell

関連するソフトウェア

  • rtfd2html

RTFD(添付ファイル付きリッチテキスト)ファイルをhtmlファイルに変換するアプリケーション。textutilコマンドのラッパー。

http://pencilsoftware.com/rtfd2html.html

Wiki内の関連ページ