2010-05-27 14 views
7

Bối cảnh:Vim từng bước một: Làm thế nào để bạn xếp hàng văn bản tùy ý bằng dấu phân cách tùy ý?

Có rất nhiều bài hướng dẫn tuyệt vời và "thủ thuật" trang cho Vim, nhưng có một điều đó là rất khó khăn là tìm cụ hướng dẫn về cách làm một số điều độc đoán rằng người ta có thể dễ dàng làm trong IDE soạn thảo văn bản quen thuộc của riêng mình. Vì vậy, tôi yêu cầu hướng dẫn từng bước về cách bạn sẽ làm điều gì đó trong Vim mà tôi đã biết cách làm trong các trình soạn thảo văn bản khác. Tôi thích Vim và sự trợ giúp tích hợp tuyệt vời và nhiều hướng dẫn trực tuyến, nhưng đôi khi một con người phải phá vỡ và hỏi một người khác.

Câu hỏi:

Giả sử tôi có đoạn mã sau vào tập tin của tôi, làm sao tôi có thể sử dụng Vim để có được từ trước, để SAU?

 
    BEFORE: 
    Lorem ipsum dolor | sit amet, consectetur | adipisicing elit, 
    sed do eiusmod | tempor incididunt | ut 
    labore et | dolore magna aliqua. | Ut enim ad minim veniam, 
    quis nostrud | exercitation ullamco | laboris 
    nisi ut | aliquip ex ea commodo | consequat. Duis aute irure 

    AFTER: 
    Lorem ipsum dolor | sit amet, consectetur | adipisicing elit,   
    sed do eiusmod  | tempor incididunt  | ut       
    labore et   | dolore magna aliqua. | Ut enim ad minim veniam, 
    quis nostrud  | exercitation ullamco | laboris     
    nisi ut   | aliquip ex ea commodo | consequat. Duis aute irure 

Ghi chú:

  • Nó sẽ được tốt đẹp để làm điều này dựa trên bất kỳ dấu phân cách tùy ý, không chỉ là ống nhân vật.

  • Nếu bạn chưa tìm thấy một cách để làm điều đó, nhưng bạn biết về một plug-in, giúp, nhưng sở thích đi cho những người có một giải pháp làm việc mà họ đã sử dụng trước

+2

Tôi không sử dụng, nhưng những gì bạn đang tìm kiếm là plugin [align.vim] (http://www.vim.org/scripts/script.php?script_id=294). –

Trả lời

13

Nếu bạn sử dụng các plugin Align, bạn có thể chỉ đơn giản là:

  1. Nhìn bề ngoài chọn văn bản bằng V
  2. Loại :Align |

đâu | là bất kỳ delimiter

HOẶC

  1. Nhìn bề ngoài chọn văn bản bằng V
  2. Loại \t|

Đối với một | tắt cài sẵn.

3

Nó không có viên đạn ma thuật, và nếu bạn làm điều này rất nhiều, tôi hy vọng bạn sẽ tìm thấy/tạo plugin, nhưng các bước này hoạt động, không yêu cầu bất cứ thứ gì được cài đặt đặc biệt, và vẫn tốt để học vì chúng tổng quát cho một toàn bộ phạm vi nhiệm vụ.

  1. :set noet để đảm bảo bạn không mở rộng các tab vào không gian.
  2. :set ts=25 để đặt kích thước ngăn chặn tab lớn đẹp.
  3. :%s/\w*|\w*/\t|\t/g để thêm một tab duy nhất quanh các đường ống thay vì khoảng cách tùy ý.
  4. :set et để làm cho các tab chuyển đổi trở lại khoảng trắng khi chúng tôi
  5. :retab để chuyển đổi chúng.
  6. Tại thời điểm này, mọi thứ được xếp hàng độc đáo, nhưng có thể có khoảng cách quá mức. Vì vậy, sử dụng chế độ chặn hình ảnh (Ctrl + v) để dọn dẹp nội dung.

Tôi sử dụng kết hợp những thứ như thế này thường xuyên, cho một loạt tác vụ thao tác văn bản. Chế độ khối hình ảnh là cực kỳ hữu ích và tôi chưa thấy nhiều trình chỉnh sửa khác có thứ gì đó có thể so sánh được. Xem thêm :help blockwise-examples.

2

Damian Conway có một loạt bài viết về Vim tại IBM Developer Works. Cái này:

http://www.ibm.com/developerworks/linux/library/l-vim-script-2/index.html

cho thấy làm thế nào để tạo một hàm để dòng lên các toán tử gán. Trong phần có tên là Chức năng giúp bạn mã. Tôi nghĩ bạn có thể khái quát hóa nó theo nhu cầu của bạn. Hoặc sử dụng plugin Align. Đôi khi tôi bị xé rách giữa việc viết công cụ của riêng mình, từ đó tôi có thể học được điều gì đó, và lấy công cụ của người khác, công cụ này thường tốt hơn công cụ của tôi, và cho phép tôi quay trở lại làm việc nhanh hơn.

Nhân tiện, toàn bộ chuỗi là xuất sắc, và còn nhiều thứ nữa. Đoạn cuối cùng của bài viết cuối cùng cho biết:

Vì vậy, trong phần tiếp theo của loạt bài này, chúng tôi sẽ khám phá kiến ​​trúc plug-in đơn giản của Vim, cho phép bạn phân tích các phần của .vimrc và tách riêng chúng. mô-đun. Chúng ta sẽ xem xét cách mà hệ thống trình cắm thêm hoạt động bằng cách phát triển một mô-đun độc lập giúp cải thiện một số sự kinh hoàng khi làm việc với XML.

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