2011-08-11 31 views
16

tôi đang tìm kiếm một cách nhanh chóng để AutoFormat/khá-in JSON trong Vim ngày khác và tìm thấy lệnh nhỏ tuyệt vời này trên Stack   Overflow: :%!python -m json.toolDanh sách các lệnh Python hữu ích cho Vim?

Đó gửi cho tôi trên một tìm kiếm cho một danh sách các công cụ Python khác để in các tệp web phổ biến, nhưng tôi không thể tìm thấy nhiều. Có một tài nguyên/danh sách các công cụ Python tốt mà họ thấy đặc biệt hữu ích để làm sạch các công cụ web được định dạng kém bên trong Vim (ví dụ: HTML, XML, JavaScript, v.v.) không?

+0

rất tuyệt, và tôi hy vọng sẽ thấy nhiều hơn trong số này - cách tuyệt vời để khám phá các tính năng. – sa125

+1

Điều này đang thu hút cuộc thảo luận mở rộng và về biểu mẫu "Tôi sử dụng cái này, bạn sử dụng cái gì?". [Xem Câu hỏi thường gặp về lý do tại sao câu hỏi này không nằm trong chủ đề] (http://stackoverflow.com/faq#dontask). Có thể được okay w/cờ wiki cộng đồng kiểm tra. –

+0

@Merlyn Tôi hiểu ý của bạn, nhưng ý định của tôi thực sự không phải là bắt đầu một danh sách bài đăng với các lệnh riêng lẻ mà chỉ cần tìm một liên kết đến một tài nguyên hoặc wiki đã có: ví dụ "http: //docs.python .org/cool-pretty-print-goodness.html ". Tôi mới vào Vim, chuyển đổi từ TextMate, và khi tôi tìm thấy công cụ JSON Python tôi đã ngứa nhiều hơn nhưng không thể tìm thấy một nguồn tài nguyên thích hợp với nhiều hơn nữa. – johnmdonahue

Trả lời

5

Python

Bạn chỉ cần tìm kiếm một nguồn lực cho Python một lớp lót? Bạn có thể duyệt qua the Python standard library documentation để tìm thêm cảm hứng.

Hoặc đơn giản là google "python one-liners json.tool" để tìm tài nguyên bổ sung. Ví dụ, bài đăng trên Reddit này: Suggestion for a Python blogger: figure out what what all the stdlib main functionality is, and document it

dòng lệnh

Vim hỗ trợ nhiều hơn chỉ là Python (ví dụ như HTML Tidy Keith gợi ý). Bất kỳ công cụ nào có thể chấp nhận đầu vào đường ống/tiêu chuẩn sẽ tích hợp tốt với Vim.

Lệnh % chỉ chọn phạm vi chứa toàn bộ tệp và ! bộ lọc trải rộng qua chương trình bên ngoài.

Xem :help :%:help :!

+0

Hoàn hảo. Cảm ơn. Tôi mới làm quen với Vim và chưa chơi với Python vì vậy tôi vẫn đang cố gắng mang vòng bi của mình nhưng có vẻ như tôi chỉ cần chơi với các tiện ích khác nhau - Python hay cách khác - và chỉ tìm những thứ phù hợp nhất vào quy trình làm việc của tôi. Cảm ơn các liên kết, đó là chính xác những gì tôi cần - chỉ là một khởi đầu cho một số công cụ hữu ích. – johnmdonahue

2

Vim có lệnh để làm điều đó, = (bằng nhau), như trong ggvG= sẽ kết thúc lại toàn bộ tệp. Hãy thử :help = để biết thêm thông tin về cách sử dụng các chức năng và chương trình bên ngoài với =. Cấu hình mặc định sử dụng quy tắc thụt lề nội bộ hoạt động cho hầu hết các loại tệp.

+0

= G hoạt động tốt cho HTML nhưng đối với Python, tôi có thể thấy nó phá vỡ logic bằng cách kết hợp nếu khối với phần còn lại của hàm vv. Tôi thích tuyến autopep8 cho việc này. – Nishant

5

Đối với các tệp XHTML và XML bạn có thể sử dụng gọn gàng.

:%!tidy -i -asxhtml -utf8 

:`<,`>!tidy -i -xml -utf8 

Điều cuối cùng hoạt động trên các lựa chọn trực quan.

+0

Điều này có vẻ đầy hứa hẹn! Có các cờ khác có sẵn cho lệnh gọn gàng không? ví dụ. -javascript, -php, -ruby etc? – johnmdonahue

+0

@johnmdonahue: Nó được gọi là HTML gọn gàng (gọn gàng cho ngắn). Nó dành cho HTML và bây giờ là tài liệu XML. http://tidy.sourceforge.net/#docs –

+0

@Keith Right! Gotcha. Tôi đã không chắc chắn nếu có một mở rộng gọn gàng/khá-in cho langs khác là tốt. Có vẻ như tôi chỉ cần lắp ráp một bộ công cụ cho bất kỳ ngôn ngữ nào tôi cần để làm việc. Vẫn còn nhận được vùng đất Vim ở đây. Cảm ơn đã giúp đỡ. – johnmdonahue

0

!autopep8 -i % dường như làm việc tốt trong vim. Công tắc -i là ghi đè lên tệp hiện có tại chỗ. Sử dụng more @ autopep8 --help.

Có một plugin vim cho điều này nếu bạn thực sự đang nghĩ đến việc trở thành người dùng có quyền lực. Bên ngoài của vim bạn có thể kiểm tra nó với autopep8 -diff {filename} or autopep8 {filename}.

0

Có vô số công cụ tốt mà có thể chuyển đổi văn bản giữa hai định dạng:

  1. mệnh: cho dòng gói cứng.
  2. pandoc: cho HTML, LaTeX, đầu tiên, và Markdown
  3. autopep8: cho phân tích mã Python vào một AST và nhổ ra như pep8 tuân thủ.

    ...

Vim được thiết kế để tận dụng các tiện ích như vậy bởi cài đặt formatprg mạnh mẽ. Điều đó theo mặc định được ánh xạ tới toán tử gq. Nó hoạt động tốt với chuyển động Vim, các đối tượng văn bản Vim, lựa chọn vv

Ví dụ, tôi sử dụng các thiết lập bên dưới cho vào file Python tôi

au FileType python setlocal formatprg=autopep8\ --indent-size\ 0\ - 

John MacFarlne có a good article về việc tạo ra một kịch bản chuyên ngành sử dụng pandoc mà bạn có thể dính vào vimrc của bạn.

Các vấn đề liên quan