成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

VIM Script /VIML 腳本語言入門

piapia / 1119人閱讀

摘要:參考變量設(shè)置變量邏輯控制參考中的字符串和數(shù)字是可以直接比較的,如,返回函數(shù)參考函數(shù)名必須大寫開頭。但是如果重載當(dāng)前的話,會遇到警告。返回當(dāng)前文件的名字。所以我們才可以用這樣的命令來運(yùn)行當(dāng)前腳本。

參考:Learn Vimscript the Hard Way

變量
"設(shè)置變量
let myVariable = 1
let myString = "Hello"
邏輯控制

參考:Comparisons - Learn Vimscript the Hard Way

if-else:

if 3 >= 1
    echo "True"
elseif 3 < 4
    echo "True again"
elseif 3 == 3
    echo "True true"
else
    echo "False"
endif

VIM中的字符串和數(shù)字是可以直接比較的,如:echo "3" >= 3,返回1.

Functions 函數(shù)

參考:Functions - Learn Vimscript the Hard Way

函數(shù)名必須大寫開頭。
function MyFunction()
    :wq
endfunction

但是如果重載當(dāng)前vimrc的話,會遇到function already exists警告。
所以最好在將函數(shù)定義為可重寫的函數(shù),即變?yōu)?b>function!:

function! MyFunction()
    :wq
endfunction
內(nèi)置函數(shù) has(..)

has("程序語言")

has("硬件架構(gòu)")

has("xxx")

system(...)

system("rm /tmp/*")

buffer

bufnr("%"): 返回當(dāng)前VIM中的buffer數(shù)量

autocmd 事件觸發(fā)器

參考非常棒的VIM官方文檔(中文翻譯):http://vimcdoc.sourceforge.ne...

格式為::au[tocmd] [group] {event} {pat} [nested] {cmd}
中文的話就是::au[tocmd] [組] {事件} {文件名規(guī)則} [nested] {命令}

如果命令比較復(fù)雜的話,建議創(chuàng)建function,然后在autocmd中call func()。

常用技巧 獲取當(dāng)前buffer的文件名、路徑、擴(kuò)展名

參考:How can I see the full path of the current file?
參考:How do I get the name and extension of the current file?

都知道,VIM中%代表當(dāng)前buffer,我們可以增加filename-modifiers來操作%得到buffer關(guān)聯(lián)的文件的相關(guān)信息。

Register %返回當(dāng)前文件的名字。所以我們才可以用!python %這樣的命令來運(yùn)行當(dāng)前腳本。
VIM中,%還能做到很多的擴(kuò)展:

: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 :!CMD %:p:h,這樣可以在按Ctrl-g時候,在當(dāng)前文件所在的目錄執(zhí)行CMD命令

“獲取路徑
echo expand("%:p")    "/home/mool/vim/src/version.c

"獲取文件全名
echo expand("%:t")   "version.c

"獲取文件名,不包括擴(kuò)展名
echo expand("%:t:r")   "version

"獲取擴(kuò)展名
echo expand("%:e")   "c
Multiple lines 換行

開頭,|結(jié)尾,即可連接多行為一行。

au Filetype ruby
             setlocal ts=2  |
             setlocal sts=2 |
             ...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25081.html

相關(guān)文章

  • 使用python寫vim插件

    摘要:原文地址有各種強(qiáng)大的插件,這不僅歸功于其提供的用來編寫插件的腳本語言,還得益于它良好的接口實(shí)現(xiàn),從而支持等語言編寫插件。當(dāng)編譯時帶有特性時就能使用編寫插件,則支持,可以使用來查看的編譯特性。具體可以查看幫助參考如何用寫插件 原文地址 vim有各種強(qiáng)大的插件,這不僅歸功于其提供的用來編寫插件的腳本語言vimL,還得益于它良好的接口實(shí)現(xiàn),從而支持python等語言編寫插件。當(dāng)vim編譯時帶...

    antz 評論0 收藏0
  • 使用python寫vim插件

    摘要:原文地址有各種強(qiáng)大的插件,這不僅歸功于其提供的用來編寫插件的腳本語言,還得益于它良好的接口實(shí)現(xiàn),從而支持等語言編寫插件。當(dāng)編譯時帶有特性時就能使用編寫插件,則支持,可以使用來查看的編譯特性。具體可以查看幫助參考如何用寫插件 原文地址 vim有各種強(qiáng)大的插件,這不僅歸功于其提供的用來編寫插件的腳本語言vimL,還得益于它良好的接口實(shí)現(xiàn),從而支持python等語言編寫插件。當(dāng)vim編譯時帶...

    woshicixide 評論0 收藏0
  • 你也用Vim寫Java代碼?

    摘要:獻(xiàn)給所有曾試圖寫而痛苦掙扎的請不要害怕我也是你們的一員序文章源起于論壇中的一個問題由于回答的有點(diǎn)盡性便轉(zhuǎn)為文章題主應(yīng)該是個初學(xué)者這里不對題主報有任何貶義的情感誰都是從初學(xué)過來的問題主要是如何在中編譯運(yùn)行代碼勾起了我痛苦的回憶便借題發(fā)揮了更何 獻(xiàn)給所有曾試圖寫Java而痛苦掙扎的Vimers, 請不要害怕, 我也是你們的一員 序 文章源起于segmentfault論壇中的一個問題, 由于...

    helloworldcoding 評論0 收藏0
  • 你也用Vim寫Java代碼?

    摘要:獻(xiàn)給所有曾試圖寫而痛苦掙扎的請不要害怕我也是你們的一員序文章源起于論壇中的一個問題由于回答的有點(diǎn)盡性便轉(zhuǎn)為文章題主應(yīng)該是個初學(xué)者這里不對題主報有任何貶義的情感誰都是從初學(xué)過來的問題主要是如何在中編譯運(yùn)行代碼勾起了我痛苦的回憶便借題發(fā)揮了更何 獻(xiàn)給所有曾試圖寫Java而痛苦掙扎的Vimers, 請不要害怕, 我也是你們的一員 序 文章源起于segmentfault論壇中的一個問題, 由于...

    KitorinZero 評論0 收藏0
  • 讓人相見恨晚的vim插件:模糊查找神器LeaderF

    摘要:是什么是一個用寫的插件,可以在成千上萬數(shù)十萬個文件中,通過模糊查找的方式,快速找到目標(biāo)文件。它還有很多衍生功能快速打開或定位某個最近使用的文件包括函數(shù)類變量等命令歷史文件中的某一行的等等。友情鏈接,也許是最好的模糊查詢插件 提到vim的模糊查找插件,很多人第一反應(yīng)是ctrlp.vim,ctrlp知名度很高,但跟其它的同類插件相比,它的唯一優(yōu)點(diǎn)是用vimL編寫(這讓它的性能是所有同類插件...

    Near_Li 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<