最終更新: 2012-12-05T05:04+0900
前に自分が引っかかったのと同根。「タブやタイトルバーに変更フラグが表示されるように修正した。フラグ自体は立ってたけど描画が行われていなかったというミス。(20100620p01)」
変更フラグを管理してるのは CDocEditor。ドキュメントを変更した関数が SetModified(bool modified, bool redraw)メソッドでこれに通知するが、更新フラグが立ったとき(落ちたとき)に描画が抑制されていると、以後ドキュメントの変更をトリガにしたキャプションの変更機会を失う。キャプションの内容は変数展開、条件分岐を利用して高度にカスタマイズが可能で、キャプションの更新を必要最低限にケチるのは理に適ってる。ではどうするか。描画の抑制を描画の遅延ととらえて、抑制中に加えられた描画に影響する変更を記録して、後でまとめて描画する? Webブラウザが JavaScriptに対して行ってるように? それは大変。マクロ由来のコマンドを描画を抑制して実行してるのは CMacro。かといって CMacroがコマンド呼び出しの前後で描画を適切に維持するのは出過ぎた行為。さっき「キャプションの更新を必要最低限にケチるのは理に適ってる」と書いたけど、描画の抑制をやめるのが一番簡単。だって Charマクロで InsTextのような問題が起きないのは、Charマクロの実体関数が redrawフラグを受け取らないで常に描画を行ってるせいだから。
<2012-06-25> ReDrawマクロの存在を教えてもらったのでちょっと修正。なんでこんな(描画に問題があるときに実行して下さい)コマンドがあるんだか。
現在の編集ウィンドウを再描画します。何らかの原因で画面表示を最新状態に更新したい場合に使います。
【例】 ステータスバーを非表示にしたとき、メニューバーの左側にステータス情報が表示されますが、ファイル名のチップ等で消されてしまうことがあります。そういう場合に使います。
なんで手動でやらそうとしたんだ……。
</2012-06-25>
<2012-07-04>
……って、その、メニューバーの左側右端に表示されるステータス情報は、もう消えなくなってるアレだ。「SourceForge.net Repository - [sakura-editor] Revision 1594」
</2012-07-04>
/** OneTouchIndent.js * サクラエディタのマクロ。 * Tabキーに割り付けて使う。 * 前の行にならって同じインデント(Tab,Spaceなど空白文字全般)を挿入する。 * Enterをトリガーにしたオートインデントってイマイチじゃない? 一段深すぎたり、空行を挿入したかったりするときに削除の手間が必要で。 このマクロは、Tabキーを押す手間は必要だが、望まないインデントは行わない。 */ if (OneTouchIndent()) { Editor.ReDraw(); } else { Editor.IndentTab(); } function OneTouchIndent() // returns true(done) or false(undone) { // 文字列選択中はインデント文字の挿入ではなく、インデントを行いたい。 if (Editor.IsTextSelected) { return false; } var caret = eval(Editor.ExpandParameter("({y:$y-1, x:$x-1})")); // 前の行にならってインデントの文字と量を決定するので、先頭行では(デフォルトの)インデントを行いたい。 if (caret.y < 1) { return false; } var thisline = Editor.GetLineStr(caret.y+1); var prevline = Editor.GetLineStr(caret.y); var previdnt = prevline.match(/^(?:(?![\r\n])\s)*/)[0]; // 行頭の、改行を除く空白文字 // prevline[0...previdnt.length] // thisline[0...caret.x] if (previdnt.length <= caret.x) { return false; } if (previdnt.substring(0, caret.x) !== thisline.substring(0, caret.x)) { return false; } Editor.InsText(previdnt.substr(caret.x)); return true; }
気付くのが遅すぎるけど、インデントを深くしたいときには意識的にタブキーとスペースキーを使い分けないといけなかった。そういうのを気にせずワンボタンで済ませられたらなお良かった。
最終更新: 2014-10-23T14:06+0900
X:file.ext
というファイルと XX:alt.strm
というファイル。Y:\My\Desktop>echo aaa > C:a.txt
C:\a.txtを作成しようとしてアクセス拒否される。(C:a.txtは C:\a.txtと同じ?)
Y:\My\Desktop>cd /d C: C:\>echo aaa > Y:a.txt
Y:\My\Desktop\a.txtが作成される。(Y:a.txtは必ずしも Y:\a.txtではない!)
C:\>cd /d Y:\My\Documents Y:\My\Documents>cd /d C: C:\>echo aaa > Y:a.txt
Y:\My\Documents\a.txtが作成される。(Y:a.txtがさっきの Y:\My\Desktop\a.txtと違う!)
C:\>echo aaa > T:a.txt
T:\a.txtが作成される。(初登場の Tドライブに関しては T:a.txtと T:\a.txtは同じ)
C:\>echo aaa > Z:a.txt
「指定されたパスが見つかりません。」(Zドライブが存在しなくても、Zがファイル名だという扱いは受けません)
X:a.txtは必ずしも Xドライブのルート直下の a.txtにアクセスするわけではなく、ワーキングディレクトリの履歴が影響してる雰囲気。コマンドプロンプトだけでなく irbでも同じ場所に作成された。ドライブごとにワーキングディレクトリがあるとか?カレントドライブという概念。X:foo\barはカレントドライブを上書きする相対パス?
ちなみに、Cや Tや Yが CCや TTや YYだったりすると、それは(ドライブレターではありえないため)カレントディレクトリの CC(TT,YY)というファイルの a.txtという代替ストリームへの書き込みになるみたい。(代替ストリームの内容を確認する簡単な方法は more
コマンドだって)
/
というパスと \
というパス。大体どちらもカレントドライブの直下を指すみたい。直接 Windows APIを叩いてみてはいないけど。
=C: =D: など ドライブ毎のカレントディレクトリを保持(移動したことのあるドライブのみ)
最終更新: 2012-06-07T01:42+0900
♪ まだ10ページほど読んだところだけど、なかなかに読み進めるのがつらい。
声明は予告(する)や宣言(する)と違って動詞になってるとは思わないのでどうにもイメージが漠然としすぎる。俺は今も認めていないが、大学あたりでは俺が中高生の頃にはもう私語が動詞化(私語する)してたらしい。新聞の寄稿欄でそう読んだ。自分が少数派かもしれないとは思う。「お名前よろしいですか?」と言われて真剣にフリーズしたこともあるし。(尋ねられてるからには判断を下さねばなるまい。しかし……名前が良い?悪い?どういうこと? もちろん目の前の名簿に名前を書けということだったんだけど、一言一句に拘りすぎて応用がきかない理解が遅れる)。
浜村渚を「浜村」と指示し、瀬島直樹を「瀬島」「彼」と呼称する第三者視点の話だと思っていたら、11ページで突然「僕は、脇に置いてあった箱から二つのルービックキューブを取り出し、首をかしげている彼女の前に置く。」と、事前の描写もなく第三の人物「僕」が現れ、僕の一人称視点だということが明らかになった。誰ですか?
少年犯罪が急増する昨今、政府は義務教育の内容を一新した。他人を尊重し弱者をいつくしむ心を育成するため、芸術科目の比重を多くしていったのだ。必然的に他の科目の内容が次々と削られることになり、「物事を数値化し、数理現象・物理現象など事実だけを重んじる科目は、心を尊重し他人をいつくしむ人間性を否定しうる」という理由から、理数系科目の授業は大幅に削減されてしまった。
という設定を、「トンデモである。数学はもはや欠くべからざる社会の基盤であり、あらゆる分野の基礎としてその重要性は増す一方だ」という風に自分は見ていた。 つまり、数学テロ組織・黒い三角定規の「私は、義務教育における数学の地位を向上させることを要求する」(7ページ)という大義に共感を持っていた、ということ。 ところが、「高木源一郎(通称、ドクター・ピタゴラス)という元数学者が主導する「黒い三角定規」。彼らの活動により、「数学はテロを育成する学問」という考え方が蔓延し、義務教育から数学は姿を消してしまった」(14ページ)という。組織の目的に反して事態は悪化している。 また、15ページ目で早々に人が死に、犯行声明が黒い三角定規の幹部候補から出される。「弁護士が二人、姿を消したのだ。そのうちの一人、佐々木弁護士は、行方不明になった次の日の早朝、遺体となって帰ってきた。弁護団の本部事務所に棺桶に納められて届いているのが発見されたのである。死因は、首を圧迫されたことによる窒息死だった。」(15ページ)。「最近、ボクたちの神聖なる活動が、心ない弁護団によって、邪魔されてる。よくないよね。だって、弁護士の仕事は本来、悪を挫くことだろう? ボクたちの活動は、究極の善。世界で一番美しい、数学の国を作り上げようとしているんだから」(16ページ)。 犯行声明は一切の共感を拒絶する内容で、これは、冒頭のトンデモ設定(だと読者である自分が考えていた)を作中人物自らが行動によって肯定している。手段が絶対的に誤っている(※人が死んでる)ために大義が成就する筋道も想像できない。著者は読者の数学への興味をかき立てておきながら物語の設定を肯定し数学教育が不要だと結論したいのだろうか。
シリーズ2冊目の、最初の10ページしか読んでないので早とちりなのかもしれないが、そうだったとしても不親切だとはいえると思う。
♭ 名無しさん無題ドキュメントや未保存のGrep結果等も保持したままセッション保存されるとありがたいです。 具体的にはEmEdit..