<SID>
を使用してスクリプトローカル関数を参照できることは知っていますが、スクリプトローカル変数についてはどうでしょうか。次のことを試しましたが、<c-space>
を押すと失敗します。
let s:testVar = "foo"
function! s:GetTestVar()
return s:testVar
endfunction
nnoremap <space> :echo <SID>GetTestVar()<cr>
nnoremap <c-space> :echo <SID>testVar<cr>
(上記のように)アクセサ関数を作成することでこれを回避できますが、直接参照できると便利な場合があります。
もともとコメントしたかったのですが、50人必要です。ここに小さな提案があります、そして私はそれが目標通りであることを願っています。
使用可能(変数が定義されているスクリプト内)
exe "nnoremap <c-space> :echo ".s:testVar."<cr>"
.vimrcで定義されたマッピングでのs:varパスの挿入にこれを使用しています。ポイントを逃したか何かを教えてください...