22

現在のファイルタイプを vimscript の変数として取得したいと思います。

現在のファイルタイプを取得し、対応するファイルタイプの別のファイルを編集する関数を作成しています。

例えば:

  • 「foo/bar.txt」を編集して、「tmp/other.txt」を開きたい
  • 「foo/bar.cpp」を編集して、「tmp/other.cpp」を開きたい

など。ファイルタイプがvimに表示されることは知ってい:set ft?ますが、それをキャプチャしてから、それを新しいファイル文字列の一部として使用して別のファイルを開く方法がわかりません。

4

2 に答える 2

35

アンパサンドを前に付けることで、設定の値にアクセスできます。ファイルタイプを変数に割り当てるには、以下が同等です。

let my_filetype = &filetype
let my_filetype = &ft

あなたの例では、現在のバッファのファイルタイプが設定されていると仮定すると、次のようなことができます

execute 'edit tmp/other.' . &filetype

execute文字列が連結される前に変数が展開されるように、式が必要であることに注意してください。

于 2013-02-05T22:08:21.407 に答える
0

ファイルの種類とファイルのサフィックスは必ずしも同じではありません。たとえば、.txt ファイルを編集している場合、let zft = &ft は zft を「テキスト」に設定します。let zfs = fnamemodify(bufname("%"), ":e") は、zfs を "txt" に設定します。

于 2014-11-30T22:48:01.773 に答える