2012-09-24 22 views
22

Vimmers biết rằng . có thể lặp lại những thay đổi đơn giản. Tôi đã cố gắng xây dựng một danh sách những gì có thể được lặp lại hay không, nhưng có một danh sách?lệnh dấu chấm có thể lặp lại, chính xác là gì?

Tôi cố gắng để liệt kê những gì tôi biết được lặp lại: họ là tất cả các lệnh bình thường-mode: Việc chèn

  • Text: a, A, i, I, o, thay đổi O
  • Tiêu đề liên quan đến đăng ký : c, C, d, D, p, gp, P, gP, s,.210, x, X
  • Những thay đổi khác văn bản: J, gJ, r, gr, R, gR, gU, gu, gw, gq, g?, ~, g~, <, >, =
  • tương đương của các hoạt động này trong chế độ trực quan.
  • Control-hoạt động: C-A, C-X
  • gi sẽ lặp lại chèn nhưng tại vị trí con trỏ hiện hành, không ở vị trí chèn ngoái. Vì vậy, nó loại công việc.

Nhưng nó không bao gồm:

  • Tất cả các di chuyển và hiển thị các lệnh (quá nhiều để được liệt kê ở đây)
  • Tất cả các lệnh lần (z-lệnh, cũng nhiều)
  • Mark (m)
  • Thay lặp lại (&, g&)
  • Colon hay Lọc lệnh (!, :, Q)
  • Ghi hoặc phát vĩ mô (q hoặc @, sẽ lặp lại thao tác lặp lại cuối cùng được thực hiện khi ghi hoặc phát).
  • Diff đưa và nhận (dp, do)
  • Undo (u, U, C-R)
  • Yanks (y)

Tôi biết repeat plugin tpope rằng có thể có plugin tùy chỉnh đăng ký vào sự lặp lại cơ chế. Nhưng theo mặc định, danh sách trên có tốt không?

+0

tôi sẽ liên doanh để nói nó có thể lặp lại bất cứ điều gì mà 'undo' sẽ lùi lại. Tôi không thể nghĩ ra bất cứ điều gì trên đầu của tôi xung đột với tuyên bố đó (nhưng tôi đã không sử dụng vim trong một thời bây giờ để mọi thứ đang trở nên mờ). Có thể dễ dàng hơn để tìm một danh sách những thứ 'undo' sẽ hoàn tác hơn là tìm danh sách những thứ' .' sẽ lặp lại. –

+0

@RandyMorris "hoàn tác" có thể hoàn tác dòng cmd (ví dụ: s/foo/bar /) thay đổi, nhưng "." không thể lặp lại chúng. – Kent

+0

AFAK, "c, C, ..." có thể được lặp lại bằng cách sử dụng "." –

Trả lời

2

một số kết hợp với v/V có thể được "chấm" lặp lại quá.

ví dụ:

Vgq, v/VU hoặc v/Vũ

4

Tôi tin rằng một sự thay đổi là bất kỳ lệnh đó sẽ thay đổi bộ đệm hiện hành. Lệnh . không bao gồm các lệnh Ex (vì đó là một chế độ khác được gắn vào vi trong lịch sử xa, tôi đoán), và có thể bao gồm tùy chọn yanks.

Vì vậy, đối với danh sách của bạn, :help change.txt, được lọc cho các lệnh Ex, có lẽ là nguồn tốt nhất.

Lưu ý rằng khi không thể áp dụng lệnh thay đổi (tức là tiếng bíp), nó cũng không được đăng ký để lặp lại; việc thực hiện lệnh phải thành công.

+1

Tôi có _feeling_ rằng câu trả lời của bạn là chính xác, trực quan, tuy nhiên nó không phải là vì '.' không lặp lại' & 'cũng không' g & '. – Benoit

+1

'&' và 'g &' tự lặp lại một lệnh (last ': s'), vì vậy tôi đoán đó là lý do để loại trừ chúng. – rburny

2

repeat.vim của Tim Pope có thể làm cho repeat nhiều thứ khác (bao gồm các nội dung như surround.vim và các thứ khác phải có).

Để lặp lại chuyển động, hãy xem ,/; (chuyển tiếp/hướng ngược lại).

Để lặp lại lệnh Ex, @: là một tổ hợp phím tốt

+0

Tôi biết về repeat.vim (nó được đề cập trong câu hỏi). Có, ';,' có thể lặp lại các chuyển động 'fFtT'. Có lẽ cũng đề cập đến 'nN'. – Benoit

+0

@Benoit Oh. Tôi hoàn toàn bỏ qua đề cập đến. Tôi nghĩ rằng tôi đã sử dụng '/ repeat' để quét các đề cập trên toàn bộ trang ... Xin lỗi về điều đó – sehe

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