2013-07-01 1 views
2

Я знаю, что это уже обсуждалось, но proposed solution не работает для меня.Перезагрузка .vimrc в разрывы autocmd Powerline

У меня есть это в моем .vimrc:

autocmd! BufWritePost .vimrc nested source $MYVIMRC 

Поскольку я прочитал, что правильный путь к источнику .vimrc внутри autocmd использует autocmd-nested. Тем не менее, каждый раз, когда я сохранить его я теряю цвета в электропроводке

Edit:

вот мой .vimrc

filetype off 

set rtp+=~/.vim/vundle.git/ 
call vundle#rc() 

set rtp+=~/.vim/bundle/powerline/powerline/bindings/vim 

"set statusline+=%#warningmsg# 
"set statusline+=%{SyntasticStatuslineFlag()} 
"set statusline+=%* 
let g:syntastic_enable_signs=1 
let g:syntastic_auto_loc_list=1 

let g:ctrlp_working_path_mode = 'ra' 
" Bundles 
" 
" original repos on github 

"Bundle 'vim-scripts/taglist.vim' 
Bundle 'majutsushi/tagbar' 

"Bundle 'joonty/vim-phpqa.git' 
"Bundle 'joonty/vim-phpunitqf' 
Bundle 'joonty/vdebug' 
" Php 
Bundle 'sumpygump/php-documentor-vim' 
Bundle 'sophacles/vim-processing' 
Bundle 'nelstrom/vim-visual-star-search' 
Bundle 'Lokaltog/powerline' 
Bundle 'spolu/dwm.vim' 
Bundle 'tpope/vim-unimpaired' 
Bundle 'airblade/vim-gitgutter' 
Bundle 'kien/ctrlp.vim' 
Bundle 'wikitopian/hardmode' 
Bundle 'tpope/vim-fugitive' 
Bundle 'sbl/scvim' 
Bundle 'vim-scripts/bufexplorer' 
Bundle 'aaronbieber/quicktask' 
Bundle 'vim-scripts/The-NERD-Commenter' 
Bundle 'tpope/vim-fugitive' 
Bundle 'tpope/vim-surround' 
Bundle 'vim-scripts/HTML-AutoCloseTag' 
Bundle 'scrooloose/nerdtree' 
"Bundle 'scrooloose/syntastic' 
Bundle 'vim-scripts/css_color.vim' 
" Color schemes 
Bundle 'tomasr/molokai' 
Bundle 'altercation/vim-colors-solarized' 
Bundle 'vim-scripts/OOP-javascript-indentation' 


let g:gitgutter_enabled = 0 
set nocompatible "Don't be compatible with vi 

" Enable filetype plugin 
filetype indent on 
filetype plugin on 


" Set to auto read when a file is changed from the outside 
set autoread 

set t_Co=16 
set background=dark            
set number "Show line numbering 
set numberwidth=1 "Use 1 col + 1 space for numbers 

" With a map leader it's possible to do extra key combinations 
let mapleader = "," 
let g:mapleader = "," 

" Toggle NERDTree 
map <leader>n :NERDTreeToggle<CR> 

set backupdir=~/.vim/backup " where to put backup files 
set directory=~/.vim/temp " where to put swap files 

" Fast saving 
nmap <leader>w :w!<cr> 

" Fast editing of the .vimrc 
map <leader>e :e $MYVIMRC<cr> 

" When .vimrc is edited, reload it 
augroup MyAutoCmd 
    autocmd! 
augroup END 

autocmd MyAutoCmd BufWritePost $MYVIMRC nested source $MYVIMRC 
"au! BufWritePost .vimrc nested source % 
set title 

" Remap esc key 
inoremap jk <esc> 

" work more logically with wrapped lines 
noremap j gj 
noremap k gk 

set smartcase " search case sensitive if caps on 
set showcmd  " Display what command is waiting for an operator 

autocmd BufNewFile,BufRead /*apache* setfiletype apache 
autocmd BufNewFile,BufRead /*lighttpd*.conf setfiletype lighty 
autocmd BufNewFile,BufRead {.,_}vimrc set foldmethod=marker 

" PhpDocumentor 
au BufRead,BufNewFile *.php inoremap <buffer> <leader>p :call PhpDoc()<CR> 
au BufRead,BufNewFile *.php nnoremap <buffer> <leader>p :call PhpDoc()<CR> 
au BufRead,BufNewFile *.php vnoremap <buffer> <leader>p :call PhpDocRange()<CR> 


" Nicer highlighting of completion popup 
highlight Pmenu guibg=brown gui=bold 


set scrolloff=7 "Set 7 lines to the cursors when moving vertical 
set wildmenu "Autocomplete features in the status bar 
set ruler "Always show current position 
set cmdheight=2 "The commandbar height 
set hidden "Change buffer without saving 

" Backspae config 
set backspace=eol,start,indent 
set whichwrap+=<,>,h,l 

set ignorecase "Search is case insensitive 
set hlsearch "Highlight matches to the search 
set incsearch "Show best match so far 
set magic "Set magic on for regular expressions 
set showmatch "Show matching bracets when text indicator is over them 
set mat=2 "How many tenths of a second to blink 

" No sound on errors 
set noerrorbells 
set novisualbell 
set t_vb= 

" Colors and fonts {{{1 
set term=screen-256color 
syntax enable "Enable syntax hl 
syntax on "Enable syntax hl 
"colorscheme molokai 
"let g:solarized_termcolors=256 
colorscheme solarized 
set guifont=Envy\ Code\ R\ for\ Powerline 
set encoding=utf-8 
filetype plugin on 
"set guifont=Inconsolata\ for\ Powerline\ 
let g:Powerline_symbols="fancy" 


" Text, tab and indent related {{{1 

set expandtab "Transform tabs into spaces 
set shiftwidth=4 "sw 4 spaces (used on auto indent) 
set shiftwidth=4 "sw 4 spaces (used on auto indent) 
set tabstop=4 "4 spaces as a tab for bs/del 
set smarttab 

set wrap linebreak tw=80 wm=0 "Wrap lines 
set ai "Auto indent 
set si "Smart indent 
" }}}1 
" Moving around, tabs and buffers {{{1 

" Move to previous and next buffer 
:nmap <C-n> :bnext<CR> 
:nmap <C-p> :bprev<CR> 

" Map space to/(search) and c-space to ? (backwards search) 
map <space>/
map <c-space> ? 
map <silent> <leader><cr> :noh<cr> 

" Smart way to move between windows 
map <C-j> <C-W>j 
map <C-k> <C-W>k 
map <C-h> <C-W>h 
map <C-l> <C-W>l 

" Mappings to access buffers (don't use "\p" because a 
" delay before pressing "p" would accidentally paste). 
" ,l  : list buffers 
" ,b ,f ,g : go back/forward/last-used 
" ,1 ,2 ,3 : go to buffer 1/2/3 etc 
nnoremap <Leader>l :ls<CR> 
nnoremap <Leader>b :bp<CR> 
nnoremap <Leader>f :bn<CR> 
nnoremap <Leader>g :e#<CR> 
nnoremap <Leader>1 :1b<CR> 
nnoremap <Leader>2 :2b<CR> 
nnoremap <Leader>3 :3b<CR> 
nnoremap <Leader>4 :4b<CR> 
nnoremap <Leader>5 :5b<CR> 
nnoremap <Leader>6 :6b<CR> 
nnoremap <Leader>7 :7b<CR> 
nnoremap <Leader>8 :8b<CR> 
nnoremap <Leader>9 :9b<CR> 
nnoremap <Leader>0 :10b<CR> 

" Close the current buffer. Bclose defined below. 
" dovrebbe già esistere in bufkill.vim 
" map <leader>bd :Bclose<cr> 

" Use the arrows to do something useful 
map <right> :bn<cr> 
map <left> :bp<cr> 

" MiniBufExplorer settings 
let g:miniBufExplModSelTarget = 1 
let g:miniBufExplorerMoreThanOne = 2 
let g:miniBufExplModSelTarget = 0 
let g:miniBufExplUseSingleClick = 1 
let g:miniBufExplMapWindowNavVim = 1 

" Change directory to the file I'm editing 
"autocmd BufEnter * lcd %:p:h 
" When pressing <leader>cd switch to the directory of the open buffer 
map <leader>cd :cd %:p:h<cr> 

" Function to close buffer? 
command! Bclose call <SID>BufcloseCloseIt() 
function! <SID>BufcloseCloseIt() 
    let l:currentBufNum = bufnr("%") 
    let l:alternateBufNum = bufnr("#") 

    if buflisted(l:alternateBufNum) 
    buffer # 
    else 
    bnext 
    endif 

    if bufnr("%") == l:currentBufNum 
    new 
    endif 

    if buflisted(l:currentBufNum) 
    execute("bdelete! ".l:currentBufNum) 
    endif 
endfunction 

" Specify the behavior when switching between buffers 
try 
    set switchbuf=usetab 
    set stal=2 
catch 
endtry 

nnoremap <C-e> 3<C-e> 
nnoremap <C-y> 3<C-y> 


" Always hide the statusline 
set laststatus=2 

" Format the statusline 
set statusline=\ %F%m%r%h\ %w\ \ [%Y]\ \ CWD:\ %r%{CurDir()}%h\ \ \ Line:\ %l/%L:%c 
"set statusline=%F%m%w\ Line:\ %l\/%L[%p%%]\ Col:\ %c\ Buf:\ #%n\ [%Y]\ [\%03.3b]\[\%02.2B] 

function! CurDir() 
    let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g") 
    return curdir 
endfunction 

" tab labels show the filename without path(tail) 
set guitablabel=%N/\ %t\ %M 

""" Windows 
if exists(":tab")            " Try to move to other windows if changing buf 
    set switchbuf=useopen,usetab 
else                 " Try other windows & tabs if available 
    set switchbuf=useopen 
endif 

"""" Messages, Info, Status 
set shortmess+=a            " Use [+] [RO] [w] for modified, read-only, modified 
set report=0             " Notify me whenever any lines have changed 
set confirm                " Y-N-C prompt if closing with unsaved changes 

" we don't want to edit these type of files 
set wildignore=*.o,*.obj,*.bak,*.exe,*.pyc,*.swp 

"""" Coding 
set history=1000              " 1000 Lines of history 
set showfulltag             " Show more information while completing tags 


" taglist plugin settings 
"nnoremap <silent> <F8> :TlistToggle<CR> 
let Tlist_Exit_OnlyWindow = 1 "exit if taglist is last window open 
let Tlist_Show_One_File = 1 "only show tags for current buffer 
let Tlist_Enable_Fold_Column = 0 "no fold column (only showing one file) 

" OmniCppComplete 
let OmniCpp_NamespaceSearch = 1 
let OmniCpp_GlobalScopeSearch = 1 
let OmniCpp_ShowAccess = 1 
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters 
let OmniCpp_MayCompleteDot = 1 " autocomplete after . 
let OmniCpp_MayCompleteArrow = 1 " autocomplete after -> 
let OmniCpp_MayCompleteScope = 1 " autocomplete after :: 
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] 
" automatically open and close the popup menu/preview window 
au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif 
set completeopt=menuone,menu,longest,preview 

let g:sparkupNextMapping = '<c-x>' 

" SuperTab settings 
let g:SuperTabDefaultCompletionType = '<c-x><c-o>' 

""""" Folding 
set foldmethod=syntax         " By default, use syntax to determine folds 
set foldlevelstart=99         " All folds open by default 



" Function to highlight character beyond column 79 
" activate it with ,h 
nnoremap <leader>h :call ToggleOverLengthHighlight()<CR> 
let g:overlength_enabled = 0 
" set the highlight color 
highlight OverLength ctermbg=red guibg=red 

function! ToggleOverLengthHighlight() 
    if g:overlength_enabled == 0 
     match OverLength /\%79v.*/ 
     let g:overlength_enabled = 1 
     echo 'OverLength highlighting turned on' 
    else 
     match 
     let g:overlength_enabled = 0 
     echo 'OverLength highlighting turned off' 
    endif 
endfunction 


" in visual mode press Ctrl r to start substituting text 
vnoremap <C-r> "hy:%s/<C-r>h//gc<left><left><left> 

" PHP Code Sniffer binary (default = "phpcs") 
let g:phpqa_codesniffer_cmd='vendor/bin/phpcs' 

" PHP Mess Detector binary (default = "phpmd") 
let g:phpqa_messdetector_cmd='vendor/bin/phpmd' 


set relativenumber 

" important 
" moving around, searching and patterns 
" tags 
" displaying text 
" syntax, highlighting and spelling 
" multiple windows 
" multiple tab pages 
" terminal 
" using the mouse 
" printing 
" messages and info 
" selecting text 
" editing text 
" tabs and indenting 
" folding 
" diff mode 
" mapping 

" toggle the tag list 
nmap <Leader>tl :TlistToggle<CR> 

" reading and writing files 
" the swap file 
" command line editing 
" executing external commands 
" running make and jumping to errors 
" language specific 
" multi-byte characters 
" various 



" TagList options 

" set the names of flags 
let tlist_php_settings = 'php;c:class;f:function;d:constant;p:property' 
" close all folds except for current file 
let Tlist_File_Fold_Auto_Close = 1 
" make tlist pane active when opened 
let Tlist_GainFocus_On_ToggleOpen = 1 
" width of window 
let Tlist_WinWidth = 60 
" close tlist when a selection is made 
let Tlist_Close_On_Select = 1 
" show the prototype 
let Tlist_Display_Prototype = 1 
" show tags only for current buffer 
let Tlist_Show_One_File = 1 

" Taglist variables 
" Display function name in status bar: 
let g:ctags_statusline=1 
" Automatically start script 
let generate_tags=1 
" Displays taglist results in a vertical windows: 
let Tlist_Use_Horiz_Window=0 
" Shorter commands to toggle Taglist display 
nnoremap TT :TlistToggle<CR> 
map <F4> :TlistToggle<CR> 
" Various Taglist display config: 
let Tlist_Use_Right_Windows = 1 
let Tlist_Compact_Format = 1 
let Tlist_Exit_OnlyWindow = 1 
let Tlist_GainFocus_On_ToggleOpen = 1 
let Tlist_File_Fold_Auto_Close = 1 

" Ctags options 
nmap <Leader>tf :call CtagsFind(expand('<cword>'))<CR> 
com! -nargs=+ Tf :call CtagsFind("<args>") 
" split window and search for tag 
nmap <Leader>ts :exe('stj '.expand('<cword>'))<CR> 
set tags=tags;/ 

" open new tab and search for tag 
" 
fun! CtagsFind(keyword) 
    tabe 
    exe "tj ".a:keyword 
endfunction 

" TagBar 
nmap <F8> :TagbarToggle<CR> 

" CtrlP 
let g:ctrlp_map = ',t' 
nnoremap <silent> ,t :CtrlP<CR> 
+0

Я думаю, вам нужно будет показать нам ваш полный '.vimrc'. – innaM

+0

Я редактировал вопрос со ссылкой на pastebin с моим .vimrc – Carlo

+0

Я рекомендую скопировать содержимое вашего '.vimrc' в кодовый блок непосредственно внутри вопроса вместо того, чтобы предоставить нам ссылку pastebin, для обеспечения более долговечности , – sevko

ответ

1

Ваш autocmd будет добавлен к вашим ВИМ событий. Вам нужно перезагрузить ручку с помощью augroup.

augroup MyAutoCmd 
    autocmd! 
    autocmd MyAutoCmd BufWritePost $MYVIMRC nested source $MYVIMRC 
augroup END 
+0

спасибо, но у меня такая же проблема, даже с augroup – Carlo

+0

У вас есть еще один MyAutoCmd? – mattn

+0

Нет, и это единственная группа, которую я использую – Carlo