0

我注意到:具有管理员权限的
Vim 只能从具有管理员权限的程序中打开文件。
没有管理员权限的 Vim 只能从没有管理员权限的程序中打开文件。

这使得我经常打开两个具有不同权限的 vim 窗口。
我经常不知道我使用的那个是否有管理员权限。

是否可以检查 vim 窗口是否具有管理员权限?

我想将管理员状态添加到状态行,如下所示:

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

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

这可能吗?

4

1 回答 1

2

如果你知道一个 shell 命令,你可以使用system(). 例如,对于大多数家庭 linux 设置

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

$EUID通常是导出环境中不存在的 shell 特殊变量,因此if $EUID == 0无法使用),或者更快,

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

. 当您要求管理员而不是 root 时,我假设您不在 linux 上,因此我无法帮助您检查命令。您始终可以使用间接检查:测试您是否有权写入某些仅对管理员可写的目录:

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

.

于 2013-04-17T21:29:02.730 回答