回答:
普段使用しますM-x term
。
チェックアウトすることもできます:
M-x terminal
M-x shell
M-x term
elispで書かれた端末エミュレータを効果的に起動しています。ヘルプから:
term
M-x ... RET 新しいバッファーで端末エミュレーターを開始します。(学期プログラム)termは、 `term.el 'にあるインタラクティブにコンパイルされたLisp関数です。
ターミナルエミュレータを新しいバッファで起動します。バッファは期間モードです。そのバッファで使用するコマンドについては、「term-mode」を参照してください。
Cc bと入力して、別のバッファーに切り替えます。
multi-term
emacsコマンドM-x shell
は、新しいバッファーでシェルを開始します(または、既存のシェルバッファーがあれば、それに切り替えます)。新しいシェルバッファの場合は、現在のバッファでアクセスされているファイルのディレクトリから開始されます。それが既存のシェルバッファである場合は、最後に使用した後に残したディレクトリに残ります。常に希望する動作を得るには、シェルバッファーを使い終わったら、必ず終了するようにしてください(C-x k
)
M-x shell
入力が多すぎる場合は、グローバルキーを設定してシェルを起動できます。(global-set-key (kbd "C-x S") 'shell)
起動ファイルのようなものがそれを行うべきです(しかし、ショートカットで別の便利なコマンドをマスクしないように注意してください!)
また、これは「ダム端末」であることに注意してください。そのため、git commit
オプションなどの一部のコマンド-m
やパスワードは画面上にプレーンテキストで表示されます。
専用のターミナルアプリケーションを実行したかったkonsole
。実行中の場合はkonsoleで新しいタブを開き、実行していない場合は起動します。
私は若い頃から、実装をemacsとbashに分割しました。emacsから次のdefunを呼び出します。
(defun bk-konsoles ()
"Calls: bk_konsoles.bash -- which starts new tab in a running konsole,"
(interactive)
(let ((curDir default-directory))
(shell-command (concat "bk_konsoles.bash \"" curDir "\" 2>&1 > /dev/null & disown") nil nil)
(kill-buffer "*Shell Command Output*")))
defunはbashスクリプトを呼び出しますbk_konsoles.bash
:
#!/bin/bash
myPath=`echo $@ | sed 's/.$//'`
runningKonsole=`ps -e | grep konsole`
if [ "$runningKonsole"!="" ]; then
if [ "$@"!="" ]; then
konsole --new-tab --workdir "$myPath" 2>&1 > /dev/null
else
konsole --new-tab 2>&1 > /dev/null
fi
wmctrl -a " – Konsole"
else
konsole
fi
ほとんどの場合、私は使用していますshell-mode
。したがって、私はshell-hereを多用しています。しかし、外部端子が必要な場合。私はこれを使用してtmuxでurxvt-clientを使用します:
urxvtc -e bash -c "tmux -q has-session && exec tmux attach-session -d || exec tmux new-session -n$USER -s$USER@$HOSTNAME"
(defun term-here ()
(interactive)
(start-process "" nil "term-here"))
これにより、現在のディレクトリで(tmuxを使用して)urxvt-clientが開きます。dired-mode-mapにバインドします。
(use-package dired
:ensure nil
:ensure-system-package urxvt
:bind ((:map dired-mode-map
("," . term-here))))
urxvt-clientを選択したのは、高速でシンプルだからです。起動時にurxvt-daemonを実行することを忘れないでください。
M-x term
、それはいいように見えますが、私が望むものではありません。シェルではなく(たとえば、bash
またはzsh
emacsバッファーで起動しますが、ターミナルエミュレーター(xterm
またはurxvt
...)で起動します)