PhpStorm Tips and Tricks
Đây là bài dịch từ bài viết : PhpStorm Tips and Tricks PhpStorm hiện đang là công cụ(IDE) tôi đang sử dụng cho việc viết code, và tôi khá hài lòng vì những gì mà nó mang lại. Lý do là vì các chức năng và tùy chỉnh của chương trình này rất nhiều, cung cấp cho người dùng khả năng tùy biến mạnh mẽ ...
Đây là bài dịch từ bài viết : PhpStorm Tips and Tricks
PhpStorm hiện đang là công cụ(IDE) tôi đang sử dụng cho việc viết code, và tôi khá hài lòng vì những gì mà nó mang lại. Lý do là vì các chức năng và tùy chỉnh của chương trình này rất nhiều, cung cấp cho người dùng khả năng tùy biến mạnh mẽ và hữu ích. Trong khuôn khổ bài viết này, tôi sẽ trình bày một số tips và tricks mà tôi đã đúc kết được sau vài tháng sử dụng, cũng như luồng làm việc (workflow) tôi đã áp dụng cùng với PhpStorm.
Keymap
PhpStorm cung cấp cho bạn khả năng tùy chỉnh lại các tổ hợp phím tắt cho các chức năng trong chương trình, thậm chí cả các chức năng chưa được gán phím tắt. Việc này có nghĩa là bạn có thể điều chỉnh để PhpStorm hoàn toàn tương thích với thói quen sử dụng IDE đã có của mình, kể cả nếu chuyển đến PhpStorm từ các IDE khác, sẽ chỉ mất vài phút cấu hình và bạn sẽ thấy mọi thứ thật "thuận tay vừa mắt".
Chúng ta sẽ ôn lại kỷ niệm một chút, về cái thời mà tôi bắt đầu bước chân vào thế giới lập trình web những năm 2001. Tôi đã sử dụng rất nhiều chương trình soạn thảo code (editor), và Sublime là điểm dừng chân cuối cùng trước khi đến với PhpStorm. Tôi đã sử dụng Sublime quá quen thuộc và thành thục, vì thế tôi đã tùy chỉnh lại PhpStorm để phù hợp với thói quen của mình. Bạn có thể nghĩ rằng "chuyển đổi qua lại như thế sẽt thật tốn thời gian config", tuy nhiên đây là tất cả những phím tắt mà tôi đã sử dụng:
- Command + P - Search toàn bộ
- Command + R - Show các hàm trong file hiện hành
- Alt + Command + P - Switch giữa các Project
- Command + 3 - Bật Terminal có sẵn trong IDE
Không nhiều lắm phải không, và nó khiến tôi cảm thấy thoải mái hơn hẳn.
Preferences (Cấu hình)
Phần Preferences của PhpStorm khá nhiều và đa dạng, bạn có thể tùy chỉnh rất nhiều thứ, tuy không toàn năng nhưng cũng đủ xài. Dưới đây là một số thay đổi mà tôi đã sử dụng:
- Tôi chuyển từ Sublime Text, nên chức năng đầu tiên mà tôi muốn áp dụng đó là việc tự động bao quanh một vùng text được chọn với chỉ một lần nhấn phím nháy đơn hoặc nháy kép. Tùy chỉnh này có thể thiết lập ở phần Preferences -> IDE -> Editor -> Smart Keys -> Surround Seclection on typing quote or brace.
- Thiết lập Preferences -> IDE -> Editor -> Apearance -> Show method separator sẽ hiển thị một đường kẻ ngang phân cách giữa các hàm, việc này khiến chúng nhìn có vẻ thành các block hơn. Tùy chọn này khiến tôi nhớ lại ngày code CodeIgniter với các docblocks.
- Thiết lập Preferences -> IDE -> Editor -> Auto Import. Tôi đánh dấu tất cả các tùy chọn này, và toàn bộ namespace sẽ được chuyển về lệnh use. Ví dụ nếu bạn gõ : Gateway (với điều kiện lớp Gateway nằm trong namespace ShoppingPaymentGateway) và nhấn Enter, câu lệnh sẽ được chuyển thành use ShoppingPaymentGateway và sẽ chỉ còn Gateway ở phần con trỏ của bàn phím. Việc này giúp tôi thấy code trở nên sáng sủa hơn.
- Thiết lập Laravel live template. Koomai hiện đang tiếp tục thêm rất nhiều template có ích, và bạn có thể truy xuất và sử dụng các template code này bất cứ lúc nào với tổ hợp phím Command + J
Lưu ý : Hướng dẫn thiết lập trên có thể đúng với các phiên bản PhpStorm cũ hơn. Với phiên bản PhpStorm mới nhất (2016.1), để tìm các tùy chọn trên, các bạn có thể vào phần File -> Setting để tìm các tùy chọn này (có một khung search cho các bạn sử dụng, chỉ cần gõ đúng tên Setting, PhpStorm sẽ lọc và hiển thị cho bạn, ví dụ bạn có thể gõ Surround selection on typing or brace, tùy chọn cho mục 1 sẽ hiển thị và được highlight)
Cải thiện workflow (Luồng làm việc)
Workflow hiện tại của tôi là mở project, bật terminal tích hợp sẵn lên và gõ lệnh grunt watch. Sau đó là ẩn terminal và bắt đầu code. Tôi sử dụng VCS Operations (version control system operations - đại khái là các thao tác cơ bản với các version control system như git, svn, ... ) sẵn có cùng với các Tasks để cập nhật các issues từ GitHub và Trello. Sau đây là các thao tác cơ bản trong quá trình làm việc. Mở file, tìm kiếm, tìm chỗ sử dụng của hàm và đi đến phần code implement của chúng. Sau đây là danh sách các chức năng tôi dùng nhiều nhất (Bạn có thể xem của mình ở phần Help -> Productivity Guide:
Vậy là đã qua vài tháng sử dụng PhpStorm, tôi cảm thấy mình đã khá quen và sẵn sàng cho mức tiếp theo. Tuy nhiên câu hỏi ở đây là tôi muốn cái gì? Cái gì sẽ giúp cho workflow của tôi trở nên hiệu quả hơn? Tên của các tùy chọn tôi sẽ cần là gì? 90% các trường hợp là PhpStorm sẽ đáp ứng được, nhưng tôi thấy khá là bối rối trong việc tìm kiếm thứ mình cần trong đống documents của PhpStorm.
Vì thế tôi đã quyết định đi hỏi vấn đề này lên Twitter, và tôi đã nhận được rất nhiều phản hồi tích cực và hữu ích. Sau đây là những chia sẻ tuyệt vời nhất :
Nithin Meppurathu
- Chọn một vùng code trong một method và nhấn Alt + Command + M để tạo một hàm mới chứa vùng code đã chọn
- Bạn cũng có thể tạo một interface từ bất kỳ class nào. Chọn Refactor -> Extract -> Interface
Jeffrey Way
Command/Ctrl + Shift + Backspace: tổ hợp phím này sẽ con trỏ bàn phím đến điểm đã edit code lần cuối cùng
Abhimanyu Sharma
- Nhấn Ctrl + Alt + L để format lại code
- Dùng font Source code Pro khiến code hiển thị rất tuyệt.
- Sử dụng Key Promoter plugin sẽ nhắc bạn về các tổ hợp phím tắt.
Ryan
Nhấn phím Shift 2 lần sẽ mở global search. Cực kỳ tiện
Kennon Bickhart
Có một vài thứ tiện đến mức tôi không thể không chia sẻ
- CMD + SHIFT + A - Tìm kiếm Action Nó giống như là phím tắt CMD + SHIFT + P trong Sublime, hiển thị một popup cho phép truy cập các chức năng của IDE (Quick References)
- SHIFT + SHIFT - Search khắp mọi chỗ. Là một phiên bản mạnh hơn của CMD + P trong Sublime.
- Thiết lập code standards trong Preferences -> Code Style. Sau đó trong 1 file, nhấn CMD + OPTION + L (Ctrl + Alt + L) để format toàn bộ file, hoặc vùng code được chọn theo standards đã thiết lập. Nó hoạt động giống như Abacus plugin của Sublime.
- CMD + OPTION + I (Ctrl + Alt + I) tự động căn lề cho code (auto indent)
Gareth Evans
Remote Bash Command là một chức năng rất tuyệt. Tôi đã set up một tập các command sẽ khởi động việc chạy test Behat trên một máy ảo hoặc máy remote của file chức năng đang thao tác với các tham số có thể tự do thêm vào.
Patrick Noonan
Nếu bạn đang dừng con trỏ ở tên hàm hoặc tên class, nhấn Ctrl + B sẽ đưa bạn đến phần định nghĩa hàm hoặc class đó, link
Có rất nhiều tips hữu ích và tôi cảm thấy thật thú vị khi quan sát được workflow của mọi người khác nhau ra sao từ những chia sẻ của họ. Với tôi, việc support PHP không phải là lý do để tôi sử dụng PhpStorm. Mà đó là sự support tuyệt vời với CSS, HTML, Javascript và CoffeeScript. Tôi yêu phần CSS autocomplete, phần hiển thị các style áp dụng cho đối tượng và phần refactoring. Đó là những chức năng mà bạn không thể có được nếu không sử dụng một IDE như PhpStorm.
Annoyances - Phiền toái
Tất nhiên cuộc sống không phải lúc nào cũng màu hồng, và mọi thứ thì không hoàn hảo. Có một vài điều khiến tôi cảm thấy khá phiền phức nhưng không thể thay đổi được trong setting của PhpStrom. Điều mà tôi thấy khó chịu nhất là việc di chuyển lên đầu và cuối file. Trong hầu hết các trình soạn thảo khác, Command/Ctrl + Up và Command/Ctrl + Down sẽ đưa bạn về đầu hoặc cuối file, nhưng PhpStorm thì không thế và tôi không biết làm thế nào để thay đổi nó cả (PhpStorm bản mới nhất hỗ trợ việc này bằng lệnh Command/Ctrl + Home và Command/Ctrl + End).
Một vấn đề mà tôi thường xuyên nghe mọi người phàn nàn là PhpStorm có tốc độ chậm. Lúc đầu tôi nhận ra được thời gian xử lý bị tăng lên một vài mili giây, nhưng không đáng kể so với tiện ích mà nó cung cấp. Giờ thì khi đã sử dụng quen, tôi hầu như không để ý đến sự sụt giảm tốc độ.
Tổng kết
Bạn có thể thấy là tôi đã tìm thấy, sử dụng và hài lòng với PhpStorm. Công ty JetBrains (làm ra PhpStorm) cũng luôn sẵn sàng lắng nghe phản hồi và tích cực nâng cao chất lượng sản phẩm. Điều này quả thật đã cho tôi một sự đảm bảo và an tâm rằng IDE này sẽ không bị bỏ rơi giống như một số editor khác.