web-dev-qa-db-ja.com

Vim Script:マッピングでスクリプトローカル変数を参照することは可能ですか?

<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>

(上記のように)アクセサ関数を作成することでこれを回避できますが、直接参照できると便利な場合があります。

5
Steve Vermeulen

もともとコメントしたかったのですが、50人必要です。ここに小さな提案があります、そして私はそれが目標通りであることを願っています。

使用可能(変数が定義されているスクリプト内)

exe "nnoremap <c-space> :echo ".s:testVar."<cr>"

.vimrcで定義されたマッピングでのs:varパスの挿入にこれを使用しています。ポイントを逃したか何かを教えてください...

2
dabyly