キーをバインドして、オンラインリポジトリホスティングの現在のファイルでブラウザーを開きたいです(たとえば、実際にはcodebasehqですが、githubのようなものだと想像してください)。
Vimで次の名前のファイルを編集しているとします。
/ROOT/repository/subdir/filename
現在のディレクトリは「リポジトリ」にあるため、ステータス行にはファイル名が次のように表示されます。
subdir/filename
私はOSXを使用しているので、ブラウザでこれを開くために使用するシステムコマンドラインは次のとおりです。
open https://<REPOHOST>/projects/<USER>/repositories/<REPOSITORY>/blob/master/<SUBDIR>/<FILENAME>#L<LINE>
どこ:
- REPOHOSTとUSERは修正されており、ハードコーディングできてうれしいです。
- REPOSITORYは、現在の作業ディレクトリの親のベース名です。つまり、ディレクトリ'repository'であり、'ROOT'プレフィックスはありません。
- SUBDIRとFILENAMEは、私が編集している「subdir/filename」です。
- LINEは現在の行番号です
私はこれまでに得ました:
noremap <leader>o :silent !open URL<cr>
また、すべてのHOSTNAMEなどにハードコードされた値を使用してURLを置き換えると、ハードコードされたファイル名でブラウザが開き、指定された行番号が強調表示されます。私の問題は、実際のリポジトリやファイル名などをこの行のURLに動的に置き換える方法をvimscriptする方法です。
私はPythonに精通しているので、Vimの組み込みPythonAPIを呼び出すことを含むソリューションは完全に受け入れられます。
編集
もうすぐですが、現在のディレクトリのベース名をvimscript変数「url」に追加するvimコマンドが必要です。これが適切に行われると、romain1からの回答(私自身の回答の改良点と一緒に)はそれを完全に実行します。
終了編集