需要自定义 vim 命令的帮助

时间:2021-07-16 09:28:53

标签: regex vim arduino

我不久前开始使用 vim。我不知道如何实现以下自定义命令:

我正在使用 Arduino 草图,其中包含在网络中运行草图的设备的 IP 地址,例如 my_ip = 192.168.10.x

我想将像 :OtaUpload 这样的自定义命令绑定到以下过程:

  1. 在活动文档中搜索变量的内容,例如my_ip = <search_result>
  2. 执行并等待以下python命令完成:python /path/to/script.py -i <search_result> -f "<absolute_path_of_active_doc>/build/<name_of_active_doc>.bin"

我知道我可以用 %:p:h 获取活动文档的目录,用 %:t 获取文档的名称,但我不知道如何按照我的需要连接它们。

1 个答案:

答案 0 :(得分:0)

需要熟悉vimscript才能充分利用vim。希望这对您入门有所帮助。

function! Build(ip_prefix)
  call search(a:ip_prefix)
  let ip = matchstr(getline('.'), a:ip_prefix.'\zs.*')
  let cmd = 'python /path/to/script.py -i '.ip.' -f <absolute_path_of_active_doc>/build/<name_of_active_doc>.bin'

  echom ip
  echom cmd

  " Uncomment below when the cmd is ready
  " execute cmd
endfunction

command Build :call Build('my_ip=')

normal G
Build


" my_ip=192.168.10.x