Làm thế nào để chặn mã thay thế trong chế độ trực quan?


26

Tôi có một danh sách các mục mà tôi muốn thay thế hai ký tự đầu tiên:

a) item 1
b) item 2
c) item 3

Cách nhanh nhất để làm điều này là gì:

* item 1
* item 2
* item 3

Tôi có một cách tiếp cận với chế độ trực quan (Ctr-v, jjj, nhưng cần thực hiện hai lệnh thay thế. Iirc, sự thay thế này có thể được thực hiện với 1 lệnh)


1
Giống như .,.+2s/^../*/(hoặc tương đương trong một lựa chọn trực quan)? Tại sao hai lệnh thay thế? 2csẽ thay thế hai nhân vật.
muru

đôi khi chỉ có dòng đầu tiên trong lựa chọn trực quan được thay đổi, lặp lại sau đó với. cho các dòng khác làm rối tung mọi thứ.
đặt ra

2
@poseid bạn có thói quen bức xúc Ctrl-Cthay Esc? Điều này ngăn cản, trong số những thứ khác, những thay đổi được áp dụng cho từng dòng của lựa chọn Khối hình ảnh.
tommcdo

đó có thể là lý do chính cho sự nhầm lẫn! cảm ơn!
đặt ra

Câu trả lời:


26

Lựa chọn khối hình ảnh:

<C-v>
jjl
c*
<Esc>

:normal:

:,+2norm! cE*

Thay thế:

:,+2s/^.\{2}/*

Công thức chấm:

cE*<Esc>
j.
j.

1
Cách tiếp cận điên rồ: sử dụng textobj-word-cột.vim bạn có thể làm ciC*<esc>và được thực hiện. Lưu ý: plugin này là plugin "làm theo ý tôi" vì vậy nó không thành công ở những nơi và cách bất ngờ, nhưng plugin vẫn hữu ích trong một số trường hợp dễ dàng như thế này.
Peter Rincker

thú vị các công thức bình thường và chấm!
đặt ra

3
Lưu ý rằng đối với giải pháp Khối hình ảnh, bạn sẽ chỉ thấy văn bản được gõ trên dòng đầu tiên. Khi bạn nhấn <Esc>, nó sẽ điền vào các dòng còn lại.
tommcdo

Bất kỳ đề nghị cho một cách để nhớ rằng c sẽ thay thế? Giống như cách ctrl + D (sở hữu)
Jordan Mackie

2
@JordanMackie clà để "thay đổi".
romainl

17

Đây là cách hiệu quả hơn để làm điều này:

  1. Có con trỏ trên mục đầu tiên và chữ cái thứ nhất ( 0), nhập chế độ trực quan 'blockwise' Ctrl+ vvà chọn cột đầu tiên của đoạn hiện tại của bạn bằng cách }(nếu danh sách của bạn kết thúc bằng dòng mới), nếu không hãy sử dụng các phương thức khác nhau như phím mũi tên (để di chuyển xung quanh lựa chọn), hoặc tìm kiếm mẫu /c)ở đâu clà yếu tố cuối cùng của bạn).
  2. Di chuyển đến biểu tượng cuối cùng của danh sách của bạn bằng kl(hoặc sử dụng các phím mũi tên ), do đó hai cột được chọn mà bạn muốn thay đổi.
  3. Thay đổi văn bản đã chọn bằng cách nhấn cvà nhập ký hiệu dấu đầu dòng của bạn ( *) và kết thúc bằng cách nhấn Esc.

Hoạt động hiệu quả hơn đặc biệt là trong danh sách dài hơn.

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.