Mac の Android Studio でキーボードショートカットを設定する

たとえば自分は、Control + H を Backspace、Control + D を Delete キーとして使うことに慣れている。

しかし、これらのショートカット入力は、Android Studio のデフォルトでは別の動作に割り当てられている。

そこで、Android Studio のデフォルトで設定されているショートカットの代わりに、自分の好みのキーボードショートカットを設定したい。

設定方法

1. 画面上部に表示される メニューバーで、Help から Preferences を入力する。

 (またはメニューバーの Android Studio を選び、さらに Preferences を選ぶ)

2. Keymap から自分の好みのキーボードショートカットを設定する。

f:id:yanagikn:20180624121536p:plain

macでスクリーンショットを保存する場所・保存ファイル名・ファイルフォーマットを変える方法

macスクリーンショットを保存する場所を変える

ターミナルに次のようなコマンドを打ち込むことで、macスクリーンショットを保存する場所を変えられる

defaults write com.apple.screencapture location ~/Desktop/
killall SystemUIServer
defaults write com.apple.screencapture name aiueo

上の例ではスクリーンショットは aiueo + (撮影時刻) という名前になり、 ~/Desktop/ に保存される。

Dropboxで自動共有している場合

Dropboxで自動共有するのをオンにしている場合には、コマンドを打ち込んだだけでは保存場所が変わらなかった。そういう場合には、画面の上のバーにあるDropboxアイコン↓を押し、

f:id:yanagikn:20150126022133p:plain

そこで開く↓の右下の歯車アイコンを押し、
f:id:yanagikn:20150126022138p:plain

基本設定↓を押すと、
f:id:yanagikn:20150126022143p:plain

次のような設定ボックスが開くので、

f:id:yanagikn:20150126021843p:plain

「インポート」のタブから、「Dropboxスクリーンショットを共有」のチェックボックスをオフにするとよい。

参考リンク:Dropbox でスクリーンショットを共有/保存するには? (Dropbox ヘルプセンター)

jpg,pdfなど他のファイルフォーマットで保存したい場合

参考リンクHow to change Mac screenshot file format in OS X

ターミナルで次のコマンドを打ち込む。↓はjpgで保存したい場合。

defaults write com.apple.screencapture type jpg
killall SystemUIServer

gifで保存するようにすると軽くなるようだ。自分はpngで保存する設定にしている。

タイムスタンプの部分を変える方法

デフォルトではスクリーンショットのファイル名が
2015-01-01 at 10.00.0.png

となっているが、空白文字が入っているとターミナル上でのファイル名入力が面倒である。
なので、タイムスタンプの部分を変更してみよう。

(追記)

以前は下に書いた「古い」方法でよかったが、El CapitanではScreenCapture.stringsがrootの権限でも編集できなくなったようだ。なので、他のやりかたを試してみよう。スクリーンショットが入っているディレクトリに行って、以下のコマンドを使うと、空白文字をアンダーバー_に変えることができる。

find . -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;
(古い方法)、El Captan以降では↑の追記参照

基本的には次のリンク
uti - Changing the default screenshot filename - Ask Different
に書いてあることをそのまま実行すれば良いのだが、日本語版の場合にはディレクトリ名のEnglishの部分をJapaneseに変える必要がある。その他は上のリンク先に書いてあることと同じ。

cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/Japanese.lproj/
sudo cp ScreenCapture.strings ScreenCapture.strings.old
sudo plutil -convert xml1 ScreenCapture.strings

途中でパスワードを求められたら入力する。
こうしてScreenCapture.stringsのバックアップを取っておいたうえで、viやvimなどの適当なエディタで編集する。

sudo vi ScreenCapture.strings

こうすると次のようなファイルが開くので、
f:id:yanagikn:20150126020332p:plain

<key>%@ %@ at %@</key>  
<string>%@ %@ at %@</string>  

と書いてある部分の string のほうを、好きなフォーマットの名前に変える(keyのほうは変更しない):たとえば

<key>%@ %@ at %@</key>  
<string>%@_%@_%@</string>

というふうにする。

最後に次のように打ち込む

sudo plutil -convert binary1 ScreenCapture.strings
killall SystemUIServer

次のようにファイルの名前が変更できた。
f:id:yanagikn:20150126023557p:plain

NSURLSessionで取った結果がnullを返すとき:iOSシミュレータ

NSURLSessionやNSURLConnectionに関するコードを書いていて、

参考:たとえば

ios7 - NSURLSession のまとめ - Qiita

iOSシミュレータで実行した結果、データが入っているはずのNSDataがnullにしかならない場合、
以下に書いてあるように、iOSシミュレータを再起動すると問題が解決することがある。


ios - NSURLConnection GET request returns -1005, "the network connection was lost" - Stack Overflow

C言語:出力エラー数を制限するコンパイルオプション

出力エラー数を制限するC言語コンパイルオプション

-ferror-limit=1

こうすると2個目以下のエラーが画面に出なくなるので、小さなターミナルで作業をしているときに便利。

gnuplot:3次元空間で点が動くアニメーションをファイルを読まずに作るC言語コード

題名の通り。set viewによる視点移動も。



#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double t,dt;
int main(){

  double t=0,dt=0.01;
  FILE *gp;
  gp = popen("gnuplot --persist","w");
  fprintf(gp,"set zrange [-300:300]\n");
  fprintf(gp,"set xrange [-20:20]\n");
  fprintf(gp,"set yrange [-20:20]\n");
  while(1){
    fprintf(gp,"set view 30,30*%lf\n",fmod(t,12));
    fprintf(gp,"splot %lf*x*x+%lf*y*y\n",sin(t),cos(t));
    fprintf(gp,"set label 1 point pt 7 pointsize 3 lc 1 at %lf,%lf,%lf\n",
	    t,20*cos(t),20*sin(t));
    fprintf(gp,"set label 2 point pt 2 ps 5 lc 2 at %lf,%lf,%lf\n",
	    2*sin(t),20*cos(2*t),20*sin(t));
    fprintf(gp,"set label 3 point pt 3 ps 10 lc 3 at %lf,%lf,%lf\n",
	    2*sin(7*t),20*cos(3*t),20*sin(4*t));
    fprintf(gp,"replot\n");
    t+=dt;
  }
  pclose(gp);
  return 0;
}

2次元アニメーションは次の過去記事のようにしてつくる。


C言語+gnuplot+popenを使った簡単なアニメーション作成プログラム - メモやなぎ

yasnippetでスニペットディレクトリを再読み込みしたいとき

yasnippetスニペットディレクトリを再読み込みしたいときは、

M-x yas-load-directory

として、スニペットファイルが入っているディレクトリを指定する。

参考:http://yasnippet-doc-jp.googlecode.com/svn/trunk/doc-jp/snippet-menu.html