使用package-lock.json

时间:2017-12-15 15:22:19

标签: bash shell tab-completion

我曾经是一个非常开心的小node.js开发者。我没有意识到我每天都会经常vim package.json,但显然这很多。我稍后会谈到的。

通常,当我想要修改package.json时,我会输入vim pack 标签 输入或者vim pac 标签 输入。这是肌肉记忆。

从npm @ 5开始,package-lock.json文件已经引入。这意味着

vim pac 标签 输入

打开文件package。这导致了许多额外的击键,工作流程已更改为

vim pac 标签 输入 :qvim package. 标签 输入

结果是大量浪费的击键,时间,挫折,眼泪,以及除了软件以外的事业的沉思。

如果文件已经存在,即使pacpack,是否有任何方法可以完成vim或在shell中将package.jsonpackage-lock.json扩展为package-lock.json还有?这可能是vim或一般只是shell的完成。据推测,我永远不需要编辑或检查package.json,因此任何完成都可以忽略该文件。我还想确保compltion不会扩展circ如果它那里。我也不希望这会影响任何其他文件,例如如果circle.ymlcircle.yml都在那里,则不应将circle-bak.yml 标签扩展为package.json ...我只对{感兴趣} {1}}。

我试过了alias vimp="vim package.json",但我对此并不满意,因为 p Enter 很难输入,因为它们使用相同的手指。我只想让完成工作像我以前一样工作。

1 个答案:

答案 0 :(得分:2)

您可以为此vim制作自定义规则:

_vim() {
  local cur
  COMPREPLY=()
  cur="${COMP_WORDS[COMP_CWORD]}"
  if [[ $cur = pac* && -f package.json ]]; then
    COMPREPLY=( package.json )
    return 0
  fi
}

complete -F _vim vim

如果您在点击标签之前输入的内容超过pacpackage.json存在,则会自动完成package.json。该行为仅对vim的参数启用。