MacBook AIr」カテゴリーアーカイブ

mac: unzip 文字化け

macOS 版 Comipoli が cbz 内部で日本語があるとエラー。
原因を色々探ってみたら zipinfo がこういうことになっていた。

Fedora

macOS

macOS の zipinfo が日本語ファイル名を出力できないだけだった。
どちらも LANG=ja_JP.UTF-8 だし、Terminal.app も日本語出力は普通にできるし。
でも何故か展開すると普通に日本語ファイル名になる。

個別取り出しも日本語指定で取り出せる、意味ワカンネ!
つまり、この出力を日本語にて得られないと個別取り出しができないってことだ。

いくら検索しても shift-jis のことしか出てこない、んなもん常識以前だろ!
UTF-8 が化けることに誰も気がついていないのか。。。。。

NSStringEncoding – Foundation | Apple Developer Documentation

コイツを色々試したけどドレも日本語に戻せない。
iconv も試しているけどお手上げ状態。
日本語は非サポートってことで済ませようかな。。。。。

現状を置いておきます、日本語ファイル名でなければ動くんだけど。
comimac-0.0.2.tar.gz

ところでオプションでなんとかしようと漁っていたらこんなのが。
macOS ではオプションに出ない -O, -I って何だろう?

Unzip の日本語ファイル名の取り扱いについて | FreeBSD | daily memorandum 3.0.0

ってつまり。

#!/bin/sh
unzip -Ocp932 "$@"


_Zip932 とかの名前で Nautilus Script に登録しておけば Fedora も例の文字化けを回避。
macOS の奴はパッチが当たっていないようなのでこの手段は使えない。
Ubuntu の奴はコレを自動判別しているだけ、ってことみたい。

Comipoli は進まなかったけど面白いことを知った。

Visual Studio Code 2018

Visual Studio Code がなんだか変だ。
無効にしたはずの迷惑機能が復活している、設定が変わったか?
やり直ししよう。

{
    // ドットを打っても候補が表示されないように
    "editor.suggestOnTriggerCharacters": false,
     // クイック候補の無効化
    "editor.quickSuggestions": {
        "other": false,
        "comments": false,
        "strings": false
    },
    // かわりに tab キー保管を有効化
    "editor.tabCompletion": true,
    // 自動閉じ括弧保管にイライラする
    "editor.autoClosingBrackets": false,
    // モードラインのほうがいい!
    "editor.detectIndentation": false,
    //
    // これで Gedit と同じになる、後は好み
    // ちな Welcome ページは便利なので活用
    //
    // 右端で折り返す
    "editor.wordWrap": "on",
    // 全部タブで開く
    "window.openFilesInNewWindow": "off",
    // 再起動で直近のファイルを開かない
    "window.restoreWindows": "none",
    // ミニマップなんてウザい
    "editor.minimap.enabled": false,
    // 行の強調表示もウザい
    "editor.renderLineHighlight": "none",
}

ほんと mac 版 Gedit で日本語入力ができればこんなことしなくてもいいのに。
コード保管万歳な人は絶対にプログラミングなんてやっていないだろ!

でも Welcome ページって使ってみると便利だよね。
macOS は基本的にファイラーは使わないって方向ですし。
mac が使いづらいって人はファイルをダブルクリックで思考停止していると思う。
アプリで全部管理できればファイラーなんていらないもんね。

更に
task.json のバージョンを変更しようとしたら一部に波線が。

波線の上にカーソルを合わせるとヘルプがポップアップ。
相変わらずやたら親切で笑えるよ。

Tasks in Visual Studio Code

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "JXA Start",
            "type": "shell",
            "command": "osascript",
            "args": [
                "${file}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always",
                "panel": "new"
            }
        }
    ]
}

ものすごく多機能になったけどものすごく面倒臭いよ。
いや単機能でいいなら tasks の配列に入れなくてもいいんだけど。

筆者はアプリの設定をやりたいんじゃない、JXA を書きたいんだぃ!
ほんとシンプルだけど強力な Gedit みたくにはできないものか。

run JXA in Visual Studio Code

Visual Studio Code (以下 Code)で新たな発見。

他のエディタと同じファイルを開いて他側にて上書き保存。
すると即座に Code は全自動で読み直ししてくれる、凄い!
更に開いているファイルを削除すると全自動でタブを閉じてくれる、凄い!

正直迷惑な場合が多いのですけど…

筆者は macOS で日本語が入力できない Gedit の代用で使っている。
alt(option)+上下矢印キーで行入れ替え
fn+左矢印キー(Home) でインデントの先頭へ移動
shift+tab で選択していなくてもインデント戻し
が可能なエディタをこの2つしか知らないのでしかたがない。

ウザいだけのインテリセンスを無効にして騙し騙し使っていたり。
問題は F5 デバックだ。
そもそも F5 にしている理由は Visual Studio に合わせたのですし。
Gedit で Python スクリプトを debug – L’Isola di Niente

Code で F5 を叩くと、なんで node.js 専用なんだよ!
筆者は JXA しかやるつもりは無い、代用手段は無いのか?

特集:Visual Studio Code早分かりガイド:Visual Studio Codeの使い勝手をよくするツール (1/5) – @IT

あるみたい。
ということで F5 に割り付けしてみよう!

run task をコマンドパレットに打ち込んでも出ない、あれ?
って「タスク」と日本語で打ち込まないといけなくなったようで。
shift+command+B は普通に使えるようだ、って覚えにくいよ。

tasks.json はディレクトリ毎に作られるようで。
とにかく以下のように書き換える。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "osascript",
    "isShellCommand": true,
    "args": ["${file}"],
    "showOutput": "always"
}

${file} 変数はココで使えるかどうか見つからないけど実験をかねて。
んで、キーボードショートカットの f5 を上書き。

// 既定値を上書きするには、このファイル内にキー バインドを挿入します
[
    {
        "key": "f5",
        "command": "workbench.action.tasks.build"
    }
]

ここまでやって f5 を叩いてみる。

おぉコレは!
と思ったけどこの機能はファイル単体で開いた時では使えないのね。
使うには毎回 [フォルダを開く] をやらなきゃいけないみたい。
うーん…

macOS Sierra in Gedit, Kate

ftp.gnome.org

Mac 版 Gedit 3.13.91 なんてモンがあるジャン!
インストール方法は普通なので省略、macOS Sierra で起動できた!

Gatekeeper があるので初回は control を押しながら起動して開くを選ぶ。
次回からは普通に起動できる、もう慣れたよね。
off にする方法を Web で紹介している人はコレのいったい何が面倒なんだろう。

~/.config/gedit ディレクトリが作られている。
Fedora から tools と snippets ディレクトリをコピー。
おぉあたりまえのように動くぞ!

macOS デフォルトには ~/.local が無いんだね。
~/.local/share/gedit/plugins ディレクトリを自分で作る。
Gedit 及び Eye of Gnome プラグイン – L’Isola di Niente
の 3.12 版をインストールしてみる。

おぉ a_href_picture まで動く!
GTK+ も Python も同梱のものを使うようだ。

~/.config/dconf/user が作られない。
~/Library/Preferences/org.gnome.Gedit.plist がソレっぽい。
Mac では dconf の設定は個別になるようだ。
smart_home_end を BEFORE にしたいんだがどうすれば…

で、ココまでやってやっと気が付いた。

日本語が入力できないジャン…

Mac OS X版GTK+の日本語入力対応 その後 – ククログ(2013-12-26)

GTK+ 3.10 から mac での日本語入力問題は解決したんじゃなかったの?
mac で Xamarin をやっている人とか多いはず、ってアレは GTK2 だっけ。
どうやらこれについてはエンドユーザーではお手上げっぽい。

あぁ日本語入力以外は何も問題無いのに。

ヤケクソだ、Kate (KDE デフォルトエディタ) をインストールしてやる!
Qt なら多分だけど大丈夫だろう。

うん、Kate なら日本語入力は問題無いぞ。
って、return と delete キーが反応しないぞ!
コイツもソレ以外は問題なさそうなのに。

どっちもアカン、オススメブログとかで名前が出ないわけだ。

Visual Studio Code を使い続けるしかないか。
コード補完機能が正直ウザいんですけど。

Safari 10

遅ればせながら MacBook Air を macOS Sierra にしました。
2011 モデルですが何も問題なくアップグレードできました。

五年前のマシンでも Siri は使えます、マジで iPhone と同じ。
サブマシンなので詳しいことはもっとヘビーな人のサイトで。

さて Safari 10 で我がサイトはキチンと表示できるか確認だ。
うん問題ないみたい、Mac の情報はほとんど無いサイトだけど。
あら、Safari 10 がついに let に対応してくれたようで。

safari_let

iPhone のアップデートはまだ様子見だけど多分同じだろう。
これで主用ブラウザすべてで let を使っても大丈夫になった。
いや、macOS や iOS はアップグレードしない人も結構いるんだけど。

つか、osascript の JavaScript もやはり let 対応になっている。
これで Gjs と同じように変数定義できる、やったね。

osascript_let

普通に文字列保存すると古い Mac の文字コードになるのは変わっていない。
ソコを一番変えてほしいんだけど、UTF-8 以外は全部絶滅してくれよ。
まあ少数派の意見なんでしょうけどね。

追記
iOS 版 Safari 10 もやはり同様でした。