lệnh vi để thêm dòng trống?


24

Trong vi, tôi có thể sử dụng ohoặc Othêm một dòng trống và chuyển sang chế độ chèn. Nhưng nếu tôi muốn ở trong chế độ lệnh, có lệnh nào cho việc này không?

Trong googling, tôi đang thấy các đề xuất để thêm công cụ vào vimrc của mình, nhưng có vẻ như nên có một cách dễ dàng hơn (điều đó sẽ luôn hoạt động.)

Câu trả lời:


25

Theo Câu hỏi thường gặp về VIM, bạn có thể sử dụng :putlệnh:

12,15. Làm cách nào để tôi chèn một dòng trống phía trên / bên dưới dòng hiện tại mà không vào chế độ chèn?

Bạn có thể sử dụng lệnh ex ": put" để chèn các dòng trống. Ví dụ: thử

: put = ''
: đặt! = ''

Để biết thêm thông tin, đọc

: giúp đỡ: đặt

nhưng sau đó thực sự dễ dàng hơn để thêm:

map <Enter> o<ESC>
map <S-Enter> O<ESC>

để của bạn .vimrc. Bằng cách này, bạn có thể nhấn Enterhoặc Shift-Entervào normal modeđể chèn một dòng trống bên dưới hoặc bên trên dòng hiện tại. Tất nhiên thay thế <Enter><S-Enter>với các phím ưa thích của bạn.


15

Một phần của sức hấp dẫn của việc sử dụng VIlà có chế độ lệnh để thao tác văn bản và chế độ chỉnh sửa để thêm văn bản. Điều này giúp bạn không phải nhấn CTRL - bất cứ điều gì để hoàn thành mọi việc.

Các đề xuất khác có thể hoạt động - Tôi chưa thử chúng - nhưng dường như chúng yêu cầu khá nhiều nhân vật hoặc thao túng VImôi trường của bạn quá nhiều.

Hãy thử sử dụng o[ESC]theo sau bởi một .dòng cho mỗi dòng mới bạn muốn thêm hoặc 5.thêm 5 dòng. Điều này nhanh hơn nhiều, và sẽ luôn hoạt động trên mọi cài đặt VI.


1
Bạn có thể sử dụng .để lặp lại, nhưng bạn cũng có thể làm <number>o<esc>, ví dụ:5o<esc>
bollovan

1
Điều đó chắc chắn sẽ làm việc. Nhưng tôi thích xem lệnh thực sự sẽ tác động đến tài liệu như thế nào trước khi tôi thực hiện nó nhiều lần. Tôi không thể nói cho bạn biết tôi đã o'dthêm một đoạn mới trong VI bao nhiêu lần , chỉ để biết rằng đoạn văn đẹp đó thực sự là sáu dòng bị ngắt / bị ngắt từ cẩn thận.
Glorytoad


1

Điều này sẽ thêm một dòng trống sau dòng hiện tại:

:put _ 

Ngoài ra, chỉ định một dòng khi bắt đầu.


0

Trên Vim 7.3: <number>o<esc>chỉ tạo một dòng trống.


Vâng, bằng cách thêm <esc>bạn đi lại từ chế độ chèn sang chế độ lệnh. Tôi nghĩ rằng anh ta đang tìm kiếm một câu trả lời mà không chuyển sang chế độ chèn.
Bernhard

Oh! Tôi quên thoát khỏi chế độ chèn với <esc>. Trong trường hợp này, nó sẽ hoạt động. Nó thậm chí sẽ nhân đôi dòng được chỉnh sửa trên tất cả các dòng sau.
Hakim


0

Để chèn một dòng trống sau dòng hiện tại trong khi vẫn ở chế độ lệnh, sử dụng:

: r !echo

Đây là lệnh " read in a file", nhưng thay vì đặt tên tệp, chúng tôi bảo nó đọc đầu ra của lệnh shell ( !); lệnh shell đó echo, chỉ cần in một dòng trống. Sau khi dòng trống được chèn, bạn vẫn ở chế độ lệnh.


-2

Tôi ngạc nhiên không ai khác đề cập đến điều này:

Sử dụng 'r' theo sau là 'Enter key' trong chế độ dòng lệnh.

Đến bữa tiệc muộn 7 năm rồi :)


1
Ngoại trừ việc này sẽ đưa bạn ra khỏi chế độ lệnh và thay thế dòng hiện tại bằng một dòng trống.
Jeff Schaller

Tôi không chắc những gì @Jeff đang nói. Những quan sát của tôi về lệnh này là (1) nó không hoạt động nếu bạn hiện đang ở trên một dòng trống và (2) nếu không, nó sẽ xóa ký tự dưới con trỏ.
Scott

Tôi đã bỏ lỡ; rthực sự thay thế nhân vật hiện tại. Vẫn đưa bạn vào chế độ lệnh.
Jeff Schaller

Đã đồng ý. Đây là một hạn chế: Nó phải được thực hiện trên một dòng không trống + trên một khoảng trống trước dòng. Không nghĩ về điều này. Cảm ơn.
Akhilesh Siddhanti
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.