Sublime Text 2: Công cụ tuyệt vời cho soạn thảo và biên dịch code

Trong Linux và kể cả Windows hai công cụ rất mạnh cho soạn thảo code như Notepad++ và Sublime Text 2, trong đó Notepad++ là mã nguồn mở mà trước kia tôi rất hay sử dụng, tuy nhiên thời gian gần đây tôi đã chuyển sang sử dụng Sublime Text 2 bởi khả năng tuyệt vời của nó trong cả việc soạn thảo và biên dịch code, đặc biệt là biên dịch code Fortran và C trên Windows.

Một trong lí do khiến tôi chọn Sublime Text 2 bởi thư viện plugin khổng lồ và rất hữu ích của chúng, ở bài viết này tôi không thể nói hết được mọi thứ về Sublime Text 2, nên tôi sẽ tập trung vào một số plugin hữa ích của Sublime Text 2 và cách kết hợp nó với GCC trong CYGWIN để biên dịch ngôn ngữ Fortran và C (hai ngôn ngữ rất phổ biến cho lập trình trong khoa học tính toán).

Plugin hữu ích:

– Package Control

Package Control là một công cụ quản lý các plugin của Sublime Text 2. Nó giúp bạn tìm kiếm, cài đặt, nâng cấp và xóa các plugin. Nó là plugin đầu tiên bạn cần cài đặt

Việc cài đặt Package Control cũng rất đơn giản:

  • Tải gói Package Control.sublime-package
  • Chép Package Control đã tải về vào thư mục Installed Packages tại C:\Sublime Text 2.0.2\Data\Installed Packages (chú ý: tôi sử dụng đường dẫn trong máy tính của tôi, nó có thể khác tuỳ thuộc vào thư mục cài đặt Sublime Text 2).
  • Khởi động lại Sublime Text 2.

Sau khi cài đặt Package Control: Từ menu của Sublime Text 2 chọn Preferences -> Package Control (hoặc tổ hợp phím Ctrl + Shift + p), hộp thoại xuất hiện, chọn Package Control: Installed Packages như dưới hình 1, sau đó một hộp thoại mới xuất hiện bạn có thể gõ tên plugin muốn cài đặt. Ngoài ra còn rất nhiều lựa chọn như Package Control: Remove Packages (xoá các plugin đã cài đặt).

Image
Hình 1: Package Control

– BracketHighlighter

Như cái tên của plugin, nó làm nổi bật các ngoặc đơn và ngoặc kép trong code. Mặc dù là plugin đơn giản, nhưng nó rất hữu ích cho việc soạn thảo code.

– Alignment

Tôi rất thích code được căn chỉnh đẹp, và plugin có thể làm được điều đó. Bạn chỉ cần tô sáng các dòng code cần căn chỉnh và nhấp tổ hợp phím Ctrl + Alt + a.

– SublimeLinter

Giúp bạn phát hiện và làm nổi bật các lỗi trong code, nó hỗ trợ rất nhiều ngôn ngữ khác nhau.

– SublimeCodeIntel

Tôi rất thích plugin này, khi bạn gõ lệnh hay các hàm trong code, nó sẽ tự động phát hiện lệnh hay các hàm đó mà chỉ cần bạn gõ vài kí tự đầu. Điều này rất hữu ích cho người hay quên lệnh như tôi và nó hộ trợ rất nhiều ngôn ngữ, tuy nhiên nó cũng khá nặng và có thể làm thời gian khởi động Sublime Text 2 bị chậm đi.

– MinimalFortran

Vì tôi sử dụng ngôn ngữ Fortran khá nhiều nên nó rất hữu ích, nó giúp làm nổi bật các câu lệnh hay hàm trong Fortran.

– Theme – Reeder

Đây là một giao diện trong rất nhiều giao diện của Sublime Text 2, bạn có thể chọn giao diện bất kỳ mà bạn thích, tôi thì sử dụng giao diện trên vì thấy nó khá hài hoà và nhẹ nhàng và mắt mình dễ chịu khi làm việc với code trong thời gian liên tục.

– Cài đặt người dùng

Từ menu của Sublime Text 2 chọn Preferences -> Setting – Users bạn sao chép đoạn code sau:

{
"color_scheme": "Packages/Theme - Reeder/EarthsongLight.tmTheme",
"font_size": 11.0,
"ignored_packages":
[
"Vintage"
],
"theme": "Reeder.sublime-theme"
}

Ở đây bạn có thể sử dụng đoạn khác của riêng bạn, tôi chỉ chú ý ở phần “Vintage”, nó là chế độ chỉnh sửa trong vi cho Sublime Text 2. Sử dụng chế độ này sẽ rất thuận tiện cho ai quen với sử dụng vi trong Linux. Như đoạn code trên thì chế độ này đang bị tắt, nếu muốn mở chế độ này, bạn tham khảo đoạn code đơn giản ở link sau: http://www.sublimetext.com/docs/3/vintage.html

Chú ý: Có rất nhiều các plugin khác các bạn có thể cài đặt trong Sublime Text 2. Tuỳ thuộc môi trường làm việc của bạn, nếu môi trường lập trình web với các ngôn ngữ PHP hay HTML, bạn sẽ cần thêm những plugin khác hữu ích dàng riêng cho việc soạn thảo các ngôn ngữ như vậy.

Tạo trình biên dịch với GCC:

Vì như tôi nói, tôi làm việc khá nhiều với Fortran hay C. Nếu trong các hệ điều hành Ubuntu hay Redhat thì biên dịch các ngôn ngữ này với GCC là đơn giản. Tuy nhiên gần đây tôi có chuyển sang sử dụng Windows. Việc biên dịch ngôn ngữ sử dụng Visual Studio hay Intel Compiler trong Windows, sẽ tốn rất nhiều tiền vì vấn đề bản quyền. Đó là lý do hợp lý để lựa chọn GCC với CYGWIN vì nó là miễn phí và rất mạnh mẽ.

  • Đầu tiên bạn cần cài đặt CYWIN với gói GCC bao gồm gcc, g++, gfortran
  • Thiết lập biến môi trường trong Windows như sau: Chọn Start -> sau đó nhập “var” trong khung tìm kiếm, nhấn enter -> Edit the system environment variables -> hộp thoại xuất hiện, chọn Environment Variables -> hộp thoại mới xuất hiện, trong khung System variables, chọn Path -> Edit -> hộp thoại mới xuất hiện, trong khung Variables value, thêm đường dẫn C:\cygwin\bin. Chú ý: Trong khung System variables, chọn New -> hộp thoại mới hiện ra, trong khung Variable name nhập CYGWIN và trong khung Variables value nhập nodosfilewarning, điều này để tránh xuất hiện thông báo cảnh báo khi biên dịch Fortran với GCC.
  • Biên dịch: Từ menu của Sublime Text 2 chọn Tools -> Build System -> New Build System…, sau đó thêm các đoạn code sau cho C và Fortran và lưu với tên GCC và gfortran tương ứng (hình 2):

– Ngôn ngữ C (gcc)

{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}", "-lm" , "-Wall"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path",
"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "gcc '${file}' -lm -Wall -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
}
]
}

– Ngôn ngừ Fortran (gfortran)

{
"cmd" : ["gfortran", "$file_name", "-o", "${file_base_name}", "-lm" , "-Wall"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path",
"variants":
[
{
"name": "Run",
"cmd": ["bash", "-c", "gfortran '${file}' -lm -Wall -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
}
]
}
Hình 2: Tạo trình biên dịch trong Sublime Tex 2
Hình 2: Tạo trình biên dịch trong Sublime Tex 2

Chú ý: Các trình biên dịch khác cũng có thể được xây dựng tương tự như trên.
Chúc các bạn có trải nghiệm thú vị với Sublime Text 2

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s