2017-07-13 3 views
0

ユーザとしてbashにログインした後、Emacsを実行したい。 CTRL-Zを押すとbashプロンプトに戻ることもできます。Xサーバのないシステムで起動時にEmacsを実行する

私はbashrcにとの.profileの設定のカップルを試してみました:

emacs 

eval 'emacs' 

bash -c emacs 

exec emacs -nw 

問題は、このすべては、CTRL-Zは、プロンプトbashにない私をドロップしますが、標準入力空にすること、のような変異体のことですbashプロンプトがまだロードされていません。 アイデアありがとう。

+0

私はあなたの話題についてお手伝いできません。しかし、あなたはそれをすべきではありません。ログインプロゼスの結果(例えば、bashのかわりにkshを使うなど)を混乱させると、問題が発生します。私はこれを数回学んだ。 :-)しかし、シェルでデフォルトでemacsを使っている人は、私に人類の信仰を戻します。 – mbieren

+0

あなたの答えに感謝します。あなたは私がそれを使用するデバイス(私はそれを "ポケットemacs"と "ポケットデバッガ"と呼ぶ)を見るべきです。そのソニーVAIO VGN - P31ZRK。ほとんどの「特別なボタン」はバインディングで使用されています) https://pp.userapi.com/c626117/v626117672/31b16/slek7sMxMbk.jpg –

+0

関連:[実行中のbash(対話型)に外部からコマンドを実行するよう依頼する](https://stackoverflow.com/questions/7370538/ask-a-running-bash-interactive-to-run-a-command-from-outside)と[termios.TIOCSTIで端末入力を偽装できません](https ://stackoverflow.com/questions/29614264/unable-to-fake-terminal-input-with-termios-tiocsti)。 '.profile'の最後では、perl、python、またはcプログラムが' emacs \ r'をあなたのttyに送るようにすることができます。これによりシェルはあなたが入力した通りにシェルを実行させます。 –

答えて

0

Mark Plotnick氏に感謝の意を表します。 ioctlを使用すると、独自のttyに書き込むことができます。 Cプログラム:

#include "unistd.h" 
#include "stdlib.h" 
#include "stdio.h" 
#include "sys/stat.h" 
#include "sys/types.h" 
#include "fcntl.h" 
#include "termios.h" 
#include "sys/ioctl.h" 

int main(int argc, char ** argv) 
{ 
    if (argc >= 3) 
    { 
     int fd = open (argv[1], O_RDWR); 

     if (fd) 
    { 
     char * cmd = argv[2]; 
     while(*cmd) 
     ioctl(fd, TIOCSTI, cmd++); 

     if (argc >= 4) 
     ioctl(fd, TIOCSTI, "\r"); 

     return 0; 
    } 
     else 
    printf("could'n open file\n"); 

    } 
    else 
    printf("wrong args\n"); 
    return -1; 
} 

コンパイル:.profileファイルの gccのmy_ioctl.c -o my_ioctl

非常に終わり:

~/my_ioctl $(tty) emacs rr 

(私のCプログラムが実際にどのような第三のargの気にしません)です。

関連する問題