vim 내에서 ansible-vault 편집을 사용하여 파일을 여는 방법은 무엇입니까?

vim 내에서 ansible-vault 편집을 사용하여 파일을 여는 방법은 무엇입니까?

일반적으로 편집을 위해 ansible-vault로 암호화된 파일을 열려면 ansible-vault edit <filename>- 파일을 임시 파일로 해독하고 편집을 위해 엽니다.

그러나 내가 알고 싶은 것은 vim에서 이를 달성하는 방법입니다. 예를 들어 구문을 사용하여 쉘 명령을 실행하는 방법입니다 :! ...command.... 예를 들어, 암호화된 파일을 vim에서 열고 다음 명령을 실행하여 해독할 수 있다는 것을 알고 있습니다.

:! ansible-vault edit %

하지만 이렇게 하면 다른 창에서 ansible-vault를 사용하여 파일이 열리고 vim으로 돌아가려면 키를 눌러야 합니다.

내가 원하는 것은 vim을 사용하여 이 파일을 열어 다른 일반 파일이나 ansible-vault를 사용하여 암호화된 파일로 편집할 수 있는 것입니다. 현재 나는 몇 개의 tmux 창을 열어 이 작업을 수행하지만 이는 약간의 PITA입니다.

답변1

암호화된 볼트 파일을 편집할 때 vim 내에서 이 작업을 수행해 왔습니다.

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

변경한 후 파일을 다시 암호화합니다.

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

볼트 비밀번호는 ~/.vault_pass에 일반 텍스트로 저장됩니다.

내용을 보고 원래 암호화된 파일을 반환하십시오(git을 SCM으로 사용하고도망자.vim플러그인), 완료 후 먼저 해독합니다.

:Git checkout %

나중에 더 빠르게 만들기 위해 이러한 명령에 대한 함수나 별칭을 만들 수도 있습니다. 이제 명령 기록 검색을 수행하므로 매번 전체 내용을 입력할 필요가 없습니다.

q: /decrypt N enter

답변2

나는 사용할 수 있었다

%! ansible-vault decrypt --output -

버퍼를 암호화하려면 다음을 사용하십시오.

%! ansible-vault encrypt --output -

자동화가 가능하다면 정말 좋을 것 같습니다. 일정 수준의 성공을 거두었습니다.

autocmd BufNewFile,BufRead *
  \ if getline(1) =~ '$ANSIBLE_VAULT;.*;AES256'     |
  \   execute '%! ansible-vault decrypt --output -' |
  \ endif

그러나 종료 시 버퍼 내용을 다시 암호화하는 자동 명령을 설정할 수 없습니다.

관련 정보