カーソルを現在の行の最初の文字に移動する小さなVim関数を作成しました。カーソルがすでに最初の文字にある場合、カーソルは代わりに最初の列に移動します。
" Jump to first character or column
noremap H :call FirstCharOrFirstCol()<cr>
:function! FirstCharOrFirstCol()
:  let current_col = virtcol('.')
:  normal ^
:  let first_char = virtcol('.')
:  if current_col == first_char
:    normal 0
:  endif
:endfunction
この関数をサイレントモードで呼び出すにはどうすればよいですか?むしろ、「:call FirstCharOrFirstCol()」はステータス行に表示されませんでした。単に変更するだけnoremap H :silent call…では十分ではないようです。
*.vim)では、先頭の:文字は必要ありません。