4

そのため、ファイルシステムをブラウズできる優れた機能が追加されるため、vimでNERDTreeを使用しています。また、ブックマーク機能により、プロジェクト間の切り替えに最適です。

しかし、私は vim で Marks をますます使い始めたので、マークのセットを持つことを可能にするプラグインを誰かが知っているかどうか知りたいと思っていました. 私が現在取り組んでいるプロジェクトの構成ファイルに `C を移動させたいのと同じように。プロジェクトを切り替えるたびに設定できますが、それらをパッケージ化する良い方法を誰かが知っているかどうか疑問に思っていました.

考えてみれば、ディレクトリに入ったときにファイルを読み込むだけだったらすごいと思います(NERDTreeでブックマークを切り替えるような...)。

とにかく、そのようなことを知っている人はいますか?

4

2 に答える 2

4

したがって、マークはセッションに保存されず、viminfo ファイルに保存されることがわかります。だから私はあなたのvimrcからのコードを基礎として使用し、vimヘルプファイルのセッションに関するセクションの下部にあるコードを使用して、セッションとviminfoファイルを保存できるようにする関数を作成しました。私にとってうまく機能する基本的なプロジェクト管理を作成します!

これが私が最終的に得たコードです。

if version >= 700
    " localoptions has to be here:
    " for some reason, new session loading code fails to set filetype of files in session
  set sessionoptions=blank,tabpages,folds,localoptions,curdir,resize,winsize,winpos
endif

command! -nargs=1 Project :call LoadProject('<args>')
command! -nargs=+ SaveProject :call SaveProject('<args>')

let s:projectloaded = 0
let s:loadingproject = 0
let s:projectname = ''

function! LoadProject(name)

    let s:projectloaded = 1
    let s:projectname = a:name
    exe "source ~/vimfiles/projects/".a:name.".vim"
    exe "rviminfo! ~/vimfiles/projects/".a:name.".viminfo"

endfunction

function! SaveProject(name)

    if a:name ==# ''
        if s:projectloaded == 1
            let pname = s:projectname
        endif
    else
        let pname = a:name
    endif

    if pname !=# ''
        let s:projectloaded = 0
        let s:projectname = ''
        exe "mksession! ~\\vimfiles\\projects\\".pname.".vim"
        exe "wviminfo! ~\\vimfiles\\projects\\".pname.".viminfo"
    endif

endfunction

autocmd VimLeave * call SaveProject()
于 2009-12-26T20:23:35.637 に答える
3

マークはセッションファイルに保存されていると思います。これにより、必要なことを実行できる場合があります。セッション管理自体は別のトピックですが、ここでいくつかのアイデアを見つけることができます。このコードは、複数のセッション ファイルのサポートを含むように更新されているため、このvimrc ファイルで最新のものを入手してください。

于 2009-12-24T19:11:45.187 に答える