You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在vim中有没有办法实现选中区域向上或向下复制的功能?

你可以在你的vim配置文件(.vimrc/init.vim)中添加如下可视模式映射,即可实现和VSCode一致的选中区域上下复制功能,全程保持可视模式不退出,复制后自动对齐缩进:

对齐VSCode快捷键的方案

" 选中区域向下复制,对应VSCode Alt+Shift+下方向键
vnoremap <A-S-j> :t '><CR>gv=gv
" 选中区域向上复制,对应VSCode Alt+Shift+上方向键
vnoremap <A-S-k> :t '<-1<CR>gv=gv

如果你的终端Alt键存在映射冲突,也可以自定义为和现有移动逻辑匹配的快捷键,比如:

" 选中区域向下复制
vnoremap <leader>J :t '><CR>gv=gv
" 选中区域向上复制
vnoremap <leader>K :t '<-1<CR>gv=gv

命令逻辑说明

  • :t 是vim原生的行复制命令,等同于:copy,后方参数为粘贴目标的行位置
  • '> 代表可视选区最后一行的行标记,:t '> 即把选中内容复制到选区最后一行的下方
  • '< 代表可视选区第一行的行标记,:t '<-1 即把选中内容复制到选区第一行的上方
  • gv 会重新选中上一次的可视选区,避免复制后退出可视模式
  • =gv 会对新生成的选区自动执行缩进对齐,且对齐后保持选中状态

配置添加完成后,执行:source 你的配置文件路径或者重启vim即可生效。

内容的提问来源于stack exchange,提问作者Fahim Emroz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:36:04