macvim-dev / macvim-dev/macvim

`macaction terminate:` (also quit via Cmd-q/logout/reboot) ignores `set confirm`

Offen
#1,579 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Vim Script
Sterne
7.9k
Forks
691
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Steps to reproduce
  1. Run set confirm
  2. Create a few buffers with unsaved changes (doesn't matter if the buffers are backed by files or not).
  3. Run command macaction terminate:, or press Cmd-Q, or reboot machine.
Expected behaviour

The setting set confirm should prompt for each unsaved buffer whether you are okay with discarding changes. However, macaction terminate: completely ignores this setting, and just shows a dialog that doesn't mention any file names:

Quit without saving?

There are modified buffers, if you quit now all changes will be lost. Quit anyway?

It appears that macaction terminate: skips a lot of normal Vim exit code as well - autocommands like VimLeavePre do not run.

Version of MacVim

r181

MacVim installation method

GitHub release

Environment

macOS 15.4.1 Sequoia

Logs and stack traces
N/A
Vim and MacVim configuration where issue is reproducable

Doesn't appear to depend on config. I tested both with mvim --clean and my usual config, https://github.com/telotortium/vimrc

How was MacVim launched?
  • by launching MacVim.app in macOS (by using the Dock, Spotlight, or the open command)
  • by running mvim/gvim in the terminal
Issue has been tested with clean configuration
  • by running mvim --clean (or gvim, supplied by MacVim distribution). You can also use the File → "New Clean Window" menu item within MacVim.
  • by running vim --clean (in terminal, supplied by MacVim distribution)
  • by running vim --clean (in terminal, other suppliers, e.g. /usr/bin/vim)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne bei der Behandlung von macaction terminate: und vergleiche sie mit dem normalen Vim-Beendigungspfad; verwende die gemeldeten Cmd-Q- und Abmelde-/Neustartpfade als Reproduktionsfälle. Reproduziere das Verhalten mit mvim --clean, set confirm und nicht gespeicherten Buffern; abgeschlossen ist die Arbeit, wenn für jeden Buffer eine Bestätigung erfolgt und VimLeavePre während der Beendigung ausgeführt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
macos, vim
Bereich
desktop
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.