Python dán thụt lề
mấy ngày trước, tôi đã viết bài hướng dẫn cấu hình Emacs, trong bài viết này tôi sẽ giới thiệu một môi trường phát triển đang phát triển Python nữa. That main is Vim. Vim rất phổ biến, nhanh, nhẹ và không bao giờ bị crash. Và nó có thể làm được mọi thứ Show
Có thể cấu hình Vim với người bắt đầu khá khó khăn, tuy nhiên, bạn đừng lo. Trong bài viết này, tôi sẽ chỉ cho bạn cách cấu hình Vim để biến nó thành một môi trường đầy sức mạnh cho việc phát triển Python
Cài đặtBởi vì Vim đã được cài đặt sẵn ở rất nhiều hệ điều hành *nix, nên trước hết, hãy kiểm tra xem nó đã được cài đặt chưa Nếu Vim đã được cài đặt rồi thì lệnh trên sẽ cho kết quả như dưới đây
Bạn cần kiểm tra 2 điểm
Nếu hệ thống của bạn thỏa mãn cả 2 điểm trên, thì bạn đã sẵn sàng để cấu hình Vim. Bạn có thể bỏ qua phần cài đặt/nâng cấp này hệ điều hành XMột cách cài đặt đơn giản khác trên OS X là sử dụng Homebrew
*NIXVới hệ điều hành Debian hoặc Ubuntu, bạn có thể cài đặt Vim bằng lệnh
Với các bản phân phối khác của Linux, bạn có thể tham khảo tài liệu này để biết cách cài đặt Vim trên hệ thống của mình các cửa sổCó rất nhiều cách để cài đặt Vim trên Windows, cách dễ dàng nhất là bạn hãy đọc và làm theo tài liệu của Vim Kiểm tra việc cài đặtBạn hãy chắc chắn rằng mình đã cài đặt Vim từ phiên bản 7. 3 trở nên, và nó có hỗ trợ Python. Bạn có thể chạy lệnh 5 để kiểm tra thêm lần nữa. Nếu bạn muốn kiểm tra phiên bản Python được Vim sử dụng, bạn có thể chạy lệnh 6 trong Vim
Lệnh trên sẽ đưa ra phiên bản hiện tại của Python trên hệ thống của bạn. Nếu có lỗi xảy ra, nghĩa là Vim của bạn không hỗ trợ Python, bạn cần cài đặt lại nó Với Vim đã được cài đặt xong, phần tiếp theo, tôi sẽ trình bày cách biến Vim để biến nó thành môi trường phát triển Python Cập nhật Nếu bạn muốn phát triển bằng Python 3 thì Vim của bạn nên hỗ trợ Python 3 ( 7). Những cách cài đặt trên sẽ cài đặt phiên bản Vim hỗ trợ Python 2 ( 4) mà không hỗ trợ Python 3 (_______19). Vì vậy, bạn cần cài đặt Vim từ mã nguồn của nó để có thể làm việc với Python 3 một cách tốt nhấtCách cài đặt của tôi như sau (Với hệ điều hành Ubuntu)
0
1
2Config on sẽ giúp bạn cài đặt một phiên bản Vim khá đầy đủ tính năng, hỗ trợ Python 3, clipboard và một phiên bản Vim đồ họa ( 00). Phiên bản Vim này sẽ được cài đặt vào thư mục 01 nên bạn hoàn toàn có thể sử dụng nó song song với các phiên bản Vim khác được cài đặt thông qua các gói quản lý gói. You can alias as after to use 2 phiên bản Vim một cách nhanh chóngVới bí danh trên, hệ thống của bạn sẽ ra lệnh 02 để làm việc với Python 3 và 03 để làm việc với Python 2Phần mở rộng VimVim có thể làm rất nhiều việc mà nhà phát triển cần. Tuy nhiên, Vim cũng có khả năng mở rộng rất linh hoạt, và nó cũng có nhiều tiện ích mở rộng cho Vim để biến nó trở thành một IDE hiện đại. Nhưng trước tiên, bạn cần một tiện ích mở rộng quản lý tốt
vó ngựaVim có rất nhiều trình quản lý tiện ích mở rộng khác nhau, nhưng tôi khuyên bạn nên sử dụng Vundle. Vundle của Vim cũng giống như pip của Python. Nó làm cho việc cài đặt và cập nhật các tiện ích mở rộng trở nên rất đơn giản To install Vundle, you use after 7Lệnh trên sẽ tải xuống Vundle và lưu nó vào thư mục chứa plugin của Vim. Sau khi cài đặt Vundle, bạn có thể quản lý các extension từ trong file config là 04Thêm tệp 04 vào thư mục HOME của bạnBây giờ, bạn cần cấu hình Vundle trong tệp 04 bằng cách thêm vào các nội dung sau đó 1Trên đây, bạn đã cấu hình để Vim sử dụng Vundle. Từ bây giờ, mỗi lần thêm plugin, nếu bạn muốn cài đặt, bạn chỉ cần mở Vim và chạy lệnh Lệnh trên sẽ chỉ dẫn Vudle thực hiện công việc của một tiện ích mở rộng quản lý trình quản lý - tải xuống các plugin và cài đặt/cập nhật chúng cho bạn
Biến Vim thành IDEChúng ta khó có thể liệt kê tất cả các tính năng của Vim. Ở trong nội dung bài viết này, chúng ta sẽ kể ra một số tính năng quan trọng đối với những người phát triển Python Un use mouseMột tính năng quan trọng nhất của Vim là nó không cần đến chuột (ngoại trừ một vài biến thể có giao diện đồ họa như gvim hay macvim). Khi mới bắt đầu, công việc này có vẻ khó chịu, nhưng sau khi làm quen rồi bạn sẽ thấy hữu ích. Không sử dụng chuột khiến bạn không bị nhảy nhầm con trỏ ra vị trí khác nếu vô tình bạn chạm tay vào bàn phím cảm ứng. Hãy nghiên cứu một số tổ hợp phím bạn sẽ thấy việc sử dụng Vim cũng rất thú vị Partition screenOpen a file with 07 command you will chia màn hình Vim theo chiều thẳng đứng (có nghĩa là tệp mới sẽ được mở bên trên tệp cũ). Hoặc dùng lệnh đảo ngược 08 bạn sẽ chia màn hình theo chiều ngang (có nghĩa là tệp mới được mở tệp cũ bên trái)Bạn có thể chia các màn hình lồng nhau, chia màn hình ngang trong màn hình đã được chia dọc, theo ý muốn của bạn. Bởi vì thông thường các nhà phát triển vẫn cần đọc nhiều tệp một lúc, nên tính năng thực sự rất hữu ích Mẹo chuyên nghiệp. Bạn có thể sử dụng phím 09 để Vim đưa ra gợi ý cho tệp sau khi nhập lệnh 07Mẹo chuyên nghiệp. Bạn có thể chỉ định các vùng màn hình khác nhau để chia bằng cách bổ sung các cấu hình sau vào tệp 04 7Mẹo chuyên nghiệp. Nếu bạn muốn chuyển đổi giữa các màn hình đã được chia mà không có chuột. Rất đơn giản, bạn có thể thêm các cấu hình sau vào tệp 04 và bạn có thể di chuyển qua lại các cửa sổ chỉ bằng 1 tổ hợp phím 0Configure on for you of the following keys keys
Nói ngắn gọn lại, bạn có thể sử dụng phím 17 và các phím di chuyển của Vim để di chuyển qua lại các cửa sổ18 là gì? . ĐệmVim can open many tab to open other file nhau. Nhưng thông thường, người ta thường sử dụng bộ đệm và phân chia màn hình. Bạn có thể hiểu bộ đệm là các tệp được mở bởi Vim. Vim cho phép chúng ta dễ dàng truy cập các bộ đệm, bằng lệnh 24 để chuyển đổi giữa các bộ đệm (tính năng tự động hoàn thành hoạt động cũng có ở đây). Bạn cũng có thể sử dụng lệnh 25 để đưa ra danh sách tất cả các bộ đệmMẹo chuyên nghiệp. Kết thúc lệnh 25, Vim thông báo rằng 27. Thay vì nhấn ENTER để kết thúc, bạn có thể gõ lệnh 24 và chọn bộ đệm ngay khi danh sách vẫn đang được hiển thị. Điều này giúp bạn giảm đi một thao tác và cũng giúp bạn không cần phải nhớ hết hiệu của các vùng đệmThu gọn codePhần lớn các IDE hiện đại đều cung cấp tính năng thu gọn mã (có thể gọi là thu gọn hoặc gấp lại). Sau khi thu gọn, các lớp và phương thức chỉ được hiển thị trên dòng đầu tiên thay vì hiển thị tất cả mã. Bạn có thể mở riêng 1 phương thức để đọc cho dễ nhìn thay vì tất cả các phương thức đều được hiển thị hết ra Bạn cũng có thể sử dụng chức năng này trong Vim với cấu hình sau 1Cấu hình đang hoạt động tốt, tuy nhiên bạn phải nhập 29 để thu gọn (hoặc để mở ra). Bạn có thể sử dụng các phím cách để thực hiện công việc này, bằng cách cấu hình nó trong tệp 04 2Bây giờ, bạn có thể dễ dàng thu gọn, mở đoạn mã bạn muốn Lệnh đầu tiên ở cấu hình trên, 71 sẽ thu gọn mã của bạn dựa vào thụt lề. Thông thường, cấu hình này sẽ thu gọn mã hơi quá mức cần thiết một chút. Nhưng không sao, có một số tiện ích mở rộng có thể cải thiện điều đó. Trong các tiện ích mở rộng đó, tôi khuyên bạn nên sử dụng SimpylFold. Cài đặt nó rất đơn giản với Vundle bằng cách thêm vào tệp 04 3
Mẹo chuyên nghiệp. Nếu bạn muốn xem docstrings của code đã thu gọn? 4Indent cho PythonMột điều hiển nhiên là việc thụt lề chính là rất quan trọng với những ngôn ngữ như Python. Ngoài ra, việc thu gọn mã cũng dựa trên thụt lề nên bạn muốn thụt lề của mình thật chính xác. Về công việc này, Vim có vẻ hơi thiếu sót một chút vì không hỗ trợ việc thụt lề tự động sau các hàm khai báo,. Có 2 việc nên làm có liên quan tới việc thụt lề này là
PEP8Để hỗ trợ công việc thụt lề đúng theo PEP8, bạn thêm các cấu hình sau vào tệp 04 5With on config, it support you a number of job as. sử dụng 4 dấu cách mỗi khi bạn nhập Tab, đảm bảo độ dài mỗi dòng dưới 80 ký tự, lưu tệp với định dạng unix (sử dụng 75 làm dấu xuống dòng) nên bạn sẽ không gặp các vấn đề về hiển thị khi sử dụng Và nếu bạn muốn phát triển cả những ngôn ngữ khác nữa, bạn có thể sử dụng thêm lệnh 76 cho các loại tệp khác nhau 6Bằng cách tương tự, bạn có thể cấu hình khác nhau cho các ngôn ngữ lập trình khác nhau. Vim cũng có một plugin tên là ftypes cho phép bạn lưu cấu hình cho các ngôn ngữ khác nhau ở các tệp riêng biệt. You can could use it if like thụt lề tự độngThụt lề tự động có thể sẽ giúp ích cho bạn trong rất nhiều trường hợp, ví dụ như trường hợp khai báo hàm quá dài và phải xuống dòng. Tuy nhiên, không phải lúc nào nó cũng thụt lề đúng như bạn muốn, nhất là khi chúng ta phải tuân theo tiêu chuẩn PEP8. To support this job, we will use plugin indentpython. vim 7Đánh dấu cách thừaChúng ta cũng cần tránh các dấu cách không cần thiết (nhất là các dấu cuối dòng). Chúng ta có thể cấu hình Vim để đánh các dấu cách không cần thiết cho chúng ta để chúng ta có thể dễ dàng nhận ra và xóa chúng đi 8Với cấu hình trên, các dấu cách thừa sẽ bị đánh dấu là "xấu" và thường được hiển thị màu đỏ Hỗ trợ UTF8Trong phần lớn các trường hợp, bạn phải sử dụng UTF8 khi làm việc với Python, tốt nhất là khi bạn làm việc với Python 3. You can configure to Vim know and support you by after line Tự động hoàn thànhTheo tôi, plugin tốt nhất để hỗ trợ auto-complete cho Python là YouCompleteMe. Bạn có thể cài đặt nó thông qua Vundle 9Về bản chất, YouCompleteMe sử dụng nhiều công cụ khác nhau (bao gồm cả Jedi cho Python), và nó cũng cần một số thư việc C được cài đặt sẵn trên máy của bạn để hoạt động. Nó có một hướng dẫn cài đặt rất đầy đủ và chi tiết. Bạn hãy tham khảo và làm theo hướng dẫn Nó hoạt động rất tốt, tuy nhiên bạn nên thêm những cấu hình sau để tùy biến nó 0Trong 2 dòng trên, dòng thứ nhất để đảm bảo cửa sổ của biến tự động hoàn tất bị mất sau khi bạn đã hoàn tất, và dòng thứ hai định nghĩa một phím tắt để bạn đọc hướng dẫn
Cập nhật YouCompleteMe hiện chưa hỗ trợ Python 3 nên nếu muốn tính năng tự động hoàn thành với Python 3, jedi-vim là một plugin khá tốt. Settings jedi-vim with after config 1You could also need YouCompleteMe with other language. Bạn có thể ánh xạ các phím để có thể bật, tắt YouCompleteMe một cách nhanh chóng với cấu hình sau 2Hỗ trợ môi trường ảo (virtualenv)Là một người phát triển Python, chắc chắn rằng bạn sẽ thường xuyên làm việc với virtualenv. Tuy nhiên, có một vấn đề với Vim là nó mặc định không biết gì về virtualenv, do đó bạn cần cấu hình để Vim biết và YouCompleteMe sử dụng virtualenv bằng cách thêm những cấu hình sau vào tệp 04 3Cấu hình trên sẽ xác định xem bạn có đang sử dụng virtualenv hay không, sau đó nó sẽ cấu hình lại hệ thống của bạn sao cho YouCompleteMe có thể tìm thấy các gói trên virtualenv này Check tra/highlight cú phápBạn có thể cấu hình Vim kiểm tra cú pháp cho bạn mỗi khi lưu tệp với plugin syntastic 4Bạn cũng có thể thêm kiểm tra PEP8 có thủ thuật hay không với plugin sau Cuối cùng, bạn đánh dấu mã để trông nó đẹp hơn 5Bảng màuPhối màu là tùy biến giao diện của Vim khiến nó trở nên lung linh hơn. Bạn có thể tham khảo bảng phối màu 2 được năng lượng mặt trời cho Vim với GUI và Zenburn cho Vim trên dòng lệnh giao diện 6Bạn cần thêm một chút cấu hình ở đây để sử dụng bảng màu cho tùy chọn Vim vào môi trường mà nó đang chạy 7Lược đồ năng lượng mặt trời có 2 chế độ màu nền sáng và tối. Bạn có thể chuyển đổi qua lại giữa 2 chế độ này rất đơn giản (bằng cách ấn phím 11) với cấu hình sauBrowse file and directoryNếu bạn muốn xem cấu trúc các tệp và thư mục của dự án, plugin NERDTree chính là thứ bạn cần 8Nếu bạn sử dụng các tab, bạn có thể cần thêm vim-nerdtree-tabs 9Bạn có thể bỏ qua các tệp 12 trong cửa sổ NERDTree bằng cấu hình sau 0siêu tìm kiếmNếu bạn muốn tìm kiếm mọi thứ trong Vim, bạn có thể sử dụng ctrlP Plugin cho phép Vim hoạt động như trình soạn thảo hiện đại, chỉ cần nhấn 13 là bạn có thể tìm kiếm tất cả mọi thứ. Không chỉ tìm kiếm tệp tìm kiếm, nó có thể tìm kiếm các thẻ tìm kiếm, bạn có thể tham khảo qua video YouTubeĐánh số dòngBạn có thể bật dòng đánh số chế độ với cấu hình Tích hợp gitNếu bạn muốn sử dụng một số lệnh git cơ bản mà không cần phải thoát ra bên ngoài Vim, bạn có thể sử dụng plugin vim-fugitive 1Bạn có thể nhìn thấy ví dụ sử dụng thực tế của nó ở Vimcasts Đường dây điệnPowerline là trạng thái thanh hiển thị cho bạn một số thông tin như virtualenv hiện tại, nhánh git, tệp đang được thao tác, v. v Powerline được viết bằng Python, và nó hỗ trợ rất nhiều môi trường khác nhau như zsh, bash, tmux, IPython 2Bạn có thể tham khảo tài liệu của nó để biết cấu hình và tùy chọn Cập nhật Powerline sử dụng Python trong mã nguồn của nó để có thể hiển thị các thông tin. Tôi đã tìm thấy 1 plugin khác là vim-airline cũng hiển thị các thông tin tương tự powerline nhưng nó hoàn toàn sử dụng vimscript bảng tạmVim thường sử dụng clipboard của chính nó và bỏ qua clipboard của hệ thống. Nhưng nhiều khi bạn muốn sử dụng những dữ liệu bị cắt, sao chép và dán từ những ứng dụng khác không phải là Vim. Nếu Vim của bạn hỗ trợ clipboard ( 14) thì bạn có thể truy cập clipboard của hệ thống với cấu hình sauPhiên bản Vim gần đây đã hỗ trợ kiểm tra chính tả. Tuy nhiên, mặc định Vim chỉ có kiểm tra chính tả tiếng Anh. Nếu muốn kiểm tra chính tả với các ngôn ngữ, chúng tôi phải có tệp mô tả ( 15) thì Vim mới có thể kiểm tra chúng tôiMặc dù đã có thêm Hỗ trợ cho một số ngôn ngữ khác tuy nhiên ngôn ngữ tiếng Việt vẫn chưa có trong danh sách trên. Thật có thể, Vim có công cụ cho phép chúng ta tự tạo tệp 15 từ các từ điển tệp (lệnh 17)Tệp từ điển cũng không khó tìm kiếm, tôi sử dụng tệp từ điển từ dự án Chromium, đó là tệp vi_VN. aff và file vi_VN. dic Với 2 tệp trên, chúng ta có thể tạo tệp 15 bằng cách mở Vim và thực thi lệnhVim will based on content 2 file 19 and 70 to create ra file 71. Công việc của bạn là sao chép tập tin này vào thư mục 72 để sử dụng sau nàyĐã có tệp 15, chúng ta chỉ cần cấu hình để vim kiểm tra chính tả cho chúng ta 3Một số lệnh thông báo trong công việc kiểm tra chính tả
Vim trong vỏCuối cùng, khi bạn đã thành thạo Vim và các lệnh của nó rồi, thì bạn sẽ thấy mình muốn mình thao tác với mọi thứ giống như thao tác với Vim. Phần lớn các shell đều có chế độ VI, bạn có thể bật nó lên bằng cách thêm cấu hình sau vào tệp 79Bây giờ, bạn không chỉ có thể sử dụng các tổ hợp phím của Vim trong shell mà bạn còn có thể sử dụng chúng trong trình thông dịch lệnh Python và các công cụ khác có sử dụng GNU Readline (phần lớn shell của cơ sở . Giờ đây, bạn đã có Vim ở mọi nơi Kết luậnTrên đây là các cấu hình để biến Vim thành IDE (ít nhất là cho Python). Có hàng trăm hàng giải nén extension khác nhau dành cho Vim mà bạn có thể sử dụng, cũng như có rất nhiều lựa chọn khác nhau để thay thế những extension được giới thiệu trong bài viết này. Bạn có thể lựa chọn và cấu hình Vim theo ý mình. Đây là cấu hình Vim của tôi, bạn có thể tham khảo nó |