将.vimrc移到新目录中,尝试让它工作

时间:2015-06-10 01:09:57

标签: vim macvim vim-plugin

免责声明:我是vim / tmux的新手。我在使用MacVim的Mac上 有人告诉我在我的dotfiles上使用版本控制。

在我的点文件全部放入我的根之前〜就像这样:

~/
  .vimrc
  .tmux.conf
  .vim
    /bundle
    /autoload 
  .viminfo
    etc

但后来我觉得制作一个名为“dotfiles”的文件夹是个好主意,然后将它们全部放在那里,然后将它上传到github,这样我就可以将它们放在任何地方。

像这样:

~/
   /dotfiles
      .vimrc
      .tmux.conf
      .vim
        /bundle
        /autoload 
      .viminfo
        etc

起初我觉得一切都还好,因为我从未关闭过Vim,但是当我稍后重新加载它时,我意识到我的命令都没有了。所以我在我的.vimrc和我的.tmux.conf中改变了一些路径,希望它再次起作用,但没有运气。

这是我的完整.vimrc:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/dotfiles/.vim/bundle/Vundle.vim
call vundle#begin()
" " alternatively, pass a path where Vundle should install plugins
" "call vundle#begin('~/some/path/here')
"
" " let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'christoomey/vim-tmux-navigator'
" " All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" " To ignore plugin indent changes, instead use:
" "filetype plugin on
" "
" " Brief help
" " :PluginList       - lists configured plugins
" " :PluginInstall    - installs plugins; append `!` to update or just
" :PluginUpdate
" " :PluginSearch foo - searches for foo; append `!` to refresh local cache
" " :PluginClean      - confirms removal of unused plugins; append `!` to
" auto-approve removal
" "
" " see :h vundle for more details or wiki for FAQ
" " Put your non-Plugin stuff after this line


execute pathogen#infect()
syntax on
filetype plugin indent on
set mouse=a

let g:tmux_navigator_no_mappings = 1

nnoremap <silent> <c-h> :TmuxNavigateLeft<cr>
nnoremap <silent> <c-j> :TmuxNavigateDown<cr>
nnoremap <silent> <c-k> :TmuxNavigateUp<cr>
nnoremap <silent> <c-l> :TmuxNavigateRight<cr>
nnoremap <silent> <c-/> :TmuxNavigatePrevious<cr>

let g:tmux_navigator_save_on_switch = 1

vnoremap <C-c> "*y

set runtimepath^=~/dotfiles/.vim/bundle/ctrlp.vim

正如您所看到的,路径已经更正以合并/dotfiles/目录,但是当我尝试在.vimrc中运行插件或其他内容时,我会收到通用的'Not an editor command'错误。

顺便提一下,tmux及其所有配置在移动后似乎都能正常工作。

任何想法?

2 个答案:

答案 0 :(得分:1)

  

我被告知要在我的dotfiles上使用版本控制。

也许你应该转向那些告诉你这样做以获得支持的人,你不觉得吗?

  1. 将所有的dotfiles放在一个repo中是必需的,甚至是客观的好主意。如果你设法将你的程序指向那个集中的地方(很棒),或者你把这些文件符号链接到他们的常规位置(哪种类型的可以为某些人工作,但只有 击败点)。告诉你在你的dotfiles上使用版本控制的人应该从头到尾告诉你如何做到这一点。

  2. Vim希望您的vim目录和vimrc位于默认位置:

    ~/.vim
    ~/.vimrc or ~/.vim/vimrc
    

    它不会在别处寻找,所以你必须将它们从你的回购符号链接到它们的预期位置:

    $ ln -s /Users/username/dotfiles/.vim /Users/username/.vim
    $ ln -s /Users/username/dotfiles/.vimrc /Users/username/.vimrc
    

答案 1 :(得分:0)

将所有dotfiles放在同一个目录中的想法并不坏,因为@romainl在他的回答中说你必须将它们符号链接到原来的位置。

这就是我所做的,所以你可能对我创建的script感兴趣,以自动将当前的dotfiles保存在我的主目录中,并用我的仓库中的dotfiles的simlink替换它们。 (您也可以克隆我的repo,替换你的dotfiles并执行脚本。我尽量让自述文件尽可能清晰,但如果你对使用我的解决方案感兴趣,请不要犹豫给我发消息支持)