Có cách nào để tự động áp dụng autopep8 vào một tệp đang được chỉnh sửa trong vim không? Tôi có vimrc sau đây.autopep8 với vim
Cảm ơn bạn trước.
Có cách nào để tự động áp dụng autopep8 vào một tệp đang được chỉnh sửa trong vim không? Tôi có vimrc sau đây.autopep8 với vim
Cảm ơn bạn trước.
Bạn sẽ có thể làm điều gì đó như thế này để chạy các tập tin hiện qua autopep8:
:!autopep8 -i expand("%")
Nếu bạn muốn làm điều này tự động trên ghi cho mỗi file python, bạn có thể thêm video này vào vimrc
của bạn:
if has("autocmd")
autocmd BufWritePost *.py !autopep8 -i expand("%")
endif
"test.py" 12L, 106C được viết; :! autopep8 -i mở rộng ("test.py") và hơn tôi có E855 Autocommands gây ra lệnh để hủy bỏ. Tại sao? – user977828
autopep8 được đưa vào python-mode.
Gọi: PymodeLintAuto hoặc bản đồ nó:
" Automatically fix PEP8 errors in the current buffer:
noremap <F8> :PymodeLintAuto<CR>
Tôi có thể ánh xạ nó để chạy với 'gqq' không? Tôi thấy 'formatprg' với một lệnh bên ngoài như' autopep8' nhưng không chắc chắn nó sẽ hoạt động như thế nào với ': PymodeLintAuto' –
Cách đúng của việc sử dụng autopep8 là dựa vào vim "formatprg" Cài đặt. Vì vậy, bạn thêm dòng dưới đây để vimrc:
au FileType python setlocal formatprg=autopep8\ -
Bây giờ khi bạn chọn dòng trong python và nhấn gq
(lập bản đồ mặc định trừ khi bạn ánh xạ nó). Nó sẽ lọc các dòng thông qua autopep8
và viết phiên bản được định dạng độc đáo tại chỗ.
Cài đặt ở trên cũng làm cho nó hoạt động với các đối tượng vim và chuyển động vim, vì vậy bạn có thể đặt lại một đoạn (các dòng mã python không có dòng trống giữa) sử dụng gqap
.
Để làm toàn bộ tập tin bạn có thể làm gggqG
Các gạch nối '-'. Ở phần cuối của lệnh là cần thiết để làm cho autopep8 đọc các dòng từ tiêu chuẩn trong
+1: Tôi sẽ xem đây là một cách vim. Cảm ơn bạn đã chỉ ra điều này. Tôi không ủng hộ việc tự động áp dụng autope8 vào các tập tin khi viết. Nếu bạn nhấn ZZ, bạn không thấy những gì đang xảy ra. Bạn có thể thêm một git-pre-commit hook chạy pep8 trên sourcefile của bạn và hủy bỏ cam kết nếu vi phạm kiểu đã được phát hiện. [xem ở đây để sử dụng uncrustify] (https://github.com/githubbrowser/Pre-commit-hooks) – Hotschke
Vấn đề với giải pháp này là bạn không thể sử dụng formatprg tiêu chuẩn cho những thứ như tự động tách chuỗi bình luận dài trên dòng. Có cách nào để truy cập chức năng này không? –
Tôi thực sự chỉ phát hiện ra rằng tôi vẫn có thể sử dụng nội trang dựng sẵn bằng lệnh gw –
Plugin không vẫn tồn tại khi câu hỏi đã được gửi, nhưng bây giờ có vim-autopep8.
Tôi không hiểu câu hỏi của bạn. Bạn muốn cài đặt autopep8? Áp dụng các quy tắc python vào một tệp vimrc? – djs
Tôi sẽ cài đặt nó với "easy_install -ZU autopep8 pep8". Tuy nhiên tôi muốn nếu tôi có thể nhấn: w trong Vim và autopep8 sẽ sửa chữa tất cả các vấn đề hoặc có thể nó sẽ có thể chọn một vấn đề trong cửa sổ QuickFix và cháy autopep8 chỉ cho vấn đề này. – user977828