摘要:帶上你的,走下面講到的配置主要出自我自用的配置,感興趣的可以參考一鍵裝機之的幾乎所有配置都可以保存在一個文件中,因此把同步起來,直接拷貝到相應位置并指定,則可以恢復相應的配置。
首發自簡書
每個Vimer都有自己的一個配置,猶如每個劍客都有自己的一把劍(應該是吧)。(爭取)作為一個傳說中的全棧開發者,換機器就像換衣服一樣頻繁;在“異國他鄉”的機器上,是否懷念那一套屬于你的指法呢?下面會講一下我在 Windows 上打包Vim的一些經驗。帶上你的Vim,走!
下面講到的配置主要出自我自用的Vim配置VimConf,感興趣的可以參考!
一鍵裝機之VimrcVim的幾乎所有配置都可以保存在一個vimrc文件中,因此把vimrc同步起來,直接拷貝到相應位置并指定,則可以恢復相應的Vim配置。所以很多Vimer的做法是建立一個Github倉庫保存vimrc,在新的機器上只要Clone該倉庫就可以將配置同步到該機器上。
得到配置文件后,還需要將該文件拷貝到對應的位置并應用,且可能還需要其他一些輔助文件。因此,為了一勞永逸,一般都會添加一個初始化腳本進行“一鍵安裝”。而Linux和Windows上配置文件的位置還不太一樣,因此,往往就需要各自一個腳本了。
下面講講在Clone了配置文件后,Windows下的腳本文件應該干些啥。
首先你得有GVimwhere gvim > NUL 2> NUL if %ERRORLEVEL% NEQ 0 ( echo GVim is needed >&2 set /A ret=1 goto :end ) for /f "tokens=*" %%i in ("where gvim 2^> NUL") do set vim_folder=%%i if /I "%vim_folder:~-3%" EQU "bat" ( findstr /b /c:"set VIM_EXE_DIR=" "!vim_folder!" > tmpvim_folder.txt 2> NUL set /p vim_folder=通過where gvim獲得當前GVim可執行文件的路徑。有可能是一個啟動腳本GVim.bat,因此需要進一步分析該腳本,獲取GVim的真實路徑。
沒有GVim就沒有一切了,所以必須安裝好GVim。
其次你得有Gitwhere git > NUL 2> NUL同樣,沒有Git也就沒有一切了,所以必須安裝好Git。
更新子模塊我的vimrc中包含了一個配色子模塊 Detorte,因此這里需要初始化該模塊。
git submodule update --init > NUL 2> NUL執行后,配置根目錄下的detorte目錄會包含配色方案的相關文件,下面需要將這些文件拷貝到指定位置。
拷貝配色方案因為我使用的是自己的配色方案,所以這里需要將其拷貝到指定的位置,以便Vim能檢測到該方案。
set detorte_folder=%vimfiles_folder%colors xcopy /Y /i detortecolors %detorte_folder% /s /e > NUL 2> NUL安裝Vundle我使用的是Vundle進行Vim插件管理,所以為了之后能安裝Vim插件,這里需要把Vundle下載并安裝好。我們直接從Vundle的Github上Clone到指定目錄%vimfiles_folder%undleVundle.vim,這樣,后面可以直接在Vim中使用Vundle了。
set vundle_repo=https://github.com/VundleVim/Vundle.vim.git set vundle_folder=%vimfiles_folder%undleVundle.vim if not exist %vundle_folder% ( git clone %vundle_repo% %vundle_folder% > NUL 2> NUL if %ERRORLEVEL% NEQ 0 ( echo Failed to clone Vundle.vim >&2 set /A ret=1 goto :end ) )安裝小工具我們還需要一些小工具來輔助Vim這個大殺器。一個方便的做法是專門使用一個Github倉庫來保存這些小工具。
CurlVundle需要使用curl.exe來進行插件的搜索,所以我們需要下載curl.exe。我們會將這些需要的小工具提前下載并上傳到一個Github倉庫中,這里call :clone_win_utils會將該倉庫下載到一個臨時目錄中。另外,需要將可執行文件拷貝到Vim的安裝目錄中,Vim才能檢測得到。
if not exist "%vim_folder%curl.exe" ( call :clone_win_utils if !ERRORLEVEL! NEQ 0 ( set /A ret=1 goto :end ) copy /Y %win_utils_folder%curl.exe "%vim_folder%" > NUL 2> NUL if !ERRORLEVEL! NEQ 0 ( echo Failed to copy curl.exe, make sure you run this script as Administrator set /A ret=1 goto :end ) )Agag.exe是一個比grep更好用的文件查找工具,在Windows下開發更是讓人欲罷不能。另外,Vim的很多插件也會可以通過使用Ag來進行加速。和Curl類似,我們也是通過提前準備好的倉庫下載該工具,然后拷貝到Vim的目錄。
if not exist "%vim_folder%ag.exe" ( call :clone_win_utils if !ERRORLEVEL! NEQ 0 ( set /A ret=1 goto :end ) copy /Y %win_utils_folder%ag.exe "%vim_folder%" > NUL 2> NUL if !ERRORLEVEL! NEQ 0 ( echo Failed to copy ag.exe, make sure you run this script as Administrator set /A ret=1 goto :end ) )CtagsCtags就不用多說了,用Vim的都懂!類似的處理方法。
if not exist "%vim_folder%ctags.exe" ( call :clone_win_utils if !ERRORLEVEL! NEQ 0 ( set /A ret=1 goto :end ) copy /Y %win_utils_folder%ctags.exe "%vim_folder%" > NUL 2> NUL if !ERRORLEVEL! NEQ 0 ( echo Failed to copy ctags.exe, make sure you run this script as Administrator set /A ret=1 goto :end ) )GNU Global結合Ctags使用,能夠反向查詢引用。類似的處理方法。
if not exist "%vim_folder%gtags.exe" ( call :clone_win_utils if !ERRORLEVEL! NEQ 0 ( set /A ret=1 goto :end ) copy /Y %win_utils_folder%global "%vim_folder%" > NUL 2> NUL if !ERRORLEVEL! NEQ 0 ( echo Failed to copy GNU Global, make sure you run this script as Administrator set /A ret=1 goto :end ) )markdown2ctags.py這個Python腳本是為了使Tagbar插件支持Markdown語法,從而顯示大綱的,在vimrc中會使用到。
copy /Y markdown2ctags.py %vimfiles_folder% > NUL 2> NUL拷貝vimrc這個不用解釋了吧?
set vimrc_file=%USERPROFILE%\_vimrc copy /Y .vimrc %vimrc_file% > NUL 2> NUL至此,啟動GVim,:VundleInstall安裝配置好的插件,就可以好好享受那熟悉的手指健美操了。
一鍵部署對于遠程桌面的服務器或者不能聯網的機器,上面提到的一鍵安裝就顯得不是很適用了。其實,我們可以在已經安裝好的機器上,生成一個“綠色”的GVim,帶上所有的配置和Vim插件,然后拷貝到別的機器上直接運行即可。win_init.cmd portable會在根目錄下生成一個包含GVim的壓縮包。下面,我們詳細說一下其中的魔法。
mkdir %vim_portable_folder% 2> NUL copy /Y .vimrc %vim_portable_folder%\_vimrc > NUL set /A portable_ret=!portable_ret!+!ERRORLEVEL! call :get_file_name "%vim_folder%" vim_exe_folder xcopy /Y /i "%vim_folder%" "%vim_portable_folder%!vim_exe_folder!" /s /e > NUL set /A portable_ret=!portable_ret!+!ERRORLEVEL! call :get_parent_dir "%vim_folder%" vim_install_folder xcopy /Y /i "!vim_install_folder!vimfiles" "%vim_portable_folder%vimfiles" /s /e > NUL set /A portable_ret=!portable_ret!+!ERRORLEVEL! xcopy /Y /i "%vimfiles_folder%" "%vim_portable_folder%vimfiles" /s /e > NUL set /A portable_ret=!portable_ret!+!ERRORLEVEL!新建一個目錄以存放綠色版的GVim;
拷貝vimrc;
拷貝GVim可執行文件所在的目錄(即主程序);
拷貝GVim的安裝目錄;
拷貝vimfiles目錄,主要是把Vundle安裝好的插件和我們的Detorte配色拷貝上;
好了,現在將這個目錄打包好后拷貝到別的機器上就能有一份一模一樣的Vim配置了。
完美主義者為何不添加一個啟動快捷方式來啟動GVim呢?
下面的腳本會生成一個init.cmd腳本。在目的機器上運行該腳本一次,就會往系統盤添加一個啟動腳本。
(echo @echo off echo setlocal EnableExtensions echo set dest_gvim=C:Windowsgvim.bat echo if exist "%%dest_gvim%%" EXIT /B 0 echo set cur_dir=%%~dp0 echo if /I "%%cur_dir:~-1%%" EQU "" set cur_dir=%%cur_dir:~0,-1%% echo set exe_dir=%%cur_dir%%!vim_exe_folder! echo echo @echo off ^> %%dest_gvim%% echo echo start "" "%%exe_dir%%gvim.exe" %%%%* ^>^> %%dest_gvim%% echo pause ) >> "%init_cmd%"結語從此,Vimer和Vim幸福地生活在一起!
但是,有一天,Vimer又不開心了,聽說是要寫Markdown筆記?好吧,出門左轉:Vim與Markdown,實現鍵不離手!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/24933.html
摘要:假設有兩個事務的執行順序如下可以看到,這次事務的語句被阻塞了。這是因為事務的語句中條件沒有索引列,所有記錄都會被加鎖,也就是這條語句產生了個記錄鎖和個間隙鎖,相當于鎖住了全表。 ...
摘要:原文地址作為一個天天造的人,必然要經常訪問谷歌等網站,所以前些日子買了自己搭了梯子。今天就跟大家分享一下,如何使用搭建個人博客。創建用戶,建立裸庫,配置。 原文地址:https://www.xksblog.top/use-V... 作為一個天天造BUG的人,必然要經常訪問谷歌等網站,所以前些日子買了VPS自己搭了梯子。但如果只是用VPS來搭梯子那就太浪費了,所以又折騰了一天,把自己之...
閱讀 3716·2021-11-23 09:51
閱讀 1378·2021-11-10 14:35
閱讀 4016·2021-09-22 15:01
閱讀 1289·2021-08-19 11:12
閱讀 386·2019-08-30 15:53
閱讀 1696·2019-08-29 13:04
閱讀 3435·2019-08-29 12:52
閱讀 3064·2019-08-23 16:14