我曾经是一个非常开心的小node.js开发者。我没有意识到我每天都会经常vim package.json
,但显然这很多。我稍后会谈到的。
通常,当我想要修改package.json
时,我会输入vim pack
标签 输入或者vim pac
标签 输入。这是肌肉记忆。
从npm @ 5开始,package-lock.json
文件已经引入。这意味着
vim pac
标签 输入
打开文件package
。这导致了许多额外的击键,工作流程已更改为
vim pac
标签 输入 :qvim package.
标签 输入
结果是大量浪费的击键,时间,挫折,眼泪,以及除了软件以外的事业的沉思。
如果文件已经存在,即使pac
是pack
,是否有任何方法可以完成vim或在shell中将package.json
或package-lock.json
扩展为package-lock.json
还有?这可能是vim或一般只是shell的完成。据推测,我永远不需要编辑或检查package.json
,因此任何完成都可以忽略该文件。我还想确保compltion不会扩展circ
如果它不那里。我也不希望这会影响任何其他文件,例如如果circle.yml
和circle.yml
都在那里,则不应将circle-bak.yml
标签扩展为package.json
...我只对{感兴趣} {1}}。
我试过了alias vimp="vim package.json"
,但我对此并不满意,因为 p Enter 很难输入,因为它们使用相同的手指。我只想让完成工作像我以前一样工作。
答案 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
如果您在点击标签之前输入的内容超过pac
且package.json
存在,则会自动完成package.json
。该行为仅对vim
的参数启用。