- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想在我的 Mac 和远程 Linux Ubuntu 服务器之间同步 vim 设置。我正在使用 NeoBundle
进行包管理。我做了以下事情:
~/.vim/
中创建了一个 vimrc 文件。请参阅下面的 .vimrc 文件。ln -s ~/.vim/vimrc ~/.vimrc
ln -s ~/.vim/vimrc ~/.vimrc
。所有的包都在 .vim/bundles
中。所以他们是可用的。
Vim 版本不同。那是问题所在吗?
在 Mac 上它说:
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Dec 19 2013 15:19:49)
而在服务器上它说:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:32)
问题:Vim 在 Mac 上运行良好。但是在服务器上运行 vim 时出现以下错误:
Error detected while processing /home/admin/.vimrc:
line 16:
E117: Unknown function: neobundle#begin
line 20:
E492: Not an editor command: NeoBundleFetch 'Shougo/neobundle.vim'
line 26:
E117: Unknown function: neobundle#end
line 33:
E492: Not an editor command: NeoBundleCheck
line 38:
E492: Not an editor command: NeoBundle 'scrooloose/nerdtree'
line 39:
E492: Not an editor command: NeoBundle 'terryma/vim-multiple-cursors'
line 40:
E492: Not an editor command: NeoBundle 'tomasr/molokai'
line 41:
E492: Not an editor command: NeoBundle '29decibel/codeschool-vim-theme'
line 42:
E492: Not an editor command: NeoBundle 'Lokaltog/vim-easymotion'
line 43:
E492: Not an editor command: NeoBundle 'jnurmine/Zenburn'
line 64:
E185: Cannot find color scheme 'zenburn'
.vimrc 包含:
"================================================================================
" NeoBundle settings (copied from NeoBundle github page)
"================================================================================
" Note: Skip initialization for vim-tiny or vim-small.
if !1 | finish | endif
if has('vim_starting')
set nocompatible " Be iMproved
" Required:
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
" Required:
call neobundle#begin(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'
" My Bundles here:
" Refer to |:NeoBundle-examples|.
" Note: You don't set neobundle setting in .gvimrc!
call neobundle#end()
" Required:
filetype plugin indent on
" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
"================================================================================
" Install these packages
NeoBundle 'scrooloose/nerdtree'
NeoBundle 'terryma/vim-multiple-cursors'
NeoBundle 'tomasr/molokai'
NeoBundle '29decibel/codeschool-vim-theme'
NeoBundle 'Lokaltog/vim-easymotion'
NeoBundle 'jnurmine/Zenburn'
"================================================================================
" Editor view settings
"================================================================================
syntax on
set number
" size of a hard tabstop
set tabstop=4
" size of an indent
set shiftwidth=4
" always use spaces instead of tab characters
set expandtab
set guifont=Monaco:h16
if has("gui_running")
colorscheme codeschool
else
colorscheme zenburn
endif
"=================================================================================
" Other settings
"=================================================================================
" Use Ctrl-s to save a file in insert mode.
inoremap <C-s> <C-c>:w<ENTER>
" make working directory same as the file being edited
" may interfere with some plugins (see here: http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file)
set autochdir
最佳答案
尽管这篇文章已经过时,但由于仍然没有答案,我想我可以就这个问题发表看法。当我在混合 OSX 和 Linux 的计算机之间同步我的配置目录时,我想我会分享我完成它的方式,以供将来引用,如果你确实解决了你的问题。
首先,我将我的 vim 配置分成两个目录:
~/.vim/
包含 vimrc
配置文件和 neobundle,意味着在所有计算机之间共享~/.local/vim
包含包、交换文件和撤消文件。这是第一个~/.vim/
的树:
$HOME/.vim
├── README.md
├── neobundle.vim
│ ├── LICENSE-MIT.txt
│ ├── Makefile
│ └── […] (all neobundle contents)
└── vimrc
首先让我们在 ~/.vim/vimrc
中设置撤销文件文件:
" undo file
set undofile
set undodir=~/.local/vim/undofiles
set undolevels=2000
set history=200
和交换文件:
" swap files
set directory=~/.local/vim/swapfiles
这样它们就不会在计算机之间同步并相互混淆。不,您不希望在计算机 B 上撤消计算机 A,更糟糕的是,您不希望所有标准 unix /home/foo/*
与非标准 混合>/用户/foo/*
…
然后,在我的~/.vim/vimrc
,我通过以下方式设置 neobundle:
" NeoBundle setup {{{
filetype off
set runtimepath+=~/.vim/neobundle.vim/
call neobundle#begin(expand('~/.local/vim/bundle'))
NeoBundleFetch 'Shougo/neobundle.vim'
" }}}
这就是诀窍所在:您设置运行时路径以将 neobundle.vim
插件包“手动”添加到 ~/.vim
中的 vim 运行时路径,然后你通过告诉他在哪里找到/安装包来启动 neobundle。接下来在 vimrc
文件中,您设置所有您喜欢的包,最后以:
" NeoBundle Prologue {{{
call neobundle#end()
filetype plugin indent on " required!
NeoBundleCheck
" }}}
所以,现在,当我在一台新计算机上部署 vim 时,我所要做的就是:
git clone https://github.com/guyzmo/vimrc ~/.vimrc
mkdir -p ~/.local/vim/bundle
mkdir ~/.local/vim/undofiles
mkdir ~/.local/vim/swapfiles
vim +NeoBundleInstall +qall
最后,如果该解决方案回答了您的问题,那就是您仅必要的静态内容(什么插件和什么配置)保持同步,并在每台计算机本地生成所有动态内容。所以,你让 Neobundle 完成它的工作,克隆 git 存储库,编译和安装文件。例如,查看 youcompleteme setup,其中定义了如何根据运行 vim 的主机进行安装。而且,您再也不会遇到任何 git 问题。
HTH
关于linux - 使用 NeoBundle 时跨 mac 和 Ubuntu 服务器同步 vim 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26747711/
我想要一种简单易用的方式来管理 vim 插件。我发现NeoBundle和 Vundle 。它们之间的主要区别是什么?我知道 NeoBundle 是 Vundle 的一个分支,但是它有什么不同呢? 你用
我想在我的 Mac 和远程 Linux Ubuntu 服务器之间同步 vim 设置。我正在使用 NeoBundle 进行包管理。我做了以下事情: 在 Mac 上,我安装了 NeoBundle 并在 ~
我是一名优秀的程序员,十分优秀!