2013-04-17 1 views
0

주의 :
관리자 권한을 가진 빔은 관리자 권한을 가진 프로그램에서만 파일을 열 수 있습니다.
관리자 권한이없는 빔은 관리자 권한이없는 프로그램에서만 파일을 열 수 있습니다.vim 창에 관리자 권한이 있는지 확인하고 상태 표시 줄에이를 추가하는 방법은 무엇입니까?

이렇게하면 종종 다른 권한으로 열리는 더 많은 vim 창이 열리게됩니다.
제가 사용하는 관리자 권한이 관리자 권한인지 여부는 자주 알지 못합니다.

정력 창에 관리자 권한이 있는지 여부를 확인할 수 있습니까?

나는이처럼 statusline에 뭔가를 관리자 상태를 추가하고 싶습니다 :

function! CheckAdminMode() 
    if &admin | return 'Admin' | else | return '' | endif 
endfunction 

set statusline+=%*\ %{&admin} 

이 가능합니까?

답변

2

쉘 명령을 알고 있다면 system()을 사용할 수 있습니다. 예 : 대부분의 가정 리눅스 설정

if system('echo $EUID') == 0 " Implicit type cast, string->int for left operand 
    return 'Root' 
else 
    return '' 
endif 

위해, 빠르고,

py import os 
return (pyeval('os.geteuid()') == 0) ? 'Root' : '' 

($EUID 따라서 if $EUID == 0를 사용하여 수출 환경에 존재하지 쉘 특수 변수는 일반적으로 불가능입니다) 나. 당신이 루트가 아닌 관리자를 요구하고 있기 때문에 나는 리눅스에 있지 않다고 가정하므로 확인 명령을 내릴 수 없습니다. 간접 검사는 언제든지 사용할 수 있습니다. 관리자 만 쓸 수있는 디렉토리에 쓸 수있는 권한이 있는지 테스트합니다.

" filewritable() reports 2 for writable directories which is also true 
return filewritable('C:\Windows\System32') ? 'Admin' : '' 

.

+0

답장을 보내 주셔서 감사합니다. 예, 저는 창문에 있지만 파이썬과 cygwin을 설치했습니다. – Reman

+0

@ 레몬 그것은 부적당하다. 나는 윈도우즈와 cygwin을 사용하지 않으며 후자에 관해서는 전보다 훨씬 적다. – ZyX

+0

''system ('$ EUID') == 0'이 당신의 vim에서 작동한다면? 나는 그것이 작동하게 할 수 없었습니다. 깜박임을 멈추지 않는 시스템 관리 창을 반환합니다. 지금은 파이썬이 내 PC에 설치되어 있고 오늘 파이썬 코드를 시도했지만,이 오류 :'AttributeError : '모듈'객체에 'geteuid'속성이 없습니다. – Reman

관련 문제