Làm thế nào để sửa đổi khối được chọn trực quan bằng lệnh bên ngoài?


9

Tôi có một tập tin được tạo thành từ hai phần dọc. Ở phía bên trái, dữ liệu đã được định dạng và tôi không muốn thay đổi nó. Tôi chỉ muốn định dạng dữ liệu ở phía bên phải. Nói rằng tôi có một tập tin với các dòng như

foo=bar baz     # Neato       Junk
quux=xyzzy      # Bilbo Baggins Ring

với nhiều dòng hơn như thế. Tôi chỉ muốn sửa đổi văn bản ở bên phải ký tự '#'. Tôi đã chọn văn bản tôi muốn với các biểu thức sau:

gg
/#
ctrl-v
G
$

nhưng nếu sau đó tôi cố gắng sửa đổi nó (giả sử với :'<,'>!column -t), thì nó thực sự sửa đổi toàn bộ mỗi dòng. Biểu thức chính xác được sử dụng để chỉ sửa đổi các phần được chọn trực quan là gì?


2
Bạn có thể thử plugin vis từ Dr. Chip hoặc plugin NrrwRgn của tôi . Cả hai nên xử lý nó tốt.
Christian Brabandt

Câu trả lời:


6

Bạn cũng có thể thử:

gg
^V
G
t#
d
:%!column -t
gg
P

Từ :h :visual_example:

Hiện tại lệnh ":" chỉ hoạt động trên toàn bộ dòng. Khi bạn chọn một phần của một dòng, thực hiện một cái gì đó như ":! Date" sẽ thay thế toàn bộ dòng. Nếu bạn muốn chỉ một phần của dòng được thay thế, bạn sẽ phải tạo một ánh xạ cho nó. Trong bản phát hành trong tương lai ":" có thể hoạt động trên một phần dòng.

Xem thêm :h visual-operatorsđể biết chi tiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.