[英]Vim command to insert blank line in normal mode
Vim 中是否有任何命令可以與o
或O
執行相同的操作(在當前行之前/之后插入一個空行),但哪個也不會切換到插入模式?
:nnoremap <silent> [<space> :pu! _<cr>:']+1<cr>
:nnoremap <silent> ]<space> :pu _<cr>:'[-1<cr>
解釋:
:put
將在下面逐行粘貼一個寄存器。 ( :pu!
以上):pu _
將粘貼黑洞寄存器,它是空的,所以我們得到一個空行'[
和']
標記設置在已更改或已刪除的文本的開頭和結尾。:'[
會將 cursor 移動到最后更改的起始行(本例中的 put):'[-1
將移動'[
但又向上移動一行如果您更喜歡插件,那么我建議 Tim Pope 的unimpaired.vim 。 它提供了這些映射,但也需要計數。 該插件還有許多其他不錯的映射。
在插入模式下:
:normal O
來自 vim 內聯手冊:
執行正常模式命令 {commands}。 這使得執行在命令行上鍵入的正常模式命令成為可能。 {commands} 像輸入一樣執行。 對於撤消,所有命令一起撤消。 遇到錯誤時停止執行。 如果給出 [,]。 不會使用映射。 {commands} 應該是一個完整的命令,如果 {commands} 沒有完成一個命令。 最后一個將被中止,就像或被鍵入一樣。
你可以嘗試這樣的事情:
:map <c-j> o<esc>
這是:當你按下control + j時,它會在下面添加一行(以及 go 到插入模式)然后切換回正常模式,如果你想保持在與之前在最后添加一個k
之前相同的行中,一些東西像這樣:
:map <c-j> o<esc>k
我還添加了一個control + k在我站立的那一行之前添加一行
:map <c-k> O<esc>
就像你可以在末尾添加j
以保持在同一行之前一樣:
:map <c-k> O<esc>j
如果您需要或想要更高級的東西,您可以查看以下帖子:快速添加和刪除空行或在不進入插入模式的情況下插入換行符
dd 在空行上, p 恢復它,然后 p 你想要空行的地方
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.