「E492:エディタコマンドではありません:PlugInstall」は、「sudo vim」の場合にのみ発生します。

「E492:エディタコマンドではありません:PlugInstall」は、「sudo vim」の場合にのみ発生します。

私の質問は、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

:PlugInstallVimをuserとして実行している間にコマンドを実行すると、michalすべてがうまく機能します。

ただし、Vimを開いてsudo vim実行しようとするとエラーが:PlugInstall発生します。E492: Not an editor command: PlugInstall

なぜそんなことですか?

私はVimを95/100回使用しているため、sudo vim filenamesudoモードで動作するにはVim Plugを使用してインストールされているすべてのプラグインが必要です。

答え1

sudo vim次の2行をユーザー~/.bashrc(またはシェルの起動ファイル)に入れる代わりに:

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

するとsudoedit filename次のようになります。

  1. ユーザーIDを確認してください。
  2. (UID 0)でrootファイルの一時コピーが作成されます。
  3. として一時コピーを$USER使用$VISUALまたは編集します。$EDITOR
  4. ファイルが変更されると(一時rootファイルは再コピーされます)。

vimこれにより、適用することを心配することなくカスタム設定を使用できますroot

読むman sudoedit

関連情報