viで「●」などの全角記号が含まれるテキストを編集していると
おかしくなったことはありませんか?
全角文字なのにカーソルの幅が半角文字分になっていて
その行の編集が大変だったり。
以下の設定で解決できます。
~/.vimrc を開いて
1 |
set ambiwidth=double |
を追加して保存します。
在宅プログラマーの備忘録として2005年に始めたブログです。
viで「●」などの全角記号が含まれるテキストを編集していると
おかしくなったことはありませんか?
全角文字なのにカーソルの幅が半角文字分になっていて
その行の編集が大変だったり。
以下の設定で解決できます。
~/.vimrc を開いて
1 |
set ambiwidth=double |
を追加して保存します。
Excelのちょっとした操作も数ヶ月~1年単位で使っていなかったりすると
やり方を忘れていたりしますよね。
選択した範囲に対して、日付の列の古い順に行全体を並べ替えたいときがあり、
何度かやっているはずなのに
「あれ、どうやるんだっけ?」
となってしまいました。
やり方は、まず並べ替えたい範囲を行単位で選択して、
メニューの「ホーム」にある
1 |
並べ替えとフィルター |
を押して、その中の
1 |
ユーザー設定の並べ替え... |
をクリックすると並べ替え用のウィンドウが出てきます。
私はここまでやって思い出しました。
あとは、
1 |
最優先されるキー |
に並べ替えの基準となる列を指定して、
1 |
順序 |
に並べ替えのルールを指定するだけです。
たとえば絞込検索などで、1文字入力されるごとに検索処理を実行させたいとき、
イベントのトリガーには
1 |
onInput |
を使用します。
1 |
.addEventListener('input', 関数 ); |
jQueryなら
1 |
.on('input', 関数 ); |
PHPでdateやstrtotimeで取得した現在日時が9時間ずれているときは、
日本ではないタイムゾーンが設定されている可能性があります。
まず確認すべきは php.iniのdate.timezoneの設定です。
1 |
date.timezone = Asia/Tokyo |
になっていない場合は修正します。
もしレンタルサーバーなどの制限でphp.iniが編集できない場合は、コード上で
1 |
date_default_timezone_set('Asia/Tokyo'); |
でタイムゾーンを設定できます。
ほとんどの場合はこれで解決なのですが、
たまに、外部ライブラリを使用していると
上記のようにタイムゾーンを指定しているにも関わらず
時間のずれが直らない場合があります。
そんなときは、strtotimeでずれた分だけ時間をずらし返してやりましょう。
1 |
$now_date = date('Y-m-d H:i:s', strtotime('+9hour')); // 9時間遅れていたとき |
スマートではないかもしれませんが
こういう臨機応変な対応もときにはアリだと思います。
PHPExcelはPHPでExcelのブックやシートを読込み、作成、出力できるライブラリです。
CSVではなくExcelで出力することで
はじめから可視化しやすい形で出力できるのですが、
データ量やシートの複雑さによっては
出力にかなり時間がかかるようになってしまうことがあります。
もし何も考えずにループの中で
1 |
insertNewRowBefore |
や
1 |
getStyle |
を多用しているならば、チューニングによって
劇的に速くなるかもしれません。
例えば、帳票の出力などでは動的に行が増える場合が多いと思いますが、
ループの中で
1 |
insertNewRowBefore(2, 1) |
のように1行ずつ追加していくような処理は、
かなりパフォーマンスが悪いようです。
そういうときには、追加する行数を計算してから
1 |
insertNewRowBefore(2, 行数) |
を1回実行することでパフォーマンスが向上します。
もし行数を計算するためだけに追加でループさせる必要があったとしても
1行ずつ
1 |
insertNewRowBefore(2, 1) |
を実行するよりははるかに速い場合が多いようです。
また、
1 |
getStyle |
も、もしループの中で同じスタイルを1行ずつ実行しているのならば、
できる限りループの外で一括で実行することで
劇的にパフォーマンスが向上する可能性があります。
私の場合、実際にExcelで帳票を出力する場面があったのですが、
何も考えずに実装したときと、上記のとおりチューニングした場合とでは
10倍くらいの差がありました。