如何获得不同版本的vim,以忽略〜/ vimrc中不是插件的部分?

时间:2018-06-20 16:35:04

标签: vim vi

我的centos 7有两个vim二进制文件:
/ usr / bin / vi
/ usr / bin / vim

启动它们中的任何一个时,它们都会弹出:

  

VIM-Vi IMproved
  版本7.4.1099

通过在线搜索,我相信这两个版本是vim和vim-minimal。问题在于vi和vim-mininter分别〜/ .vimrc。打开vim的时候很棒。当打开vim-minimal时,我得到很多错误。以下是我的〜/ .vimrc文件的表示形式:

set number
set nowrap
set modeline
set clipboard=unnamedplus  "Enables mouse center clip pasting, while holding shift, in insert mode.

"Below sets up the mouse in such a way that allows vi split screen resizing while in tmux and screen.
set mouse+=a
if &term =~ '^screen'
    " tmux knows the extended mouse mode
    set ttymouse=xterm2
endif

""""""""""""""""""""""""""""""""""""""""""""""""
""" User Defined Functions
""""""""""""""""""""""""""""""""""""""""""""""""
"Opens up sage specific work in new tabs
fu! Setup1()
  :bd!|e /home/me/example1.h | vsplit /home/me/example1.cc
  :tabnew /home/me/example2.h | vsplit /home/me/example2.cc
  :tabnew /home/me/example3.h | vsplit /home/me/example3.cc
  :tabnew /home/me/example4.h | vsplit /home/me/example4.cc
  :tabnew /home/me/example5.h | vsplit /home/me/example5.cc
  :tabnew /home/me/example6.h | vsplit /home/me/example6.cc
endfunction

"Opens up the most edited rc files in new tabs
fu! RCS()
  :bd!|e ~/.cshrc
  :tabnew ~/.vimrc
  :tabnew ~/.tmux.conf
endfunction

问题是我的用户定义函数。打开/ usr / bin / vi时,它将在新选项卡中打开我的两个函数中的所有文档。一个合理的解决方法是不使用/ usr / bin / vi,但这是git打开的。

理想情况下,我将能够拥有一个if语句来检查哪个rc文件正在运行。有可能吗?

2 个答案:

答案 0 :(得分:2)

您可以配置git以使用您选择的编辑器。您可以设置环境变量GIT_EDITOR,也可以使用git config --global core.editor /usr/bin/vim设置配置文件来设置core.editor变量。

如果这两个参数均未设置,则可能会退回到VISUAL环境变量。关于这一点,您可能需要在~/.bashrc中将其设置为系统范围内的解决方案,以便其他想要打开编辑器的实用程序默认将/usr/bin/vim设置为/usr/bin/vi

答案 1 :(得分:0)

以下博客文章讨论了如何针对可能具有不同软件包和不同功能(因此对vimrc做出不同反应)的不同版本的vim降级vimrc:

gracefully degrading .vimrc

(由max630在我的问题的评论中提供答案)