Cách chạy Linux terminal qua build-system trong Sublime Text

Tại vì ST không cho phép nhập input từ người dùng, nên mình muốn viết một cái build-system để mở trực tiếp terminal lên và code được thực thi luôn ở đó (thay vì hiện phía dưới phần console). Kiểu giống mấy IDE như Code::Blocks hay Dev-C++ trên Windows ấy: mở một giao diện dòng lệnh riêng biệt để chạy code.
Các cao nhân có cách chỉ cho mình với. Xin cảm ơn rất nhiều!

Bạn thử lệnh gnome-terminal -e top
<tên tẻminal > -e <lệnh>

1 Like

vậy nhét nó vào đâu hả bác?

Chỗ gọi lệnh run chương trình.
VD build được file run.exe
bình thường thì chạy gọi lệnh run.exe bây giờ gọi lệnh -e run.exe.

1 Like

Chờ chút, hình như có chút nhần lẫn ở đây thì phải :confused:
Thứ nhất là mình đang nói về Sublime Text, và nó không có chỗ nào “run” cả.
Và mình đang dùng Linux, cũng không thể chạy vile .exe được.

VD vậy! @@! @@! @_@!

1 Like

Tạo 1 shell scrip để gọi lệnh chạy trong đó cũng như thêm các lệnh khác cho đơn gỉan !

Kết qủa:

Đưa file kịch bản vào ~/.bin và đăng ký lệnh.

Tạo 1 kịch bản build và gọi lệnh :

Lưu và chọn kịch bản khi build

Chúc bạn thành công.

Mình thích dùng geany hơn.

1 Like

Ok đã hiểu. Cảm ơn bác nhiều nhé. Cơ bản là tại em hơi nghiện con ST này nên là không muốn dùng IDE.
Thế con Geany nó hơn gì không để em tham khảo.

Added:
@Phong_Ky_Vo
Tình hình là để cho đỡ phức tạp và phụ thuộc và cái file run.sh, mình đã cắt một số đoạn đi còn lại thế này thôi:
&& gnome-terminal -e \"./${file_base_name}; read\"
Nhưng nó báo lỗi There was an error creating the child process for this terminal. Failed to execute child process “./draft;” (No such file or directory) (draft là tên chương trình).

No such file or directory không có file! @_@!
Nhưng nếu bạn chạy luôn như vậy thì chạy xong terminal đóng luôn. có getchar(); ở chuối.
(trong file scrrip có read -p để dừng lại)

1 Like

Chờ lâu quá nên em viết riêng ra một cái script như bên trên của anh rồi. Hơi khác một chút:

#!/bin/bash

# executes the script and measures time
START=$(date +%s.%N)
./$1
END=$(date +%s.%N)
DIFF=$(echo "$END - $START" | bc)

# prints out the result
printf "\n[FINISHED IN %.3fs]\n" $DIFF
read -n1 -p "Press any key to continue... "

Cho nó giống trong console của ST. :grin:

Nhưng em lại gặp vấn đề với cái build_system phần
"shell_cmd": "gcc $file_name -o ${file_base_name} && gnome-terminal -e \"/home/usr_name/.bin/sublrun ./${file_base_name}\""
Nếu em thay absolute path /home/usr_name về $HOME thì lỗi. Mà để nguyên thế thì không tiện cho lắm.

Bạn có thể làm theo tut


khi đó có thể thêm folder nhận các lệnh. Cho các shell của bạn vào đó thì có thể gọi bình thường.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?