@作者: ay @文章出處: cnss-ay.com @Notice: 轉載請注明出處
之前寫了一篇文章: VIM–指定自己的VIM工作目錄
今天準備把windows下的vim配置弄到虛擬機中的ubuntu來,于是就有了這篇文章,僅記錄下期間遇到的問題
1. 把windows文件夾映射到ubuntu下
我這里是用了vmware tools來搞定的,先安裝vmware tools,然后在edit virtual mechine setting中的options里面有個shared floders,把它設為always enable然后在下面添加自己要共享的目錄就是了,我在這里面把我之前的$MY_VIM_DIR這個環境變量的目錄添加進去了,我的floder name為vim.然后在虛擬機的UBUNTU下面,到/mnt/hgfs/vim目錄下就可以訪問我的vim配置文件了,第一步搞定,沒什么大問題.
2.然后在環境變量中添加$MY_VIM_DIR(/mnt/hgfs/vim)和$VIMINIT(source $MY_VIM_DIR/_vimrc)環境變量,我這里查了下資料,在~/.bashrc這個文件中加上這兩句話:
export MY_VIM_DIR=/mnt/hgfs/vim
export VIMINIT="source $MY_VIM_DIR/_vimrc"
在每次啟動bash的時候會執行~/.bashrc這個文件,我們的環境變量就自動設進去了,但是這個設置只對當前用戶有效,換個用戶我們設置的環境變量就不起作用了. 如果你希望對全局用戶都有效,那么可以去修改/etc/profile文件,在文件末尾加上這兩句話.
3.好了,一切就緒,在控制臺啟動VIM, 失敗! 提示說檢測到有^M, 無法解析.暈 windows格式編碼問題....
解決方法很簡單 先跑去裝個tofrodos,命令: sudo apt-get install tofrodos
然后執行sudo fromdos -p $MY_VIM_DIR/*/*.vim
把配置文件目錄下的所以.vim文件的換行都轉成unix格式的
然后在我們的_vimrc中加入一句話: set fileformat=unix
告訴vim我們換行符用unix格式的
在windows下, gvim可以識別這種帶有unix換行符的vimrc文件
OK,問題解決
4.執行sudo vim, 暈.... 竟然沒有加載我的_vimrc文件,而是轉而加載了默認的.vimrc文件,也就是說2中設置的環境變量不起作用
然后想可能是sudo用的是root,不會繼承我這個用戶的環境變量,OK 我在/etc/profile中設置環境變量總可以了吧
登出后登入,看效果
暈... 還是不行
然后百度了一些,原來在sudo命令出于安全性考慮,執行期間會把環境變量reset,然后保留可信的環境變量,比如$PATH這種變量
那么問題找到就好辦了,有幾種方法
a. 使用sudo -s命令,指出sudo繼承shell環境變量
b. 執行visudo命令, 把Defaults env_reset改成Defaults !env_reset。 禁止sudo對環境變量重置,因為我是在虛擬機上個人用ubuntu做開發,所以用的這種方法.若在多人共享使用的操作系統上,還是推薦使用a方法安全些