我该如何在Vim中像在IntelliJ IDEA/ Resharper中按下Ctrl+D或在Eclipse中按下Ctrl+Alt+↑/↓的方式复制整行?
我该如何在Vim中像在IntelliJ IDEA/ Resharper中按下Ctrl+D或在Eclipse中按下Ctrl+Alt+↑/↓的方式复制整行?
另一个选择是使用:
nmap <C-d> mzyyp`z
让你保留光标位置的优势。
你也可以尝试使用 <C-x><C-l>,它会从插入模式重复上一行,并为您带来一个包含所有行的完成窗口。它几乎像 <C-p> 一样工作。
然后
p 粘贴已复制或删除的文本 在 光标 之后
或
P 粘贴已复制或删除的文本 在 光标 之前
更多键绑定可以访问此网站:vi完整键绑定列表
我知道我来晚了,但是没关系;我在我的 .vimrc 文件中有这个:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
:copy
命令只复制所选的行或范围(始终是整行),并将其复制到给定参数下面的行。copy .
,即将本行复制到本行下面。'<,'> copy '>
,即从选择的起点到终点复制,并将其粘贴到终点下面一行。我喜欢在.vimrc
文件中定义一个自定义的按键映射Ctrl+D,以便在普通模式和插入模式下都可以复制当前行:
" duplicate line in normal mode:
nnoremap <C-D> Yp
" duplicate line in insert mode:
inoremap <C-D> <Esc> Ypi
默认值为yyp,但我已经使用了这个重新绑定约一年,非常喜欢:
" 将Y设置为复制行,在可视模式下也适用。
nnoremap Y yyp
vnoremap Y y`>pgv
对于刚开始学习vi的人,这是一个很好的介绍,通过并列显示vi命令和典型的Windows GUI编辑器光标移动和快捷键来进行。它列出了所有基本命令,包括yy(复制行)和p(粘贴到后面)或P(粘贴到前面)。
注意事项:当使用“p”命令添加一行时,它会将新行放在光标所在行的后面。因此,如果您想在复制的行下方添加一行,请不要先向下移动光标再执行“p”命令。
.vimrc
文件中。
或者,对于插入模式:
imap <S-C-d> <Esc>Ypi
,
在正常模式下使用 nmap <S-C-d> <Esc>Yp
。 - jedi我喜欢使用这个映射:
:nnoremap yp Yp
YP
命令一起使用,使得使用更加一致。
Y
es(是的)P
lease(请)。 :) - Stavr00