読者です 読者をやめる 読者になる 読者になる

$this-> をラクに入力する

PHP 書いてると、$this-> をよく書く割に Shift を 2 回も使わないといけなくてすごく書きづらい。
あまりに書きづらいので @ で $this-> を出すようにした。確か PHPer って @ は滅多なことがないと使わない*1んだよね。

" after/ftplugin/php.vim
inoremap <buffer> @ $this->

これでよし。と言いたいところだけど、コメントの中で @return とか書くときに誤爆する。ので、コメント内と、ついでに文字列内では展開しないようにした。

" after/ftplugin/php.vim
function! s:at()
  let syntax = synstack(line('.'), col('.'))
  let name = empty(syntax) ? '' : synIDattr(syntax[-1], "name")
  return name =~# 'String\|Comment\|None' ? '@' : '$this->'
endfunction
inoremap <expr> <buffer> @ <SID>at()

今度こそこれでよし。ちなみに s:at() 内の最初の2行は他でも使えそうなので私の環境では name を返すようなグローバル関数にして vimrc で定義してる。
どうしても @ が打ちたくなったら @ でできるよ。

追記:
文字列の末尾で展開されてしまっていたので、パターンにNoneを追加。
これだと逆に文字列の直前の @ が展開されないけど、こっちはそこまで問題にはならないはず。