20201021のMacに関する記事は8件です。

【TexturePacker】パブリッシュ時にCannot open device for writing: Operation not permittedとエラーになった時の対処法

僕はTexturePackerという有名なパッキングツールをよく使っています。
複数のテクスチャを一枚のテクスチャにまとめてくれて、描画処理のドローコール数を下げる目的などに使用します。

そんな便利なTexturePackerのトラブル対応です。

環境

  • macOS Catalina 10.15.5
  • TexturePacker 5.4.0

Cannot open device for writing: Operation not permitted

パブリッシュ(複数テクスチャを一枚にまとめるて書き出す事)すると、以下のようなエラーが出る事案が発生しました。

image.png

エラー内容的には、書き出そうとしているファイルの書き込み権限が無いということです。

TexturePackerの書き込み権限の確認

システム環境設定 > セキュリティとポリシー > ファイルとフォルダからTexturePackerを探してアクセス許可状態を確認します。

ここにチェックが入っていない場合はアクセス許可がされないため、先程のエラーが出力されてしまいます。チェックを付ければ正常に書き出しができるようになると思います。

参考サイト

ターミナルでコマンド実行時に「Operation not permitted」と表示される場合の対処法 | ゴリミー

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

フレーム数を見ながら動画再生する方法(Mac)

動画をコマ送りしながらチェックして気になる場面のフレーム数を知りたいケースが多い。
割とありそうな需要にもかかわらず最近の動画プレーヤーは秒表示しかできなくて調べても全然方法が出てこない。
なんとかならないかと必死で調べて苦肉の策としての対応を見つけたのでメモ。
他にいい方法あれば是非教えてください。
なんでこんな基本的なことができるプレーヤーがないんだろうか。(QuictimePlayer7はできたらしいけれど32bitアプリは今は動かせない。)

方法

mpvというプレーヤーを少しだけ書き換えてコンパイルします。
まずGitからソースコードをダウンロード。

書き換えるのはplayer/osd.cのget_term_status_msg関数の中に一行追加するだけ。(今のバージョンだと200行目くらい)

// Playback position
sadd_hhmmssff(&line, get_playback_time(mpctx), opts->osd_fractions);
saddf(&line, " / ");
sadd_hhmmssff(&line, get_time_length(mpctx), opts->osd_fractions);
sadd_percentage(&line, get_percent_pos(mpctx));
/////////// 追加 ////////////////
line = talloc_asprintf_append(line, " (%d frame)", (int)(mpctx->video_pts * mpctx->tracks[0]->stream->codec->fps+0.5));
/////////// ここまで ////////////

あとはREADMEにしたがってコンパイルしてインストールする。
するとターミナルの再生時刻の表示の末尾にフレーム数が表示されるようになります。
(Paused) V: 00:00:00 / 00:00:03 (21%) (19 frame)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macです。LinuxコマンドのLinuxとは?

この度、Linuxとは?がわからなくて深堀りをしたので、記録します。

まず、Macユーザーでプログラミングを始めた私の疑問として、
LinuxってWindowsの知識なの?
と、思った事から始まります。

結論。
Windowsは関係ない。MacはUnix系。しかしLinuxとUnixはコマンドはほぼ同じ、違っても互換性がある。

結論裏付け。
Linuxの誕生から考えると派生して種類が増えた事も実感しやすいかと思いますので、下記ご覧ください。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

1.Unixの誕生(LinuxはUnixが元となっています。)
1960年代にUNIXは米国の通信会社AT&Tのベル研究所で誕生。
当時ベル研究所では、先行研究としてMULTICSというOSの開発に参加していました。一方、研究者であるKen Thompson氏が研究所の片隅で使われていないコンピュータを発見し、自分で考えた機構を試験運用するために、そのコンピュータにOSの基本要素となる幾つかのプログラムを搭載しました。
これがUNIXのはじまりであるといわれています。

2.さまざまな分離と結合
配布されたUNIXは、メンテナーの手によって自由に改造が施されました。
その結果、さまざまな団体や企業によりUNIXが作成されたため、UNIXとしてのまとまりがなくなってきました。
この問題を解決するため、AT&Tが正式にライセンス契約を始め、UNIXを管理するようになりました。
このAT&TのUNIXをSystem Vと呼び、以降、AT&T(及びUNIXのライセンス管理団体)と契約を結んだ組織のみが、自社の出したOSをUNIXと宣言できるようになりました。一方、AT&Tとライセンス契約を結んでいない組織もあります。
これらの組織が開発したUNIXのことをUNIX互換OSと呼びます。

3.派生UNIX
このように、互換OSも含めて非常に多くのUNIXが広まっていきました。
その派生した中で大きな影響を及ぼしたのがバークレー版UNIXです。
バークレー版UNIXは、UNIXの開発者であるKen Thompson氏がカリフォルニア大学バークレー校にいたときに作成した派生OSです。この派生OSの最大の特徴として、当時アメリカ軍内部の通信方式として採用された、IP(インターネットプロトコル)の実装が行われた点があげられます。UNIXがインターネットに強いと言われているのはこの経緯によるものです。このバークレー版UNIXはBSD(Berkeley Software Distribution)と呼ばれ、System Vと並ぶ2つの流れを形成しました。

4.Linuxの誕生
UNIXの多くは高いライセンス使用料のもと、企業や大学等で利用することが続いていました。自宅で、しかもパソコンで利用できることが多くのユーザの夢でした。

そんな中、「僕は今、(UNIXに似た)OSを作っている。」という投稿が、1991年にネット上に流れました。投稿者はLinus Torvaldsという、当時フィンランドの大学生で、コンピュータの機能の学習からそのようなプログラムを書き始めていたようです。そのプログラムはネットワーク上で公開されました。

プログラムの原型は非常に原始的なもので、コンピュータに詳しい人間のみが動かすことが可能でした。設計の基本はUNIXとそっくりでしたが、System Vの流れもBSDの流れも持たない独自のUNIX互換OSでした。その後、Linus Torvaldsが学習のために作り上げた小さなプログラムは、さらなる機能拡張やソフトウェア、ツールを組み合わせ、UNIX互換のOSとして立派に動作するまでになりました。

そう、Linuxが誕生したわけです。

Linuxのプログラムにおいて、一番特徴的なところは、そのライセンス形式でした。Linuxのプログラムには、GPL(GNU General Public License: GNU一般公衆利用許諾)というライセンス形式が採用されています。GPLはGNUプロジェクトのリチャード・ストールマンにより作成されました。以“下の特徴を含むフリーソフトウエアライセンスの一つです。

プログラムを実行する自由
ソースの改変の自由
利用・再配布の自由
改良したプログラムをリリースする権利

Linuxは多くのディストリビューターにより開発され、非常に多くのユーザに使われるようになりました。実質無償でかつ自由に利用、改変できるライセンス体系であるGPLをLinuxが採用したためです。自由ソフトウエアを実現するGPLはライセンスの性格上、GPLを条件に受領したソフトウエアをベースとしたソフトウェアをバイナリ形式で一般に頒布する場合、ソースコードを添付またはソースコードを提供する旨の申し出を添付するという条件を満たさなければなりません。

しかし、このライセンス体系が良いように働いた結果、Linuxは一部の個人や組織に独占されることなく、全利用者がその恩恵を受けて発展させていくというスタイルができました。現在、さまざまなディストリビューターによりLinuxが公開され、パーソナルコンピュータに容易にLinuxがインストールできるのも、LinuxがGPLを採用したからこそなのかもしれません。

抜粋:: “Linux標準教科書”。 Apple Books


ディストリビューション

Linuxは日々改良が進み、はじめは単機能しか備えていなかったものが、さまざまなハードウェア上で動くように改良されていき、次第にUNIX互換OSとして機能するまでになりました。

しかし、当初のLinuxはインストール作業が非常に困難で、一部のコンピュータのスキルが高いユーザしか使うことができませんでした。そこで、さまざまな団体がLinuxを使う上で必要なプログラムをまとめ、簡単な手順で手軽にインストールできるようにしました。これがLinuxディストリビューションのはじまりです。このようにLinuxディストリビューションを開発する団体をディストリビューターといいます。

代表的なLinuxディストリビューターとしてはRed HatやDebian Project、Ubuntuを開発しているCanonicalなどがあり、さまざまな団体によって「Linux」はリリースされ続けています。

抜粋:: “Linux標準教科書”。 Apple Books

分類としてはざっとだとこんな感じです。

スクリーンショット 2020-10-21 19.36.45.png

さてここまで読んでいただきありがとうございます。
引用したのは資格取得のために作られたLinuxコマンドなども学べる教材なのですが、
会員登録すれば無料でダウンロード可能で、良質と評判高いので、リンク載せておきます。
Linux標準教科書
https://linuc.org/textbooks/linux/form.php

参考にさせていただいた記事
https://tech-camp.in/note/technology/14821/
https://eng-entrance.com/unix_linux
https://qiita.com/kanaya/items/15ef1ba8af83a6b5c2c9

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macでネットワーク接続状況をモニタリングするシェルスクリプト

はじめに

受託開発をやっていてどのネットワークからアクセスするかが重要だったり、ネットワークの遅い国で仕事をしていたり、自宅のネットワークが不安定だったり、なにかとネットワーク接続状況が気になる仕事柄、そんなようなことがすぐに確認できると便利です。

という訳で、

  • 外に出ていく IP Address
  • ネットワーク内の IP address
  • 接続している Wi-Fi
  • ネットワーク速度 DL/UL

が調べられるようにしたいと思います。最終的には、最近は使ってる人はあんまりいないのかも知れない Geektool でデスクトップに表示しておきたいと思います。

結果だけ知りたい人は、全部飛ばして完成品または、github へどうぞ。

実行環境

  • Mac Pro (late 2013)
  • macOS Catalina version 10.15.7

  • MacBook Air 2020
  • macOS Catalina version 10.15.7

です。

外に出ていく IP Address

会社の場合は、固定のことがほとんどだと思います。固定の IP Address を使って、いわゆる境界防御モデルによって保護されたネットワークにアクセスしたりします。開発環境の Web サーバには、社内からアクセスできない。みたいなのは、これですね。
テレワーク時代には、合わないネットワーク・セキュリティで、今後見直す会社が増えそうです。

本記事とは関係ありませんが、Global な大企業では、驚くほどノーガードなことがよくあります。まぁそんなもんなのかも知れません。

では、まず外部に出ていく際に利用している IP Address の調べ方ですが、

$ curl --silent api.ipify.org --max-time 5

これで取れます。なので、

#!/bin/bash
ext_info=`curl --silent api.ipify.org --max-time 5`

wait

if [ -n "$ext_info" ];
then
    echo "External: $ext_info"
else
    echo "External: OFFLINE"
fi

unset ext_info

wait はなくても良いかも知れませんが、後ほど重い処理があるので最初から入れておくことにします。

ネットワーク内のIP Address

まず、Wi-Fi アダプターの MAC アドレスを調べます。

環境設定>ネットワーク で Wi-Fi を選択し、Advanced をクリックし Hardware を表示すると、MAC Address が書いてあるので、それを覚えておきます。最後の2文字くらい覚えておけば良いです。

続いて、ifconfig します。

$ ifconfig

このコマンドを打つと、ズラーッと色々なものが表示されるのですが、en0: en1: en2: ... というようなセクションを探してみてください。その中の ether という項目に、先程の MAC Address っぽいものが書かれているので、さっきの Wi-Fi の MAC Address が書かれているものを探してください。

私の場合、Mac Pro では en2、MacBook Air では en0 でした。以降 en0 で説明を続けます。

割り当てられているネットワーク内の IP Address は、ifconfig の en0 に書かれているので、抜き出します。

$ ifconfig en0 | grep inet | grep netmask | grep -v 127.0.0.1 | awk '{print $2}'

bash script は、

#!/bin/bash
en0_info=`ifconfig en0 | grep inet | grep netmask | grep -v 127.0.0.1 | awk '{print $2}'`

wait

if [ -n "$en0_info" ];
then
    echo "Wi-Fi: $en0_info"
else
    echo "Wi-Fi: INACTIVE"
fi

unset en0_info

接続している Wi-Fi の情報

我が家には Wi-Fi Router と Bridge があり、接続する場所が1階なのか2階なのかによって接続すべきスポットが異なります。どっちを掴んでるかを知りたい。
また、オフィスでは、Wi-Fi の場合は、スポットによってネットワークセグメントが違って…という境界防御モデルセキュリティになっていることもあるかと思いますので、どこに接続しているかは簡単に分かった方が良い。

MacOS の場合、以下のコマンドを打つことで、Wi-Fi の色々が分かります。Catalina 以前の OS でも同じだったので、Catalina 以外でも使えると思います。

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I

このコマンドを打って出てくる、SSID が知りたい情報です。他にも色々な情報が取得できるので、必要なものを適宜散りばめてください。私の場合は、SSID だけで良いので、以下のコマンドで抜き出します。

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | awk -F: '/ SSID: / {print $2}' | sed -e 's/.*SSID: //'

bash script は、

#!/bin/bash
en0_info=`ifconfig en0 | grep inet | grep netmask | grep -v 127.0.0.1 | awk '{print $2}'`

wait

if [ -n "$en0_info" ];
then
    wifi_network=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | awk -F: '/ SSID: / {print $2}' | sed -e 's/.*SSID: //'`


    echo "Wi-Fi: $en0_info"
    echo "- SSID: $wifi_network"

    unset wifi_network
else
    echo "Wi-Fi: INACTIVE"
fi

unset en0_info

ネットワーク速度 DL/UL

ネットワーク速度の計測には、speedtest-cli を利用します。

SPEEDTEST CLI
speedtest-cli

ちょっと機能が違いますが、どっちでも良いです。今回は、後者の pypi のものを使います。
pip ではなく、curl で取ってきて、/usr/local/bin にでもぶちこんでおきたいと思います。

$ curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
$ chmod +x speedtest-cli
$ mv speedtest-cli /usr/local/bin/.

一応、今回入ったバージョン等の情報は、

$ speedtest-cli --version
speedtest-cli 2.1.2
Python 3.8.3 (default, Jul  2 2020, 11:26:31) [Clang 10.0.0 ]

でした。Python のバージョンを 3.9.0 等に切り替えても、以下の内容はちゃんと動きます。

$ speedtest-cli --simple

とすると、計測には結構時間がかかるのが分かると思います。これまでのコードは、実行結果が一瞬で出るので、煩わしい場合は、スクリプトを分けてしまっても良いと思います。

$ speedtest-cli --simple | grep Download | awk '{print $2}'

こんな風にすれば取れますが、これだと、DL/UL で2回計測する必要があり、めちゃくちゃ時間がかかるので、実用的ではありません。計測は1回にして、うまいこと使いましょう。

#!/bin/bash
speed_info=`/usr/local/bin/speedtest-cli --simple 2>/dev/null | grep load | sed -e 's/^.*: //g;s/ M.*$//g'`

wait

if [ -n "$speed_info" ];
then
    dl_speed=`echo $speed_info | awk '{print $1}'`
    ul_speed=`echo $speed_info | awk '{print $2}'`

    echo "Download: $dl_speed Mbps"
    echo "Upload: $ul_speed Mbps"

    unset speed_info
    unset dl_speed
    unset ul_speed
else
    echo "Download: -"
    echo "Upload: -"
fi

ネットワークにつながっていないと speedtest-cli が標準エラーを吐くので、それは捨てました。Mbps は決め打ちです。ネットワークがもっと速くなったらまた考えましょう。

homebrew でインストールする方を利用される場合 --simple オプションがなかったりしますが、基本的には一緒です。よしなに grep, sed してください。

LAN ケーブルで接続してる場合

Wi-Fi じゃなくて LAN ケーブルでネット接続している場合もあるかも知れないので、一応対応しておきましょう。ネットワーク・インターフェースの調べ方は、ifconfig ゴニョゴニョと、同じです。今回、Mac Pro では、en0, MacBook Air には LANケーブルのインターフェースはないのですが、USB-C のアダプター経由で利用することが可能で、その場合、en2 でした。

説明上は、

  • Wi-Fi: en0
  • LAN: en2

として進めます。LAN の場合は、ネットワーク内のIP Addressだけにしておきます。

networkMonitor.sh
#!/bin/bash
en2_info=`ifconfig en2 |grep inet |grep netmask |grep -v 127.0.0.1 |awk '{print $2}'`

wait

if [ -n "$en2_info" ];
then
    echo "Ethernet: $en2_info"
else
    echo "Ethernet: INACTIVE"
fi

unset en2_info

余談ですが、USB-C等でくっつける LANアダプターは、セキュリティ的には良くない場合があります。MAC Address というのは、Physical Address とも言い、その名の通り、物理的なものについているアドレスです。LANアダプターの MAC Address は LANアダプター自身についています。なので、別のPCに挿しても、MAC Address は変わりません。なので、MAC Address を元にアクセス制限をしていたり、アクティビティを監視しているような場合、アクセス制限や監査ログ的な意味はなくなって/薄れてしまいます。MAC Address は偽装が簡単な割に、あちこちで使われているので、注意したいところ。

完成品

以上、まとめて、スペース等を美しく調整すると、

networkMonitor.sh
#!/bin/bash
speed_info=`/usr/local/bin/speedtest-cli --simple | grep load | sed -e 's/^.*: //g;s/ M.*$//g'`

ext_info=`curl --silent api.ipify.org --max-time 5`

en0_info=`ifconfig en0 | grep inet | grep netmask | grep -v 127.0.0.1 | awk '{print $2}'`
en2_info=`ifconfig en2 | grep inet | grep netmask | grep -v 127.0.0.1 | awk '{print $2}'`

wait

if [ -n "$speed_info" ];
then
    dl_speed=`echo $speed_info | awk '{print $1}'`
    ul_speed=`echo $speed_info | awk '{print $2}'`

    echo "Download   : $dl_speed Mbps"
    echo "Upload     : $ul_speed Mbps"

    unset speed_info
    unset dl_speed
    unset ul_speed
else
    echo "Download   : -"
    echo "Upload     : -"
fi

echo ""

if [ -n "$ext_info" ];
then
    echo "External   : $ext_info"
else
    echo "External   : OFFLINE"
fi

unset ext_info

if [ -n "$en0_info" ];
then
    wifi_network=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | awk -F: '/ SSID: / {print $2}' | sed -e 's/.*SSID: //'`


    echo "Wi-Fi      : $en0_info"
    echo "- SSID     :$wifi_network"

    unset wifi_network
else
    echo "Wi-Fi      : INACTIVE"
fi

unset en0_info

if [ -n "$en2_info" ];
then
    echo "Ethernet   : $en2_info"
else
    echo "Ethernet   : INACTIVE"
fi

unset en2_info

実行結果は、こんな感じ

$ ./networkmonitor.sh
Download   : 37.69 Mbps
Upload     : 54.78 Mbps

External   : XXX.XXX.XXX.XXX
Wi-Fi      : 192.168.1.19
- SSID     : XXXXXXXXXXXXXXX
Ethernet   : INACTIVE

Geektool に設定する

120秒リフレッシュ、60秒タイムアウトにして、Font を Ricty にして、このbash script を実行すると、あら素敵!デスクトップ上で、いつでも確認できる!

IMG_9838.PNG

ネットワークスピードは、あんまり素敵じゃないですね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【環境変数】vimを使って環境変数を設定する!

1, はじめに

今回はvimを使って環境変数を設定する方法について書いていきます。
なお、ローカル環境に設定することを想定しています。

basic認証など、環境変数の設定する際に役立てれれば幸いです!

初学者投稿の記事になりますので、もしかしたら間違った部分もあるかもしれません。
その時はご教授いただけると幸いです!

2, 環境

  • macOS:Catalina 10.15.7

3, 設定方法

terminalを使用し、設定していきます。

1, vim ~/.zshrcを入力し、エンターを押します。

vim ~/.zshrc

そうすると、以下のような画面に遷移します。
既に書いてあるものはご自身のパソコン次第で変わると思われます。

export PATH="hoge/fuga/....."                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
"~/.zshrc" 8L, 199C

2, iを入力し、インサートモードに変更

i

すると、画面の下部が以下のようになります。

export PATH="hoge/fuga/....."                                                                                                                                      
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
-- INSERT --  #このように表示される

3, exportを使って環境変数を定義します。

移動はカーソルキーで行えます。
(カーソルキー以外の方法もありますが割愛します)

!!!既に書いてあったものは、消さないように!!!

export PATH="hoge/fuga/....."          #消さないこと                                                                                                                            
~                                      #【任意】分かりやすいように1行開けてます。                                                                                                 
export HOGE_USER_NAME="hogehoge"       #HOGE_USER_NAMEという変数にhogehogeを代入                                                                                                                               
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
-- INSERT --

4, エスケープキーを押します。

エスケープキーを押すと、画面の下部が以下のようになります。

export PATH="hoge/fuga/....."                                                                                                                                      
~                                                                                                                                       
export HOGE_USER_NAME="hogehoge"                                                                                                                                    
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~      #特に何もなくなる                                                                                                                                 

5, :wqを入力し、エンターを押します。

保存後は勝手にterminalに戻ります。

export PATH="hoge/fuga/....."                                                                                                                                      
~                                                                                                                                       
export HOGE_USER_NAME="hogehoge"                                                                                                                                    
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
~                                                                                                                                       
:wq       #入力すると、ここに表示されます。                                                                                                                              

6, source ~/.zshrcを入力し、エンターを押します。

これにより、zshrcファイルを再度読み込みます

source ~/.zshrc

7, envを入力し、エンターを押します。

設定した環境変数が表示されたら完了です!

(一部省略)
HOGE_USER_NAME=hogehoge

4,ポイント

1, vimは操作が特殊

vimはterminalと操作の仕方が異なります。
無理やりterminalを終了して、e325エラーが発生してあたふた。。なんてことも。
(実際、これでめっちゃ焦りました)

簡単ですが、vimの操作方法を以下に記載してみました。
実際はもっとあるそうですが、
最低限これらを覚えたら、変な動作→e325エラー発生を抑えられたので
記載します。

sample

i #文字を入力するモード。エスケープキーを使うと元のモードに戻ります。

: #コマンド入力モード

:w #保存

:wq #保存して終了

:q #終了

:q! #強制終了


2, .zshrcファイルに環境変数を書く

.zshrcに書くことで、環境変数が永続的に使えるようになります。

これはzshrcファイルの特徴である、
terminalを立ち上げるたびに読み込むためです。

なので、環境変数を設定した後にsource ~/.zshrcを入力することで
terminalを立ち上げる動作を再現しています。

そうすることで、定義した環境変数を読み込み、使えるようになります。


5, 参考にさせていただいた記事

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Android]Android Studio 4.1でのショートカットキー割り当て

概要

なんか従来使えてたショートカットの割り当てのデフォルト設定が違うみたいで、
確認したらIntelliJ IDEA Classicになってる・・・

MacOSにしてあげればOK!

やり方

メニューのAndroidStudio > Preferences > Keymapで、ドロップダウンリストからMacOSを選ぶ > OK押下

でおしまい。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

自分用メモ4

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Visual Studio Code - 非エンジニアによるメモ帳セットアップと拡張機能のまとめ

はじめに

Visual Studio Code(以下VSCode)はエンジニア向けの総合開発環境ですが、拡張機能をインストールすることで非エンジニアでも活用できる強力な多機能メモ帳に進化します。
本記事では私自身の備忘録として、MacOSでのセットアップ手順と利用している拡張機能をまとめます。

  • 2020/10/21 投稿

VSCodeを使う

インストール方法

VSCodeのインストール方法は以下の2種類があります。

  • インストーラーをダウンロード
  • Homebrewでインストール

私はMacにインストールするアプリケーションをHomebrewで管理しています。
インストーラーを使いたい人は公式サイトよりダウンロードしてください。

Homebrewでインストール

brew cask install visual-studio-code

Markdownプレビュー画面の表示

  1. コマンドパレットを開く( View > Command Pallet もしくは cmd + shift + p
  2. markdown open preview to the sideを入力

おすすめの拡張機能

ここで紹介しているものは全てVSCodeメニューのEXTENSION(拡張機能)からインストールができます。

Japanese Language Pack for Visual Studio Code

VSCodeを日本語化します。初回起動時のデフォルトは英語版になりますので、必要な人は以下手順で日本語化しましょう。

  1. EXTENSIONSからJapanese Language Pack for Visual Studio Codeを検索しインストール
  2. VSCodeを再起動(再起動後に日本語化されていれば次以降の手順は不要)
  3. コマンドパレットを開く( View > Command Pallet もしくは cmd + shift + p
  4. configure display languageを入力
  5. jaを選択し、VSCodeを再起動

vscode-icon

VSCode上でファイルアイコンを表示します。私はSetiというテーマがお気に入りです。

  1. EXTENSIONSからvscode-iconsを検索しインストール
  2. ファイルアイコンのテーマ( Code > 基本設定 > ファイルアイコンのテーマ )でから好きなテーマを選択

テキスト校正くん

WORDのようにVSCode上で入力した日本語文章をチェックしてくれます。
チェックするルールをカスタムできるtextlintという拡張機能も存在しますが、簡易でざっくりとした校正機能を求めるのであればテキスト校正くんで十分です。

Code Spell Checker

英単語のスペルをリアルタイムでチェックしてくれます。
検出されたくない単語をホワイトリスト登録することも可能です。

CharacterCount

文字数をカウントしてステータスバーに表示します。

Evilinspector

文章中の全角スペースを強調表示します。

公式設定のススメ

行末のスペースを削除

  1. 設定を開く( cmd + , )
  2. Trim Trailing Whitespace を有効化

Trailing Spacesという拡張機能でも実現できるらしいです。(未検証)

設定の同期

設定やキーバインド、拡張機能をマシン間で同期できます。
設定手順はユーザガイドに記載されており、利用にはGithubもしくはMicrosoftアカウントが必要です。
私はMacOSとVMwareFusion上で稼働するKalilinuxで設定を同期させています。
2020年10月の段階でプレビュー中ですが、問題なく動作しています。

気になっている拡張機能

Draw.io Integration

Draw.ioのVSCode拡張版です。
思考整理や簡単な図を作るのに便利な気がします。

Todo Tree

特定のコメントを検索し、アクティビティバーに表示してくれる拡張機能です。
何か使いどころがないか模索しています。

VSNotes

VSCode上で動作するシンプルなメモ帳です。
シンプルと言ってもマークダウンに対応し、GoogleドライブやGithub連携も実現しています。
画像を貼れないのが気になっていますが、なぐり書きするアイデア帳としては悪くないかも。

おわりに

おすすめの拡張機能があったら教えてください。
みなさんも良いVSCodeライフを!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む