vim 내에서 스크립트에 실행 비트를 추가하고 종료하려면 어떻게 해야 합니까?

vim 내에서 스크립트에 실행 비트를 추가하고 종료하려면 어떻게 해야 합니까?

편집 중인 쉘 스크립트에 실행 비트를 추가하고 저장하고 종료하는 일회성 명령이 있습니까?

답변1

내가 아는 한, 아니오내장이 명령을 모두 실행하지만~/.vimrc비슷한 일을 하고 미리 몇 가지 작업을 수행하는 것이 가능합니다 .

이 문제를 해결하려면 몇 가지 사항이 함께 필요합니다.

  • vim에서 여러 명령을 동시에 실행
  • vim을 통해 외부 명령 실행
  • 파일이 아직 열려 있는 동안 현재 파일(권한 포함)을 수정하는 경우 vim이 버퍼에 대한 메시지를 제공하지 않도록 방지
  • 편리한 키 바인딩 정의
  • vim 함수 사용

여기서는 vim 함수를 사용하고 있습니다.여기vim이 파일을 닫기 전에 현재 파일의 권한이 수정된 경우 외부 명령 실행 및 버퍼 메시지 차단을 처리합니다. 또한 명령을 다음과 같이 정의합니다 :Xbit.

function! SetExecutableBit()
  let fname = expand("%:p")
  checktime
  execute "au FileChangedShell " . fname . " :echo"
  silent !chmod a+x %
  checktime
  execute "au! FileChangedShell " . fname
endfunction
command! Xbit call SetExecutableBit()
  
:nnoremap <c-x> :w<CR>:Xbit<CR>:q<CR>
:inoremap <c-x> <Esc>:w<CR>:Xbit<CR>:q<CR>

Ctrl+x추가적으로, vim을 일반 모드로, insert 모드를 파일 내용을 쓰는 키 조합으로 정의( :w)하고 함수를 실행하여 실행 플래그를 설정( :Xbit)한 후 파일을 종료하도록 함수 뒤에 가상 맵을 정의했습니다 ( ). :q) .

~/.vimrc이 모든 작업을 수행하려면 사용하려는 파일을 열기 전에 파일에 들어가야 합니다. 그러나 Ctrl+x간단히 누르거나 키 바인딩을 변경하려는 다른 항목을 눌러 호출할 수 있습니다.

원천:

관련 정보