実行中のプラットフォームを確認するVimスクリプト

実行中のプラットフォームを確認するVimスクリプト
" Get running OS
let os = ""
if has("win32")
  let os="win"
else
  if has("unix")
    let s:uname = system("uname")
    if s:uname == "Darwin"
      let os="mac"
    else
      let os="unix"
    endif
  endif
endif

" Brackets expanding
let preBracket="`"
if os=="mac"
  let preBracket="$"
endif

exe 'vnoremap' . preBracket . '1 <esc>`>a)<esc>`<i(<esc>'
exe 'vnoremap' . preBracket . '2 <esc>`>a]<esc>`<i[<esc>'
exe 'vnoremap' . preBracket . '3 <esc>`>a}<esc>`<i{<esc>'
exe 'vnoremap' . preBracket . '$ <esc>`>a"<esc>`<i"<esc>'
exe 'vnoremap' . preBracket . 'q <esc>`>a''<esc>`<i''<esc>'
exe 'vnoremap' . preBracket . 'e <esc>`>a"<esc>`<i"<esc>'
" Map auto complete of (, ", ', [
exe 'inoremap ' . preBracket . '1 ()<esc>i'
exe 'inoremap ' . preBracket . '2 []<esc>i'
exe 'inoremap ' . preBracket . '3 {}<esc>i'
exe 'inoremap ' . preBracket . '4 {<esc>o}<esc>O'
exe 'inoremap ' . preBracket . 'q ''''<esc>i'
exe 'inoremap ' . preBracket . 'e ""<esc>i'

上記のvimscriptと同様に、vimのプラットフォームに応じてショートカットをキー拡張括弧にマッピングしたいと思います。実際、私のMacBookは別のレイアウトを使用していましたが、キーボードで ``文字を使用するのが便利で、Mac Proキーボードの同じ場所にある$(daレイアウト)にマッピングしました。

しかし、スクリプトはLinuxではうまく動作しますが、Macでは動作しないようです。 Mac OSXでこのスクリプトを実行するには、何か欠けているか何かを追加する必要がありますか?

ベストアンサー1

私はvimscriptで文字列を比較するために自分の質問に答えることができ=~ました==!~

したがって、この小さなスクリプトが正しく機能するようにif s:uname == "Darwin"この行を編集してください。if s:uname =~ "Darwin"

私はそれを関数として書き直しました。

function! GetRunningOS()
  if has("win32")
    return "win"
  endif
  if has("unix")
    if system('uname')=~'Darwin'
      return "mac"
    else
      return "linux"
    endif
  endif
endfunction
let os=GetRunningOS()

誰かが私の関心に興味がある場合は、.vimrc私の記事をチェックしてください。ファイルをクリック

おすすめ記事