錯誤我今天跑了一個有趣的命令,看起來像 vi filename | vi -。 它讓我的終端卡住了,即使Ctrl-C沒用。 我不得不關閉終端。 我試了幾次,並嘗試在我的朋友機器上。只是想知道爲什麼Ctrl-C也無法提供幫助。vim和unix管
0
A
回答
3
vi從標準輸入讀數。
當您編輯viCtrl + c也不起作用。
:q或:q!將在正常的vi會話中工作。
1
使用POSIX函數信號()C程序可以選擇如果有鍵盤中斷該怎麼做。
下面是一個例子(從this site複製):
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
FILE *temp_file;
void leave(int sig);
main() {
(void) signal(SIGINT, leave);
temp_file = fopen("tmp", "w");
for(;;) {
/*
* Do things....
*/
printf("Ready...\n");
(void)getchar();
}
/* cant get here ... */
exit(EXIT_SUCCESS);
}
/*
* on receipt of SIGINT, close tmp file
*/
void leave(int sig) {
fprintf(temp_file,"\nInterrupted..\n");
fclose(temp_file);
exit(sig);
}
但你可以看到,六不使用鍵盤中斷退出。無論您是否在管道中使用它都沒關係。
0
Vi截取ctrl-c
(它幾乎相當於esc
),因此ctrl-c
將無法在該設置中退出應用程序。
我可以從陷阱離開使用ctrl-z
,然後使用kill %
相關問題
- 1. C - stdin,unix管道和EOF
- 2. Unix的管道和重定向
- 3. Python argparse和Unix管道參數
- 4. Unix管道和位置參數
- 5. 在Unix中區分管道和文件
- 6. 使用fork和dup的Unix管道
- 7. Unix的管道 - 回波和貓
- 8. VIM商標和項目管理
- 9. 管道unix命令
- 10. UNIX目錄管理
- 11. Unix管道問題
- 12. UNIX管道故障
- 13. UNIX/vim - 驗證語法錯誤
- 14. Vim supertab和jedi-vim
- 15. 瞭解UNIX中的管道
- 16. 寫命令管道(UNIX)
- 17. 管的Unix中的Java
- 18. 使用UNIX管道與C
- 19. unix中的命名管道
- 20. 如何處理Unix管道
- 21. 創建管道 - 的Unix
- 22. Unix管道實驗掛起
- 23. 管材的Unix使用C
- 24. 網絡編程管理-UNIX
- 25. 在C UNIX shell中管道
- 26. 管道在UNIX懷疑
- 27. Vim內部(用管道)grep
- 28. 在Vim中管理分割
- 29. 如何管理vim插件
- 30. Vim的包(插件)管理
謝謝!我有時會設法調用'vim file | foo',這似乎也掛斷了終端。 – plaes 2015-02-01 10:50:40