2016-06-23 36 views
5

Tôi đang sử dụng chức năng sau đây từ go away and come back script để lưu và tải phiên khi tôi thoát và bắt đầu vim. Nó về cơ bản tiết kiệm tất cả các thiết lập của tôi, tập tin trong bộ đệm vv trong session.vim tập tin trong thư mục mà tôi mở vim.làm cho cài đặt phiên lưu chức năng phát đẹp với ultisnips

function! MakeSession() 
    let b:sessiondir = $HOME . "/.vim/sessions" . getcwd() 
    if (filewritable(b:sessiondir) != 2) 
    exe 'silent !mkdir -p ' b:sessiondir 
    redraw! 
    endif 
    let b:filename = b:sessiondir . '/session.vim' 
    exe "mksession! " . b:filename 
endfunction 

function! LoadSession() 
    let b:sessiondir = $HOME . "/.vim/sessions" . getcwd() 
    let b:sessionfile = b:sessiondir . "/session.vim" 
    if (filereadable(b:sessionfile)) 
    exe 'source ' b:sessionfile 
    else 
    echo "No session loaded." 
    endif 
endfunction 
au VimEnter * nested :call LoadSession() 
au VimLeave * :call MakeSession() 

Gần đây tôi đã thêm ultisnips plugin.

"Snippet engine 
Plugin 'SirVer/ultisnips' 
"Snippets are separated from the engine. Add this if you want them: 
Plugin 'honza/vim-snippets' 

Bây giờ khi session.vim được tạo và tôi mở vim sau đó, tôi nhận được lỗi theo dõi này. Điều này xảy ra ở chế độ insert khi tôi cũng cố chỉnh sửa.

".vim/vimrc" 287L, 9566C Error detected while processing /Users/sudobangbang/.vim/bundle/ultisnips/autoload/UltiSnips.vim: line 15: Traceback (most recent call last):

Error detected while processing /Users/sudobangbang/.vim/bundle/ultisnips/autoload/UltiSnips.vim: line 15: File "", line 1, in Press ENTER or type command to continue Error detected while processing /Users/sudobangbang/.vim/bundle/ultisnips/autoload/UltiSnips.vim: line 15: ImportError: No module named UltiSnips

Error detected while processing function UltiSnips#FileTypeChanged: line 1: Traceback (most recent call last): Error detected while processing function UltiSnips#FileTypeChanged: line 1: NameError: name 'UltiSnips_Manager' is not defined

Error detected while processing function UltiSnips#TrackChange: line 1: Traceback (most recent call last):

Nếu tôi xóa chức năng cho các phiên tải, Nó hoạt động tốt. Ngoài ra ở đây là tất cả các dòng trong session.vim trong đó có ultisnips trong đó.

inoremap <silent> <C-Tab> ^V^R=UltiSnips#ListSnippets()^V^M 
xnoremap <silent> ^V :call UltiSnips#SaveLastVisualSelection()^V^Mgvs 
snoremap <silent> ^V ^V^[:call UltiSnips#ExpandSnippet()^V^M 
snoremap <silent> <C-Tab> ^V^[:call UltiSnips#ListSnippets()^V^M 


set runtimepath=~/.vim,~/.vim/bundle/Vundle.vim,~/.vim/bundle/syntastic,~/.vim/bundle/nerdtree,~/.vim/bundle/vim-colorschemes,~/.vim/bundle/YouCompleteMe,~/.vim/bundle/supertab,~/.vim/bundle/ultisnips ,~/.vim/bundle/vim-snippets,~/.vim/bundle/ctrlp.vim,~/.vim/bundle/vim-go,~/.vim/bundle/vim-commentary,~/.vim/bundle/vim-surround,~/.vim/bundle/vim-fugitive,~/.vim/bundle/vim-unimpaired,~/.vim/bundle/v im-repeat,~/.vim/bundle/vim-airline,~/.vim/bundle/vim-airline-themes,~/.vim/bundle/gundo.vim,~/.vim/bundle/emmet-vim,~/.vim/bundle/html5.vim,~/.vim/bundle/vim-css-color,~/.vim/bundle/python-mode,~/.vi m/bundle/vim-flake8,~/.vim/bundle/vim-ruby,~/.vim/bundle/vim-endwise,~/.vim/bundle/vim-rails,~/.vim/bundle/vim-bundler,~/.vim/bundle/vim-rake,~/.vim/bundle/vim-ruby-refactoring,~/.vim/bundle/apidock.v im,~/.vim/bundle/blockle.vim,~/.vim/bundle/vim-rspec,~/.vim/bundle/javascript-libraries-syntax.vim,~/.vim/bundle/tern_for_vim,~/.vim/bundle/vim-javascript,/usr/local/share/vim/vimfiles,/usr/local/shar e/vim/vim74,/usr/local/share/vim/vimfil 

Làm cách nào để thay đổi chức năng phiên để tải vim ultisnips chính xác?

vim --version 

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 4 2016 11:48:12)
MacOS X (unix) version
Included patches: 1-1864
Compiled by Homebrew

+1

Không chắc điều này sẽ là đủ, nhưng cố gắng tải các phiên sau khi các plugin của bạn đã được khởi tạo. Tùy thuộc vào trình quản lý plugin của bạn, việc thực hiện điều này có thể dễ dàng (như trong, chỉ cần gọi đến 'LoadSession()' đến cuối vimrc của bạn), khó, hoặc không thể. :) –

+0

Suy nghĩ tốt tôi sẽ thử nó –

+0

Tôi gặp lỗi tương tự trong Windows GVim khi chỉ tải phiên thông qua dòng lệnh với 'gvim -S ' – icc97

Trả lời

3

tôi đã thực hiện một sửa chữa nhưng trong khi phải hy sinh một số chức năng.

Tôi đã gỡ bỏ dòng này từ phiên bốc

au VimEnter * nested :call LoadSession() 

và tạo ra một bản đồ chìa khóa để tự tải phiên

map <leader>l :call LoadSession()<CR> 

Giả thuyết trong bình luận @Sato Katsura của dường như là hợp lệ.
Bây giờ tôi đang nghiên cứu nếu tôi có thể đi đến phần tự động với điều này nhận được chức năng này được gọi là khi tất cả các plugin được nạp.

0

Không biết câu trả lời là bao nhiêu, nhưng có thể là một lời giải thích.

Từ vim-session plugin README

Vim's :mksession command isn't really compatible with plug-ins that create buffers with generated content and because of this the vim-session plug-in includes specific workarounds for a couple of popular plug-ins:

tôi đã chỉ vào các plugin vim-session bằng cách tổng quát hơn SO question on plugin issues with sessions này.

Tôi bây giờ thực sự khá chắc chắn rằng tôi có một sửa chữa, nếu bạn sử dụng obsession.vim Plugin Tim Đức Giáo Hoàng, sau đó các Session.vim tập tin đó được tạo ra có thể được nạp theo cách thông thường hoặc thông qua -S Session.vim hoặc source Session.vim và UltiSnips làm việc một lần nữa.

Trong readme có một dòng này, mà có thể giải thích sự khác biệt (tôi đã thêm các bit trong dấu ngoặc vuông như đó là một chút ra khỏi bối cảnh ở đây):

  • [When saving the session] Don't capture options and maps. Options are sometimes mutilated and maps just interfere with updating plugins.
Các vấn đề liên quan