Yanıtlar:
Kombinasyon M-!
, kabuk komutlarını başlatmanıza izin verir. Ayrı bir başlatmak için kullanabilirsiniz urxvt
.
M-! urxvt RET
Ben sadece denedim xterm
(sahip değilim urxvt
) ve arabellek dosya ile aynı dizinde açtım .
Bir kısayol tanımlamak istiyorsanız init dosyanıza benzer bir şey ekleyin:
(global-set-key (kbd "C-c s") (kbd "M-! urxvt RET"))
Benim durumumda kısayolu şöyle bağladım: Ctrl+ C- S.
Genellikle kullanırım M-x term
.
Ayrıca ödeme yapabilirsiniz:
M-x terminal
M-x shell
M-x term
etkili bir şekilde elisp ile yazılmış bir terminal emülatörü başlatmaktadır. Yardımdan:
terimi
M-x ... RET Yeni bir tamponda bir terminal emülatörü başlatın. (dönem terimi)terimi, "term.el" de derlenmiş etkileşimli bir Lisp işlevidir.
Yeni bir arabellek içinde bir terminal öykünücüsü başlatın. Arabellek Terim modunda; bkz `dönem modu' komutları bu tampon içinde kullanmak için.
Başka bir tampona geçmek için Cc b yazın.
multi-term
Emacs komutu M-x shell
yeni bir arabellekte bir kabuk başlatır (veya varsa mevcut bir kabuk arabelleğine geçer). Yeni bir kabuk arabelleği ise, geçerli tamponda ziyaret edilen dosyanın dizininde başlatılır. Varolan bir kabuk arabelleği ise, son kullanımdan sonra bıraktığınız dizinde kalır. Her zaman istediğiniz davranışı elde etmek için, işiniz bittiğinde kabuk arabelleğini öldürmeyi unutmayın ( C-x k
)
Eğer M-x shell
çok fazla yazarak olduğunu, sizin için bir kabuk başlatmak için küresel bir tuşa ayarlayabilirsiniz. (global-set-key (kbd "C-x S") 'shell)
Başlangıç dosyanızdaki gibi bir şey yapmalı (ancak kısayolunuzla başka bir yararlı komutu maskelememeye dikkat edin!)
Ayrıca, bunun bir "aptal terminal" olduğunu unutmayın, bu yüzden bazı git commit
seçenekler gibi komutlar -m
ve şifreler ekranınızda düz metin olacaktır.
Özel bir terminal uygulaması çalıştırmak istedim konsole
. Konsolda çalışıyorsa yeni bir sekme açmak ya da çalışmıyorsa yeni bir sekme açmak istedim.
Gençliğimden beri uygulamayı emacs ve bash arasında bölüştüm. Ben emacs aşağıdaki defun çağırıyorum:
(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 komut dosyası çağırır 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
Çoğu zaman kullanıyorum shell-mode
. Bu yüzden burada kabuk kullanıyorum . Ama harici terminale ihtiyacım olduğunda. Bunu kullanarak tmux ile urxvt-client kullanın:
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"))
Bu, geçerli dizininizde urxvt-client'ı (tmux ile) açar. Ben dired-mode-haritada bağlıyorum
(use-package dired
:ensure nil
:ensure-system-package urxvt
:bind ((:map dired-mode-map
("," . term-here))))
Hızlı ve basit olduğu için urxvt-client'ı seçiyorum. Başlangıçta urxvt-daemon'unuzu çalıştırmayı unutmayın.
Eğer varsa helm
tamamlama çerçevesi yüklü kullanabilirsiniz helm-run-external-command (C-x c C-c C-x)
seçtiğiniz veya geçerli tampon dizindeki başka bir dış programının bir terminal-emülatörü çalıştırmak için.
M-x term
, güzel görünüyor ama tam olarak istediğim şey değil. Bir mermi başlatmak istemiyorum (örneğinbash
veyazsh
bir emacs tamponunda değil, bir terminal emülatöründe (xterm
veyaurxvt
...)