Vim Script實現一個自己的function

Vim Script 實現一個自己的function

Vim有許多功能強大的插件,可以定製化實現很多出色的功能,一直嚮往能自己開發一個適合自己的插件,可惜能力和精力都有限。今日偶的閒來試試吧!

Vim自帶的Help裏面就有如何寫Vim腳本的說明:

vim +help

代開help。查找script

在這裏插入圖片描述

如果對Vim script 有興趣可以仔細研究,不贅述。

經過一番研究大概明白了基本的語法和函數的寫法,自建了一個一直想實現的功能:

"by louyong:open file with same suffix;
:function Search_OpenTypeFiles(suffix)
:let filename=expand("<cword>")
:let java_filename=filename . "." . a:suffix
:let $REALPATH=findfile(java_filename, "**")
:if empty($REALPATH)
:echo "Can not find " . java_filename
:else
:find $REALPATH
:call search(filename)
:endif
:endfunction
map <silent>,ff :call Search_OpenTypeFiles(expand("%:e"))<CR>

將這個方法寫入到你的 .vimrc文件,之後在代碼裏可以實現,在光標處點擊“,ff”可以跳轉到光標所在處的詞同名的文件。
如:光標在App這裏,你的當前文件是index.js, 你點擊“,ff”就會跳轉到App.js.

說明一下“,ff”是自定義的快捷鍵,逗號是我的先導按鍵
let mapleader = “,”

簡單記錄說明下,免得自己以後忘記自己寫的代碼是什麼意思,😂

"by louyong:open file with same suffix;

這是註釋的寫法,引號開頭,略

:function Search_OpenTypeFiles(suffix)

:endfunction

function是函數定義關鍵字和:endfunction匹配,Search_OpenTypeFiles是函數名,小括號裏是參數

:let filename=expand("")

:find $REALPATH
:call search(filename)

let定義變量filename 通過 expand("")

  • cword表示當前光標所在詞。
  • expand是vim內建函數。
  • empty也是內建函數,判斷是否存在
  • search也是內建函數,在全文查找關鍵字。
  • find是內建命令,可以直接查找並打開文件。

參考:https://blog.csdn.net/lengye7/article/details/79348035
感謝🙏!作者

此方法只在mac下驗證,不保證linux/windows可用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章