私は bash と emacs を学び始めたばかりで、デフォルトのエディターを vi から emacs に変更したいと考えていました。さまざまな stackexchange コミュニティで多くの優れた質問を調べましたが、解決方法がわからず、v
を使用するときにコマンドを台無しにしてしまったようです (一時的なものであることを願っています)。現在、でファイルを読み込んでいるときless
に を押しても、vi (デフォルト) や emacs (私が望むもの) が開くのではなく、何も起こりません。つまり、私の知る限り のままで、テキストを編集することはできません。幸い、 を使用して終了することはできますし、他に動作しているものは見当たりません。v
less
less
q
私が何をしたか、そしていつ状況が変わったか:
私は Mac OS X に付属のターミナル エミュレータを使用していますが、XQuartz はダウンロードしています。Homebrew Cask を使用して、emacs をインストールしました。
StackExchange の多くの質問では、 .bash_profile で設定できる$EDITOR
および$VISUAL
変数についてわかりやすく説明されていました。私の MacBook には古いバージョンの emacs が既にインストールされているので、homebrew によってインストールされた現在のバージョンの emacs を使用するようにしました。
私はまだこのすべてを学び始めたばかりなので、すべてを設定する最善の方法を判断できませんでした。現在、私の .bash_profile には次のように設定されています。
# changing emacs from the default osX version to the version obtained from homebrew
alias emacs="/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs"
alias enw="emacs -nw"
# setting emacs as the editor in term instead of vi
EDITOR="enw";export EDITOR
VISUAL="enw";export VISUAL
上記のコードを .bash_profile に追加した後、特に重要な変更はありませんでした (私が知る限り)。および変数が正しく変更されたecho
ことを確認しました。$EDITOR
$VISUAL
less
ファイルを読むために を使用すると、 と入力することはできますv
が、ターミナルは、目的の emacs ではなく vi を使用してファイルを編集します。そこで、 と の定義方法を変更してみました$EDITOR
。たとえば、の代わりに フラグを$VISUAL
使用して、 のようにフルパスを使用します。また、引用符を削除してみました。これらのいずれも、私が知る限り何も変わりませんでした。alias emacs=...
-nw
enw
残念ながら、まだ始めたばかりで、取り組むべき具体的なタスクがないので、基本的なコマンドとファイルをいじっているだけなので、less
コマンドを使用しています。現在、ターミナルで変数を使用する他の方法に精通していません。そのため、私の問題が にのみ関係するのか、 の問題なのかは$EDITOR
わかりません。v
$EDITOR
最終的に、これに関連するいくつかの質問を見て、追加することが推奨されていたので、その理由を本当に理解せずに試してみました。また、のコマンドALTERNATE_EDITOR="";export ALTERNATE_EDITOR
との明らかな違いはありません。v
less
さらに検索してみるとこれ質問ですが、これは私の当初の計画に最も近いように思えます (ただし、私が理解している限りでは、パイプ処理をしようとはしていませんでした。また、残念ながら「ページング」が何なのか理解していません)。そこで、$EDITOR="enw"
に変更しました。これは、 でファイルを読み取っているときに何もしなくなった$EDITOR="env TERM=xterm-256color enw"
ときとほぼ同じです。v
less
$TERM
最後のコード追加を行う前に、通常何が起きるかを確認しましたが、それはすでにxterm-256color
私の環境では起きていました。これがコマンドを台無しにしたと言っているのではなく、単に、 中に vi の呼び出しが停止したv
タイムラインの問題です。すべてを最初に試したコードに戻しましたが、それでもまだ機能しません。v
less
v
(長くなってすみません、役に立つかもしれないのでプロセスを説明しようとしただけです!).bash_profileへの追加をコメントアウトすると、すべてが正常に戻ります。これは良いことだと思います。したがって、.bash_profileで使用していない限り、使用でき$EDITOR
ます。ただし、v
less
$EDITOR
$VISUAL
欲しいこれらを変更したいのですが、これが私のジレンマです。これはおそらく些細な質問ですが、アドバイスやご意見をいただければ幸いです。
PS- この問題のトラブルシューティング中に に遭遇しました。emacsclient
このコマンドは使用できますが、 の代わりにそっちを使用する理由がわかりませんenw
。
答え1
エイリアスは、現在のシェル セッションでのみ「アクティブ」です。またはless
を介してエイリアスを呼び出すことはできませ$EDITOR
ん$VISUAL
(シェル自体を除く他のプロセスも、おそらくエイリアスを呼び出すことはできません)。
代わりに、例えば次のVISUAL
ように設定します
export VISUAL='/usr/local/Cellar/emacs/25.2/Emacs.app/Contents/MacOS/Emacs -nw'
または、自分でコンパイルするか、HomeBrew、MacPorts、Fink などを使用して、emacs
からアクセスできる標準の場所にインストールし、 を使用するだけです。$PATH
export VISUAL='emacs -nw'