如何从 vim 内部使用 ansible-vault 编辑打开文件?

3ch*_*eel 8 vim window-management ansible

通常,当我想打开由 ansible-vault 加密的文件进行编辑时,我只需运行ansible-vault edit <filename>- 这会将文件解密为临时文件并打开它进行编辑。

但是,我想知道的是如何从 vim 中实现这一点,例如通过使用:! ...command...语法运行 shell 命令。例如,我知道我可以通过在 vim 中打开加密文件来解密文件,然后运行:

:! ansible-vault edit %
Run Code Online (Sandbox Code Playgroud)

但这会在不同的窗口中使用 ansible-vault 打开文件,然后您必须按一个键才能返回 vim。

我想要做的是能够用 vim 打开这个文件,这样我就可以将它与其他常规文件或使用 ansible-vault 加密的文件一起编辑。目前我正在通过打开几个 tmux 窗格来做到这一点,但这有点像 PITA。

小智 3

在编辑加密的保管库文件时,我一直在 vim 内部执行此操作:

:!ansible-vault --vault-password-file=~/.vault_pass decrypt %

进行更改,然后重新加密文件:

:!ansible-vault --vault-password-file=~/.vault_pass encrypt %

保管库密码以明文形式保存在 ~/.vault_pass 中

要查看内容,然后返回原始加密文件(使用 git 作为 SCM 和fugitive.vim插件),首先解密并完成后:

:Git checkout %

我可能会为这些命令创建一个函数或别名,以使其将来更快。现在我进行命令历史搜索,这样我就不必每次都输入整个内容:

q: /decrypt N enter