仅当我“sudo vim”时“E492:不是编辑器命令:PlugInstall”

仅当我“sudo vim”时“E492:不是编辑器命令:PlugInstall”

我的问题是 6 个月前的问题的衍生问题,因此要了解更多详细信息并了解我如何安装 Vim Plug,请查看这里

目前我想添加这个扩展。
https://github.com/mattn/emmet-vim

这是我的.vimrc文件。

  1
  2 syntax on
  3 map <F5> :source ~/.vimrc<CR>
  4
  5 set background=light       " set background = set bg
  6
  7 " colorscheme desert
  8 colorscheme elflord
  9 " colorscheme slate
 10 " colorscheme pablo
 11 " colorscheme koehler
 12 " colorscheme murphy
 13 " colorscheme industry
 14 " colorscheme torte
 15 " colorscheme default
 16 " colorscheme morning
 17 " colorscheme ron
 18 "
 19 set background=dark        " Setting up background=dark, makes text lighter
 20 "
 21 "
 22 "
 23 set nocompatible           " Set compatibility to Vim only
 24 set wildmenu               " Enable Vim's builtin auto completion engine
 25 set ignorecase          " By default searching in Vin using / command is case-sensitive.
 26                      " Use 'set ignorecase' to set searching in Vim case insensitive.
 27                      " Use 'set smartcase' to make search case insensitive if you type the search pattern using lower case only.
 28                            "
 29 set number              " Show line numbers.  Opposite is set nonumber.
 30 "
 31 set shiftwidth=3        " Set tabulator size to 4
 32 set tabstop=3           " Set tabulator size to 4
 33 set softtabstop=3       " Set tabulator size to 4
 34 "
 35 set wrap              " Automatically wrap text that extends beyond the screen length
 36 "
 37 set laststatus=2        " Show status bar
 38 "
 39 set encoding=utf-8         " Force encoding
 40 set list             " Shows hidden characters
 41 set nolist              " Hide invisible characters
 42 "
 43 "
 44 "
 45                      " Call the .vimrc.plug file
 46 if filereadable(expand("~/.vimrc.plug"))
 47     source /home/michal/.vimrc.plug
 48 endif
 49

这是我的.vimrc.plug文件:

  1 " Plugins will be downloaded under the specified directory.
  2 call plug#begin('~/.vim/plugged')
  3
  4 " Fugitive Vim Github Wrapper
  5 Plug 'tpope/vim-fugitive'
  6 " Emmet Vim
  7 Plug 'mattn/emmet-vim'
  8
  9 call plug#end()

这两个文件都位于我的用户目录中/home/michal/,如下所示:

michal@ubuntu:~$ ls -lah /home/michal/.vim*
-rw------- 1 michal michal  20K Jun 21 23:23 /home/michal/.viminfo
-rw-rw-r-- 1 michal michal 1.7K Jun 21 23:12 /home/michal/.vimrc
-rw-rw-r-- 1 michal michal  203 Jun 21 23:09 /home/michal/.vimrc.plug
-rw-rw-r-- 1 michal michal  110 Dec 14  2022 /home/michal/.vimrc.plug.bak
-rw-r--r-- 1 root   root    12K Jun 21 23:53 /home/michal/.vimrc.plug.swp

:PlugInstall当我以用户身份运行 Vim 时执行命令时michal,一切正常。

但是当我使用打开 Vimsudo vim然后尝试运行时:PlugInstall,出现E492: Not an editor command: PlugInstall错误。

这是为什么?

我使用 Vim 95/100 次sudo vim filename,因此我需要使用 Vim Plug 安装的所有插件才能在 sudo 模式下工作。

答案1

而不是sudo vim将这两行放入您的~/.bashrc(或 shell 的启动文件)中:

export EDITOR=$(type -p vim)
export VISUAL=$(type -p vim)

然后你可以sudoedit filename,这将:

  1. 验证用户身份。
  2. 作为root(UID 0),创建文件的临时副本。
  3. 作为$USER,使用$VISUAL$EDITOR编辑临时副本。
  4. 如果文件被更改,如root,则将临时文件复制回来。

这将允许您使用您的vim自定义设置,而不必担心将它们强加于root.

man sudoedit

相关内容