koturnの日記

普通の人です.ブログ上のコードはコピペ自由です.

Vimに自殺させる

Vim力を上げるために,過去のvimrc読書会のログを見ていたときに,次のコマンドを発見した.

command! Suicide  call system('kill -KILL ' . getpid())

Vimは自分自身のPIDを getpid() 関数で取得できる. そうして取得した自身のPIDに対して kill コマンドを実行して,自殺しようというわけだ.

ただし, kill コマンドはWindowsには無い. Windowskill コマンドに相当するのは, taskkill コマンドである. したがって,Windowsに対応させるならば,次のように書き直すのがよい.

if (has('win95') || has('win16') || has('win32') ||  has('win64')) && executable('taskkill')
  command! -bar Suicide  call system('taskkill /pid ' . getpid())
elseif executable('kill')
  command! -bar Suicide  call system('kill -KILL '. getpid())
endif

この自殺コマンドはVimを強制的に終了させるため,終了時の後始末が行われない. そのため,カーソルの形状や文字色等が元に戻らないだろう. あくまでジョークコマンドなので,利用価値は無いといえる.

参考