首页 > 解决方案 > 需要自定义 vim 命令的帮助

问题描述

我不久前开始使用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,但我不知道如何按照我的需要连接它们。

标签: regexvimarduino

解决方案


它需要熟悉 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

推荐阅读