どのようにしてVimが探しているディレクトリを取得できますか? vimrc
プラットフォームを独立して設定したいので、明示的なディレクトリを置いてはいけません。 Linuxの場合vimは~/.vim
に、Windowsでは~\vimfiles
になります。私のファイルをそこに置くために、使用されているディレクトリをどのように入手できますか?vimrcファイルのためのVimディレクトリを取得する
答えて
これは私が必要とする情報ではないとは言えません。 LH-VIM-libに
、私は(lh#path#vimfiles()で)この道を進む::let regex = substitute($HOME, '[/\\]', '[/\\\\]', 'g')
:
- まず私は$ HOME(つまり私は
[/\\]
にすべてのスラッシュとbackslahesを置き換える)から正規表現を構築します。 - 次に、私は可能なディレクトリを追加します:
let regex .= '\(vimfiles\|.vim\)'
- 最後に、正規表現を& rtpに検索します。最短の結果は良いものです。
:let paths = filter(split(&rtp, ','), 'match(v:val, regex) != -1')
+:return paths[lh#list#arg_min(paths, function('len'))]
注:実際のコードはもう少しエラーに(?/耐性)、複雑な汎用の弾性です。
PS:cygwinのため、has('win32')
のテストでは不十分です。
編集:私はlh#list#arg_min()
の定義を提供するよう依頼されました。これはlh-vim-libにあります。その定義は非常に簡単ですし、少し面倒(IMO)
function! lh#list#arg_min(list, ...) abort
if empty(a:list) | return -1 | endif
let Transfo = a:0 > 0 ? a:1 : function(s:getSNR(id))
let m = Transfo(a:list[0])
let p = 0
let i = 1
while i != len(a:list)
let e = a:list[i]
let v = Transfo(e)
if v < m
let m = v
let p = i
endif
let i += 1
endwhile
return p
endfunction
'&rtp'の後ろに括弧があります(私は編集できませんが、もっと多くの文字を変更する必要があります)。多分 'lh#list#arg_min'の定義を与えることができます、それを見つけることができませんでした。 – DerWeh
本当にありがとうございます。私は訂正をしました。 'arg_min'に関しては、それほど複雑ではありませんが、やや面倒です。その定義はここにあります:https://github.com/LucHermitte/lh-vim-lib/blob/master/autoload/lh/list.vim#L430 –
あなたも、VimはWindows上で同じ~/.vim/
を使用するために、デフォルト'runtimepath'
を上書きすることができます。これをあなたの中に入れてください~/.vimrc
:
if has('win32') || has('win64')
let &runtimepath = substitute(&runtimepath, '\C\V' . escape($HOME.'/vimfiles', '\'), escape($HOME.'/.vim', '\&'), 'g')
endif
- 1. .vimrcのVIMセットctags
- 2. Vim - .vimrcファイルで1つの 'bind'
- 3. のVim - 私のvimrcでセッション
- 4. 私のvimrcでのvim
- 5. VIMのvimrcファイルでCAPS LOCKを一致させる方法
- 6. vimのWindows版のデフォルトのvimrcファイルの説明
- 7. .vimrcファイルにエコーがあるとVimが一時停止する
- 8. ファイルが存在するディレクトリを取得するためのWindows CMDスクリプト
- 9. コマンドで取得したファイルのセットをVimバッファーにロードする
- 10. Vimの治療vimrcの場合フォルダ
- 11. vimrc - 現在の作業ディレクトリ
- 12. vimrcなしでvimを起動する/開いているファイルでvimrcを変更する
- 13. OSX:ファイル/ディレクトリのディスクサイズを取得する
- 14. VIM:オープンされたバッファのファイルパス/ディレクトリを取得する方法は?
- 15. Vimは:私の.vimrcで長い行
- 16. vimrcでvimの取り消し線を無効にする方法
- 17. vimは、vimrcをロードした後にプラグインをロードしますか?
- 18. ディレクトリリスト/ファイルを開くためのvimプラグイン
- 19. 与えられたディレクトリのファイル名を取得するjQuery
- 20. VIMのdocでVimrcオプションを注文する
- 21. vimrcのプラグインコマンドに基づいてvimコマンドをロードする方法
- 22. pyqt QFileDialog.getOpenFileName()ファイルのディレクトリのパスを取得
- 23. 特定のファイルの親ディレクトリを取得
- 24. googleclのためのVimrcのカスタマイズ
- 25. Vim実行:vimrcからe ++ ff = dos
- 26. ディレクトリのFileDescriptorからファイルを取得
- 27. 最新のファイルをディレクトリに取得
- 28. bashでファイルの親ディレクトリを取得
- 29. Umbraco - 設定ファイルのディレクトリを取得
- 30. Bash - ファイルまたはディレクトリをコピーするための応答を読み取る
答えは、あなたが予想しているよりも複雑です。関連するディレクトリがいくつかあり、そのうちのいくつかはハードコーディングされています。詳細は ':h起動 'を参照してください。 'vim --version'の出力も参照してください。 –
'.vimrc'にはどこにvimフォルダが必要ですか?私はちょうど '.vimrc'をチェックしました。私が使っている唯一の場所は、一時ファイルです。あなたはユースケースが何であるか少し詳しく説明できますか? – pfnuesel
最初は一時ファイルです。 '.vim'のサブディレクトリに' undo'と 'backup'ファイルを保存します。他のものは私のプラグインです。私は 'vim-plug'を使い、フォルダを指定する必要があります。 GitHubに '.vim'フォルダを置き、それをGitをインストールしていないシステムにも同期させることができます。 – DerWeh