Skip to content

Instantly share code, notes, and snippets.

@hackugyo
Last active April 24, 2022 20:32
Show Gist options
  • Save hackugyo/5597129 to your computer and use it in GitHub Desktop.
Save hackugyo/5597129 to your computer and use it in GitHub Desktop.
My miscellaneous tips

雑多Tips

  • セル内の改行は Cmd + Opt + Enter(めんどくさいからCmd + Opt + Shift + Enterでもいいよ)
  • 選択範囲のクリアは、fn + delete
  • shellの話だよー

  • 入力待ちの突破にはexpect

    #!/usr/bin/env bash
    (set -eu -o pipefail; \
    scp_password=$1; \
    version_tag=${2:-`date '+%Y%m%d'`}; \
    expect <<EOF
    set timeout 10
    spawn scp -P 22 .//app/build/outputs/apk/myapp-debug.apk root@xxx.xxx.xxx.xx:/var/www/html/apps/${version_tag}.apk
    expect "root@xxx.xxx.xxx.xx's password:"
    send "${scp_password}\n"
    expect eof
    EOF
    )
  • パイプ対応には-pオプションを見る

    gsearch_d ()
    {
      ( if [ -p /dev/stdin ]; then
          a=$(cat -);
        else
          a=$@;
        fi;
        argv=("$a");
        str="$(echo -n $argv | nkf -wMQ | sed 's/=$//g' | tr = % | tr -d "\n")";
        open https://www.google.co.jp/search?btnI'&'q="$str" & exit )
    }
  • パッケージ名を変更する(配下のディレクトリ内の文字列を変更する)

    $ find . -type f -name '*' -print0 | xargs -0 perl -i.bak -pe 's/jp.co.hackugyo/jp.co.hackugyo2/g'
    $ find . -type f -name '*.bak' -print0 | xargs -0 rm -rf
  • [メモ書き] windowsから送られてきたzipがMacで文字化けするの何とかする - Qiita

    • $unar
  • 画像のリサイズ

    • sips -Z 640 *.jpg
    • 比率を保って,高さまたは幅の最大値を640としてresize
  • sshコマンドを自動補完するbash-completionを入れた

  • findで検索した結果を次のコマンドに渡したいとき,ただパイプするだけではだめ。

  • printenvで環境変数一覧になる

  • unsetで環境変数を削除できる

  • setするときはexport ENV_NAME=env_value

  • column -tでタブ区切りテキストをきれいに表示できる

  • echo $(whoami)で現在のユーザ名が出せる

  • USB機器の一覧を出すusb_listというコマンドを作った,list_usbsというコマンドも作った

  • zipするときに特定フォルダを除外するには

    zip -r whatever_you_want.zip ./what_you_zip/ -x ./what_you_zip/.git/\*
chmod u+x ~/Desktop/SMBC_UNINSTALL.command
#!/bin/sh
set -e # stop when an error happens
set -x # show commands in strderr before execute it
echo "mokotan"
  • which コマンドで場所がわかるけど,type がよい

  • for F in btn_z01_*; do mv $F ${F/z01/new};done

  • seq -f "201303%02g.rst" 31 | xargs touch #create_serial_files

  • nkf

    • コマンドラインから文字コード変換したかったのでsudo port install nkfした
  • ファイル名置換

  • ln -s source directory でシンボリックリンク作成

    • lnのリンク先を確認するにはreadlink
  • grepでSEARCH_WORDを,カレントディレクトリ以下から再帰的に検索する

    grep -rn -e SEARCH_WORD .
    • mdfind使ったほうが早い
  • sipsコマンドを使うと画像の情報が見られる

  • update-alternativesはMac OS Xにはないのか

  • echo "暗号化前" | openssl enc -e -aes-256-cbc -salt -base64 -pass pass:password | openssl enc -d -aes-256-cbc -salt -base64

  • bash_profileにlsで色をつける設定を書いた

    • sourceコマンドで再読みこみすると反映される
    • めんどくせえからrelaod_bashrcというaliasをつけた
  • pathを出すときに改行を入れたいから'echo -e ${PATH//:/\n}'を作った

    • これもめんどくせえからshow_pathというaliasを設定した
  • aliasコマンドで現在のalias一覧がとれる

  • bookmarkはC-x r b(一覧表示はC-x r l)

  • binarycookiesファイルのリーダを入れた

  • Cmd + Wでタブが閉じるのがうっとうしいので,ショートカットをOpt + Shift + Cmd + Wに変えた

  • Terminal内のブックマークを作れる Bashmarks を入れた

    $ s shortname # save current path as `shortname`
    $ g shortname # cd to stored path
    $ o shortname # open the bookmark in Finder
    $ y shortname # open the bookmark in a new tab
  • percol

  • ターミナルから設定画面を表示するショートカットを作った

  • 検索はag使った方がよい

  • ptもいいのだが検索オプションが弱すぎる.たとえばこんなふうにしてptをjqと組み合わせるといい

    # $ ./find.sh dir
    (set -eu -o pipefail; \
     dirname $0; \
     pt price=\"10000\" $@ | ag "year=\"201[45]" | \ # 条件にあったsearchedディレクトリのファイルを探す
       percol | tee /dev/stderr | \ # 検索の途中経過はstderrに吐いて見えるようにする
       cut -d ":" -s -f 1 | \ ag の結果を整形
       sed 's/\/searched\//\/target\//g' | \ # searchedディレクトリにあったファイルと同名でtargetファイルにあるものを探す
       xargs nkf -u | ag FUND_NAME # 文字コードをutf8にして内部を検索 \
    )

Ant ビルド

  • まず,android list targetsでAVD一覧をとる.
    • ここでとったAVDのidを,次のところで用いる.
/Users/HACKUGYO/android-sdks/tools/android update project -p . --target 34 --subprojects

文字に 色を つけることができる

.red {color:red}
  • file-cache
    • ディレクトリをあらかじめ追加しておくとファイル開くとき保管してくれるが……
    • Emacs起動後に作成したファイルを対象にするには,M-x file-cache-add-directory-recursively とかしないといけない
    • http://www.bookshelf.jp/soft/meadow_23.html#SEC228
  • bookmark
    • C-x r m でカレントバッファを追加
    • C-x r l でブックマーク一覧を表示
    • C-x r b でブックマーク名を指定して開く
    • http://maruta.be/intfloat_staff/53
  • ディレクトリ内検索
  • 矩形選択
    • cua-mode: リージョン選択中にもう一度C-<enter>
  • Emacs - 複数行の先頭にスペース挿入/削除コマンド - Qiita [キータ]
    • C-x r tでスペースを好きなだけ叩いてRET
    • 覚えかたはRegion Text
  • diredで一括文字コード変換
  • json-modeのbeautify-jsonと,通常インデントとが合わないので設定変更
  • android-mode
    • http://qiita.com/items/bab8c1d27255b03b9ee1
    • プロジェクト作成,DDMSやエミュレータの起動,アプリインストールまでできる
    • サンプルアプリを ~/git/android_emacs_mode_sample に作った
  • kill-all-buffer ?
    • C-x C-b でbufferのリストが出せる
  • 対応するカッコに飛ぶ
    • C-M
  • Emacsをターミナルの外で開くようにする
    • emacscというエイリアスを設定した
  • bookmarkを開く
    • Ctrl-x r b
  • wで次の単語に移動.bで前の単語に移動.$で行末に移動
    • 当然,コマンドモードのときだけ
    • 挿入モードのときに1回だけコマンド入力してすぐ戻りたい場合,Ctrl+oがおすすめ
    • 何発もコマンド入力したい場合はEscで切り替える
  • エディタ上に行表示するには:set number
  • git checkout $BADCOMMIT^ $DELETED_FILE_PATH で,削除したファイルをもとに戻せる

  • git log --follow --name-status $FILENAME でファイル名変更を含めてステータスを追える

  • diff-highlightがない

  • CRLFの撲滅

    • nkf -w -Lu --overwrite *.bat
  • Git - masterのpushを常に禁止する - Qiita

    • 以下のpre_pushシェルスクリプトを配置しておく

      #!/bin/sh
      # if the branch is master, then fail.
      branch="$(git symbolic-ref HEAD 2>/dev/null)" || \
      "$(git describe --contains --all HEAD)"
      if [ "${branch##refs/heads/}" = "master" ]; then
        echo "Do not commit on the master branch!"
        exit 1
      fi
  • git diff head^..head | diff-highlight | less -r で文字単位の差分比較

  • git rebase -i --autosquash で,コミットメッセージがfixup! nnnから始まっているものを自動的にコミットnnnにfixupしてくれる

  • find ./ -name NAME | percol | xargs git log --follow #見つけたファイルをリネーム追跡しつつgit logする

  • 既にgit管理しているファイルをあえて無視する

  • gitconfigからも,emacsclientでエディタを開くようにする

  • gitignore生成にはgibo(gitignore-boilerplates)を入れてある

    • gibo emacs osx android > .gitignore
  • diff-hightlightを入れた

  • 連続してcherry-pick

  • textile(Redmineのwiki記法)をpdfに変換できる

    • Redmine本体ほど寛容でないので,仕上がりを確認すること
  • nokogiri1.5.10を使うのだが,nokogiriは不寛容で,invalid UTF-8が入っているやつを読んでくれない

    • nokogiriのdocument_fragment.rbを改造するとパスできる.
      if ctx
      preexisting_errors = document.errors.dup
      node_set = ctx.parse("<div>#{tags}</div>")
      node_set.first.children.each { |child| child.parent = self } unless node_set.empty?
      self.errors = document.errors - preexisting_errors
    else
      # この2行を追加
      # http://blog.livedoor.jp/sonots/archives/23652294.html
      tags.force_encoding('UTF-8')
      tags = tags.encode("UTF-16BE", "UTF-8", :invalid => :replace, :undef => :replace, :replace => '?').encode("UTF-8")
       # ここまで追加
      # This is a horrible hack, but I don't care
      if tags.strip =~ /^<body/i
        ...
  • pdf 化

    • rst2pdf -s ja --font-path=~/fonts/migu-1m-20120411-2/migu-1m-regular.ttf wgaoi.rst
  • landslide -d dest.html *.rst でOK

  • gimp が入らねえ

    • デスクトップアプリとして入れて,

      open -a gimp ~/Desktop/sample.png
  • sphinx_bootstrap_themeを入れた

    • pip install sphinx_bootstrap_theme
    • conf.pyにて設定
  • インデントはCtrl + i

  • エディタの右上の+マークを押すとタブが増える

    • Cmd + Tでもよい
  • Command+Shift+Oでファイル名orメソッド定義での検索ができる

  • Command+Clickでメソッド定義に遷移できる

  • クラス階層はSymbol Navigatorを使う

    • AppCode IDE との比較が逆説的に参考になる
  • Xcodeではタブの動きはひどいので使わないほうがいい.

  • 恥ずかしいコメントを消すために,以下の正規表現で検索

    regexp = "\/\/[[a-zA-z0-9]|\s|:]*[[ぁ-ヶ]|[亜-黑]]+"
    # "// FakeIt: 日本語コメント"
    # "// 日本語コメント
    # のような記述に該当する
  • 端末がXcodeに読み込まれないときの対処

    Xcode has encountered an unexpected error (0xC002)
    No such file or directory, at ‘/SourceCache/DTDeviceKit/DTDeviceKit-867/DTDeviceKit/DTDeviceKit_Utilities.m:864’
    
    • Xcodeを閉じて、以下のパスに移動
      • "~/Library/Developer/Xcode/iOS DeviceSupport/5.0.1(9A405)/Symbols/System/Library/Caches/com.apple.dyld/"
    • 空のファイルを作る
      • .copied_dyld_shared_cache_armv7
      • .processed_dyld_shared_cache_armv7
      • dyld_shared_cache_armv7
    • http://stackoverflow.com/a/10029540/2338047
  • Shift + Cmd + Xで,イコール記号両辺の整形を行うXAlignを入れた

  • キャッシュの消しかた

    [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    [[NSURLCache sharedURLCache] setDiskCapacity:0];
    [[NSURLCache sharedURLCache] setMemoryCapacity:0];

iOS7対応

  • pip が入ってなかったじゃねーか
    • easy_install pip
javascript:
  (function(){
    if(document.URL.indexOf('amazon.co.jp') == -1){
      prompt('コピーしてください','`'+document.title+'%20'+'<'+document.URL+'>`_');
    }
    else {
      var title = document.getElementById('btAsinTitle').textContent;
      var b = document.getElementsByTagName('b');
      var r;
      for(i=0;i<b.length;i++)if(/ISBN-13/i.test(b[i].innerHTML))r=b[i].parentNode.innerHTML.match(/(\d{3})-(\d+)/);
      var isbn = r[1]+r[2];
      prompt('Amazon Hatena mode','isbn:'+isbn+':detail:small'+'%20"'+title+'"');
    }
  })();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment