自前ビルドしたVimをvisudoなどのデフォルトエディタに使用する
コマンド構文などを忘れそうなのでメモ。
経緯
- ターミナルにて
sudo gvim
などをすると「ディスプレイをオープンできません(cannot open display)」と怒られる DISPLAY
とかの設定が引き継がれてないんだなーとか思いググるとやっぱりそんな感じ(めも - sudoをかますとcannot open displayと怒られる)/etc/sudoers
弄るかーと思いおもむろにsudo visudo
と叩く- visudoなのにnanoなの!ま・た・お・ま・え・か(Ubuntuのvisudoエディタが変nanoになる)
- 「毎度毎度OS再インストールするたびに設定するの糞面倒臭いんだよ…」とか思いながら仕方がないので
sudo update-alternatives --config editor
を叩く - vim がリストに表示されない( ゚д゚)ポカーン
- 「あ…自前でvimビルドしたんだっけ…」
- alternativesに自分で項目追加するのどうするん??
ついでなのでalternativesに項目を追加するところから「ディスプレイをオープンできません」を解決するところまでダイジェストで紹介します。
alternatives に vim を追加
僕のように自前でvimをビルドした場合はalternativesにvimの項目がありません。
普通にsudo apt-get install vim
とかで入れた人は読み飛ばしてください。
alternativesですが下記コマンドでeditor
というグループに/usr/local/bin/vim
を追加できます。なおこのeditor
というグループは/usr/bin/editor
とリンクファイルを作成するために使用するグループです(コマンドの構文的にはupdate-alternatives --install リンクファイルパス グループ名 実体パス 優先度
となります)。
% sudo update-alternatives --install /usr/bin/editor editor `which vim` 100
僕の環境ではnanoの優先度が40だったためそれよりも優先度が高くなるように100にしました。この辺は適当でいいと思います。
alternatives にて editor に vim を指定
vimの優先度をnanoなどよりも低く設定した場合下記コマンドにて明示的にvimをeditorとして指定してやる必要があります。僕のようにvimの優先度を何よりも高く設定した場合は不要です。
% sudo update-alternatives --config editor alternative editor (/usr/bin/editor を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/local/bin/vim 100 自動モード 1 /bin/ed -100 手動モード 2 /bin/nano 40 手動モード 3 /usr/local/bin/vim 100 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:
使用したいエディタの選択肢番号を押してEnterで設定されます。
visudo にて DISPLAY と XAUTHORITY をキープするように設定
X Window System はゴニョゴニョしてるので DISPLAY と XAUTHORITY という環境変数がないと動きません(詳細は環境変数DISPLAYとかttt: (X WINDOW SYSTEM) 昔、XHOSTって使っちゃいけないコマンドだと教わったのですが・・・XAUTHをよろしくを参照するといいと思います)。
したがってターミナルにてsudo visudo
と叩きDefaults env_reset
とある行のあたりを下記のように修正します。
#Defaults env_reset Defaults env_keep="DISPLAY XAUTHORITY"
もしすでにDefaults env_keep
とあった場合は
Defaults env_keep="なにか別の設定" Defaults env_keep+="DISPLAY XAUTHORITY"
としてください。これで解決します。