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可用。