Mac」カテゴリーアーカイブ

MacOS + Vim + im_control.vim + im-select の設定方法

MacVim で <C-^> による IME 制御が効いていないみたいなので、im-select を使って解決したよ、という話。

使うもの

  • MacVim (Homebrew cask の “macvim”)
  • im_control.vim
    https://github.com/fuenor/im_control.vim
  • im-select
    https://github.com/daipeihust/im-select

手順

  1. vim + im_control.vim をインストール
  2. im-select のインストール (/usr/local/bin/ に配置)
  3. .vimrc に以下のように書く
if (g:os == "Darwin")
  let IM_CtrlMode = 1
  inoremap <silent> <C-j> <C-r>=IMState('FixMode')<CR>
  function! IMCtrl(cmd)
    let cmd = a:cmd
    if cmd == 'On'
      let res = system('im-select com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese > /dev/null 2>&1')
    elseif cmd == 'Off'
      let res = system('im-select com.apple.keylayout.ABC > /dev/null 2>&1')
    elseif cmd == 'Toggle' " dummy
      let res = system('im-select > /dev/null 2>&1')
    endif
    return ''
  endfunction
endif

IM_CtrlMode を 1 にしているので、IMCtrl()は ‘On’ か ‘Off’ を引数に呼ばれるので ‘Toggle’ は真面目に実装する必要はない。

Mac で Share screen の解像度を変更する

Mac の Share screen は VNC で接続できるところがとても素晴らしい。

接続先の Mac がデスクトップだったりして高解像度なディスプレイが繋がっていると、Share screen でつないだときに画面が広すぎて一部しか表示されなかったり、画面データの通信量が増加して操作感が悪化したりする。

そんな場合は、cscreen を使ってデスクトップの解像度を変えてしまえば良い。 続きを読む

【解決済】MacVim を CUI で動かすと has(‘mac’) が 0 になる問題

has(‘mac’) や has(‘macunix’) が 0 を返してしまって、.vimrc などが正しく挙動してくれなくなった。

調べると、以下のサイトが参考になった。

Detect OS in Vimscript

if !exists("g:os")
    if has("win64") || has("win32") || has("win16")
        let g:os = "Windows"
    else
        let g:os = substitute(system('uname'), '\n', '', '')
    endif
endif

みたいな感じで OS 情報を取得すればOK。

MacBook Pro 13 (13inch, Late 2011) の RAM を 16GB にアップグレード

Web 上の情報を参考にして製品を選ばせてもらったので、他に同じことを考えている人の役に立てばと思い、自分でも成功報告する。

UMAX の DDR3-1333 8GB×2 にした。この Mac は公式では最大 8 GBまでなんだけど、ちゃんと認識して動く場合もあるということなので期待して実施。Amazon のレビューでは上手く動かないという報告も挙がっていたけど、自分の場合は今のところ問題なく動作している。ちなみに OS は El Capitan。
https://www.amazon.co.jp/UMAX-PC%E3%83%A1%E3%83%A2%E3%83%AA-SoDDR3-1333-Castor-DCSoD3-16GB-1333/dp/B0074VT3BK/ref=sr_1_5?ie=UTF8&qid=1490161354&sr=8-5&keywords=umax+ddr3-1333

これまでもメモリが足りてないということはなかったと思うのだけれど、swap の使用量が格段に減って、より快適になった気がする。

また、VM を動かすことに関して格段に快適さが向上した。

Time Capsule のディスクが故障

2013年4月に購入した Time Capsule のディスクが壊れたらしい。

3年5ヶ月フルに稼動して故障したことになる。寿命っちゃ寿命だけど。バックアップだけではなくてデータも置いていたので救出できるか不安。やはり非冗長化の場所にデータを置いてはダメだね。

ということでファイルサーバを導入することにした。それはまた別の話。

ラジオ日経第2の曲情報を Mac の通知センターに通知する

動機

作業するときの多くの時間はラジオ日経第2(RN2)を聞いている。いろいろな曲が朝8時から夜11時まで流れているのでとてもありがたい。

聴く際には、Adobe Air で作られた Radiko ガジェットを利用しているけど、RN2は再生中の曲の情報がツールに表示されない。再生中の曲情報も公開されているけど、タイミングがあまり正確でないのと、ブラウザで表示するというのがイマイチだったので、Mac の通知センターに再生中の曲を表示する Python スクリプトを作ってみた。

ポイントは以下の3点

  • terminal-notifier という素晴らしいツールの利用
  • タイムテーブル が JSON 形式で取得できる
  • アートワークを表示できるようにしてるけど今はできない

JSON 形式の中身が結構充実していて、アートワークの URL も含まれていたりするので、通知する際の画像 URL に指定するとアートワークが通知センターに表示されて結構気に入っていた。

ところがこれらの画像の URL は HTTP なので、App Transport Security の仕様変更で表示されなくなってしまった。確かに、外部から取得した URL に対してさらにアクセスすることになるから、脆弱ではある。曲名とアーティスト名がわかることが第一の目的なので、とりあえずはブロックされたまま保留中。

Time Machine で 別のモデルのバックアップからリストアするのは要注意?

13-inch MBP (late 2011) で作った Time Machine のバックアップから、Mac mini (late 2014) へリストアして使っていたのだが、どうにもパフォーマンスが悪い。Chrome で幾つかタブを開いている状態で、さらに新しいタブを開く操作 (⌘-t) を押すと開くまでに数秒かかるなど、ストレスのある状況が続いていた。

ダメ元で一度再セットアップしてみようと思い、Yosemite をインストールしなおしたところ、これまでの症状が嘘のように改善。Mac は Time Machine による移行が簡単なところが売りなんだと思っていたけど、パフォーマンスに関してはやっぱり再セットアップしたほうがいいらしい。