Vim: chèn dòng trống phía trên dòng hiện tại (không mở, tức là không vào chế độ Chèn)


21

Có cách nào để chèn một dòng mới phía trên dòng điện, mà không cần mở dòng (vì vậy mà không cần vào chế độ Chèn)? Đó là, giống như "O", nhưng không mở.


2
"Mở một dòng" có nghĩa là gì?
Matteo Riva

"mở một dòng" có nghĩa là chuyển từ chế độ bình thường sang chế độ chèn, đó là những gì xảy ra khi bạn nhấn "O" (oh).
tmadsen

Câu trả lời:


9

Tôi sử dụng plugin của Tim Pope chưa từng thấy có lệnh đặc biệt cho mục đích này:

[<space>

Và nếu bạn muốn thêm một khoảng trắng sau dòng bạn đang bật:

]<space>


29

Định nghĩa của yêu cầu của bạn là O.

Theo logic khi chèn một dòng mới ở trên sẽ là O.

Để chèn trước con trỏ: i
After: a
Before the line (home): I
Nối vào cuối dòng:A

Gần nhất tôi nghĩ bạn sẽ đến là Isẽ đặt con trỏ ở đầu dòng.


Có lẽ tôi đã không rõ ràng. Kịch bản là thế này: Tôi đang ở chế độ bình thường và muốn chèn một dòng trống phía trên dòng tôi hiện đang bật, trong khi vẫn ở chế độ bình thường. Nhấn "O" sẽ đặt tôi ở chế độ chèn. Có lẽ không có cách nào để làm điều đó và điều đó ổn thôi, cứ nghĩ tôi sẽ hỏi :)
tmadsen

3
Chỉ cần ánh xạ nó,m`O+Esc`
Josh K

1
Ý tưởng tốt, đã không xem xét điều đó. Đã làm: noremap <leader> O O <ESC>
tmadsen

2tmadsen: Bạn có thể ánh xạ <yourkey> O <ESC>
Dzung Nguyen

9
:h append()

Nó sẽ không di chuyển con trỏ, nó sẽ cho phép bạn chèn bao nhiêu dòng (trống hay không) như bạn muốn và nó sẽ không sửa đổi dấu vị trí trước đó.

call append(line('.')-1, '')

yah, đó là +1 gọn gàng! / tôi thay đổi vimrc của anh ấy
akira

Vâng, nó có một vài lợi thế khi nói đến kịch bản. Đó là một chút quá mức để gõ khác.
Luc Hermitte

+1 cho một giải pháp hoạt động bất kể người ta đã đặt như thế nàoformatoptions
Micah Smith

5

Bạn có thể ánh xạ bất kỳ khóa hoặc chuỗi phím nào bạn muốn

m`O<ESC>``

cái này sẽ chèn một dòng trống phía trên dòng hiện tại giữ bạn ở chế độ bình thường và không thay đổi vị trí con trỏ.


vì vậy lệnh để ánh xạ này tới Alt-O sẽ là: map <Mo> m`O <ESC> ``
K Robinson

Đúng rồi.
Matteo Riva

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.