"設置變量 let myVariable = 1 let myString = 'Hello'
參考:Comparisons - Learn Vimscript the Hard Wayhtml
if-else:python
if 3 >= 1 echo 'True' elseif 3 < 4 echo 'True again' elseif 3 == 3 echo 'True true' else echo 'False' endif
VIM中的字符串和數字是能夠直接比較的,如:echo '3' >= 3
,返回1.vim
參考:Functions - Learn Vimscript the Hard Wayruby
函數名必須大寫開頭。架構
function MyFunction() :wq endfunction
可是若是重載當前vimrc的話,會遇到function already exists
警告。 因此最好在將函數定義爲可重寫的函數,即變爲function!
:函數
```vim function! MyFunction() :wq endfunction
參考很是棒的VIM官方文檔(中文翻譯):http://vimcdoc.sourceforge.net/doc/autocmd.html.net
格式爲::au[tocmd] [group] {event} {pat} [nested] {cmd}
中文的話就是::au[tocmd] [組] {事件} {文件名規則} [nested] {命令}
翻譯
若是命令比較複雜的話,建議建立function,而後在autocmd中call func()
。code
參考:How can I see the full path of the current file? 參考:How do I get the name and extension of the current file?htm
都知道,VIM中%
表明當前buffer,咱們能夠增長filename-modifiers
來操做%
獲得buffer關聯的文件的相關信息。
Register %
返回當前文件的名字。因此咱們才能夠用!python %
這樣的命令來運行當前腳本。 VIM中,%
還能作到不少的擴展:
:echo @% |" directory/name of file :echo expand('%:p') |" full path "PATH" :echo expand('%:p:h') |" directory containing file "HEAD" :echo expand('%:t') |" full name of file "TAIL" :echo expand('%:t:r') |" Only name of file "ROOT" :echo expand('%:e') |" Only extension of file "EXTENSION"
咱們在vimrc中使用的時候,能夠省略echo和expand。好比: nnoremap <C-g> :!CMD %:p:h<CR>
,這樣能夠在按Ctrl-g
時候,在當前文件所在的目錄執行CMD
命令
「獲取路徑 echo expand('%:p') "/home/mool/vim/src/version.c "獲取文件全名 echo expand('%:t') "version.c "獲取文件名,不包括擴展名 echo expand('%:t:r') "version "獲取擴展名 echo expand('%:e') "c
以\
開頭,|
結尾,便可鏈接多行爲一行。
au Filetype ruby \ setlocal ts=2 | \ setlocal sts=2 | \ ...