前置き

Fedora 33が10月27日(火)にリリースされました。Ubuntuに遅れること数日で、UbuntuではなくFedoraを選ぶ方が少しでもいたら良いなあ。

viへの変更方法

Fedora 33の新機能を紹介したいですが、この記事ではまずはデフォルトエディタがnanoに変更されています。そのデフォルトエディタをnanoから従来のVi(Vim)に戻す方法を書いておきます。.bashrcか.bash_profileに

export EDITOR="/usr/bin/vi"

Vimに設定するなら、

export EDITOR="/usr/bin/vim"

と書いておけばOKです。

解説

この方法の解説を少しすると、EDITORは環境変数でデフォルトエディタ用の変数です。vi以外のエディタを指定することも出来ますが、GeditなどのGUIにするとCUI画面で使えなくなることがあるので指定しない方が良いでしょう。EDITORをセットするとgit commitした時やvisudoした時に編集するエディタが自動で起動出来るようになります。

nanoに指定している仕組み

デフォルトエディタをnanoに指定している仕組みを探ります。Fedora公式のFedora wikiでのFedora33新機能の Make nano the default editor - fedora wikiに書いてありますが、nano-default-editorパッケージをFedora33のインストール時にインストールする事で実装しています。

このパッケージの中身を

rpm -ql nano-default-editor

してファイルリストを見てみると、

/etc/profile.d
/etc/profile.d/nano-default-editor.csh
/etc/profile.d/nano-default-editor.sh
/usr/share/fish/vendor_conf.d
/usr/share/fish/vendor_conf.d/nano-default-editor.fish

と表示され、/etc/profile.dにsh用とcsh用のファイルがあり、/usr/share/fish/vendor_conf.dにfish用の設定があります。Fedoraデフォルトで特に設定していなければ、CUIのシェルはbashでshファイルが適応されます。GNOME端末やコンソールなどのCUIでは、bashは.bash_profileと.bashrcなどがbashの個人設定ファイルとして読まれますが、これらの前に/etc/profile.d/以下が読まれるようになっています。そして、このnano-default-editor.shのファイルの中に以下のように書かれています。

# Ensure GNU nano is set as EDITOR if it isn't already set

if [ -z "$EDITOR" ]; then
        export EDITOR="/usr/bin/nano"
fi

#で始まる行はコメントで無視される行で、if...fiで囲まれるているところで環境変数EDITORが何も設定されていなければ、nanoに設定すると書かれています。単純な仕組みですね。この仕組みなので、viにしたければ.bash_profileか.bashrcにexport EDITOR=viにすればいいですよと上記で書きました。

終わりに

本当はFedora33の新機能たっぷり書くはずでしたが、割と重大な変更と思い、ひとまずはデフォルトエディタについて書かせていただきました。viよりもnanoのがユーザーフレンドリーなのでという変更点なはずですが、nanoも難しいんですよね。microの方がWindowsのショートカットキーに似ているので、こちらの方が良いような気もします。