macvim-dev / macvim-dev/macvim

Using Cmd-C multiple times unexpectedly changes editor contents

未关闭
#1,485 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Vim Script
星标
7.9k
派生
691
PR 合并指标
30 天内没有已合并 PR

描述

Steps to reproduce
  1. Open any file in the GUI via gvim <file> or File > Open
  2. Use your mouse to select some text in the editor (i.e. double-click on a word)
  3. Use Cmd-C to copy the highlighted text
  4. Use Cmd-C again - the line your cursor is on gets cleared (sort of like d$ from the start of the line)
  5. Use Cmd-C again - now <D-c> gets appended onto the line once for every time you type Cmd-C
Expected behaviour

I don't expect Cmd-C to alter the editor contents.

I've been using MacVim since 2017, and I've never run into this before, so I think it's a change from previous behavior. However, I can't figure out what is triggering it or why I've only recently started to see it. I apparently have a habit of sometimes copying the same text multiple times, and I've never before had to worry about lines getting deleted or <D-c> getting inserted into the file I'm editing. I still get the behavior I expect if I'm using vim from a MacOS terminal, which is how I realized I have this habit of using Cmd-C multiple times.

I've tested this behavior with multiple install methods: brew install macvim and brew install --cask macvim, plus manual install from GitHub releases using both MacVim.dmg and MacVim_10.9.dmg. I've also tested with multiple versions of MacVim going back to early 2023. I'm able to reproduce this behavior in all versions I've tried.

Since I've never seen this behavior before, I'm wondering whether something about my combination of hardware and OS might be the root cause. Prior to January of 2024, I was running Ventura on an older Intel Macbook, but now I'm running Sonoma on a new M3 Macbook. Maybe something is slightly different about the way the native Mac copy/paste actions are bound?

Behavior is roughly the same with gvim --clean as with my normal vimrc, although I do normally have set mouse="n" configured (a carryover from my Linux vimrc that has been in there since around 2003).

Version of Vim and architecture

VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Jan 04 2024 03:00:35)

Environment

MacOS 14.3.1 (23D60) on a 16" M3 Macbook Pro from Nov 2023

How MacVim was installed

Originally Homebrew (brew install macvim), but behavior persists with other install methods

Logs and stack traces

No response

Vim configuration where issue is reproducable

Occurs with empty vimrc

Issue has been tested with given configuration
  • by running MacVim.app from GUI macOS interface
  • by running vim/gvim/etc installed by MacVim
  • by running other versions of vim (e.g. /usr/bin/vim)
Issue has been tested with no configuration
  • by running mvim --clean (or gvim, supplied by MacVim distribution)
  • by running vim --clean (in terminal, supplied by MacVim distribution)
  • by running vim --clean (in terminal, other suppliers, e.g. /usr/bin/vim)
Other conditions
  • The both Homebrew packages "vim" and "macvim" are installed

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

在 macOS 上使用 mvim --clean 复现 MacVim GUI 中重复 Cmd-C 的行为,并将其与 terminal vim --clean 进行比较。跟踪 MacVim 的原生复制处理,确定为什么后续复制会清除或更改当前行;当重复 Cmd-C 后编辑器内容保持不变时即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
macos, vim
领域
desktop
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。