情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

Webブラウザで文書を編集する際にTab文字を挿入する方法 このエントリーを含むはてなブックマーク

便利小ネタを紹介AutoHotkeyの不思議現象対策有り。

Tabを押すと、フォーカスが移動しちゃう

このblogも、Webブラウザに文字を入力して作成しています。ソースコードを書くことも多いので、インデントをするために「Tab」を入力したくなることが良くあります。しかし、そこで「Tab」キーを押すと、「Tab文字」が挿入されるわけではなく、他のボタンやテキストボックスなどにフォーカスが移動してしまいます。今回は、この問題を解決します。

Tabをコピー&ペースト?

最も簡単な方法は、テキストエディタに入力したTab文字をコピーしてきて、目的の場所でCtrl+vを押してペーストすることです。面倒です。

そこで、今回はAutoHotkeyを使用して、この動作を「無変換+Tab」に割り当てたいと思います。

クリップボード変数に「Tab文字」を格納したいんだけどうまくいかない

AutoHotkeyでのClipboardの使用方法は、AutoHotkeyを流行らせるページのその他解説にいろいろ書いてあります読まなくても必要な部分は今から説明します

さて、特に重要なのはClipboardを表す「Clipboard」という変数に「Tab文字(`t または %A_Tab%)」を格納して「Ctrl+v」を発行することです。

ためしに、次のようにして格納してみます。

Clipboard = `t

これはうまくいきません。なぜか、Clipboardは空になってしまいます。しかし、

Clipboard = a`ta

のように、前後に最低一文字ずつあると、ちゃんと「`t」がTab文字として格納され、この場合は「a(タブ)a」という文字列が格納され、ペーストすることも可能です。こんなところにもAutoHotkeyの不思議現象があるんですね。

そこで、「a(タブ)a」を一回作成してから「a」を取り除いて「タブ文字」単独を作成することにしました。

完成版Tabをペーストするホットキースクリプト(.ahk)

以上の点を考慮しつつ、クリップボードのバックアップ機能や、実行順序の入れ替わり防止なども考慮して作成したスクリプトは次の通りです。

~vk1Dsc07B & Tab::
	clipboard_backup = %ClipboardAll%
	ataba = a`ta
	StringReplace, Clipboard, ataba, a, , All
	Send, ^v
	Sleep, 100
	Clipboard = %clipboard_backup%
	Return

まとめ

このようにして、「無変換+Tab」を押すことでTabキーをwebブラウザ内部のテキストボックスへ挿入することが出来るようになりました。

おまけ

さきほどのスクリプトの注意点を列挙しておきます

  • ~vk1Dsc07B」は無変換キーのことです。
  • 「`t」の代わりに組み込み変数「A_Tab」を利用してもOKです。「ataba = %A_Tab%」としてください。
  • 「%ClipboardAll%」でClipboardの内容を取得してバックアップしていますが、この変数「ClipboardAll」は、取得専用、しかも変数への代入専用です。つまり、正直言ってバックアップ以外の部分では「Clipbaord」変数を使ってください。変数の代入以外でアクセスすると、書き込もうとするとエラーになり、取得しようとすると空の文字列が返ってきます。
  • 「Sleep, 100」はあったほうが良いです。「Send, ^v」でCtrl+vをアプリケーションに送り込んでから、実際にペーストが行われるまでにはタイムラグがあります。その間にClipboardのリストア(バックアップを戻す)が実行されてしまうと、ペースとされる内容がもともとClipboardに格納されていた内容になってしまうからです。注意しましょう。
  • 不思議現象はいつでもどこでも起こるので、焦らないでください

Windowsダンプの極意 エラーが発生したら、まずダンプ解析!
Advanced Windows 第5版 上 (マイクロソフト公式解説書)
インサイド Microsoft Windows 第4版〈上〉 (マイクロソフト公式解説書)
APIで学ぶWindows徹底理解

スポンサーサイト
AutoHotkey | コメント:0 | トラックバック:0 | 編集

新しいバージョンのOperaが公開されています がやっと来たと思ったら このエントリーを含むはてなブックマーク

Opera 10.50じゃなくてOpera 10.51

Opera 10.50がリリースされたの記事で紹介したように、なぜか Opera 10.50が公開されても「最新のOperaを使用しています」と言われてしまっていました。

そして、今日ふとOperaを起動してみると

新しいバージョンのOperaが公開されています

Opera 10.51は、安全性と安定性を兼ね備えたアップグレードです。

Operaは、さまざまな改善点をユーザーのみなさまにご提供できるよう、Opera 10.51へのアップグレードをおすすめします。

と表示されました。やっと、更新が来たかと思いきや、なぜかOpera 10.50じゃなくてOpera 10.51。10.50は一体どこへ…。この文面だけ見ると、10.50は安全性と安定性に大きな問題があったみたいですよね。

とりあえずアップデートできましたが、なぜ自動通知を10.50で行わなかったのかという謎は残ってしまいました。

Windows | コメント:0 | トラックバック:0 | 編集

OperaじゃGoogle Waveが使えない? このエントリーを含むはてなブックマーク

Google Waveに招待してもらいました。しかし、早速Operaでログインしようとしたら、次のように表示されてしまいました。

Google Wave - Your browser is not supported

Sorry, it looks like you're using a browser that isn't supported during the preview of Google Wave.

If you'd like to try out the exciting world of Wave we suggest that you use one of these browsers:

If you want to continue at your own peril, go ahead.

Operaじゃだめなのかと落胆したのですが、最後まで読むと、

If you want to continue at your own peril,

だそうです。 つまり、「自己責任なら別にいいけど」ということらしい。そこで、go aheadをクリックしOperaでGoogle Waveを利用してみることにした。

実際に、OperaでGoogle Waveをやってみた

go aheadをクリックすると「http://wave.google.com/wave/?nouacheck」でアクセスされ、ユーザーエージェント(ブラウザ)のチェックが無くなり、確かにGoogle Waveが表示されるのですが、

"Everything's shiny, Cap'n. Not to fret!" Unfortunately, you'll need to refresh. Wanna tell Dr. Wave what happened?

と、表示されてしまいました。辞書を引いて訳してみると、

「全く問題ないですよキャプテン!心配ありません!」 ただ、ページの更新が必用ですけど…
ところで、一体何をやらかしたんですか?

という意味になります。 つまり、「問題が発生したので、バグレポートよろしく」ということらしいです。そして、ページをいくら更新しても、同じことが何度も表示されてしまいます。

結論

今のところ、OperaでGoogle Waveを使うのは無理みたいですね。残念です。

ウェブサービス | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。