macvim-dev / macvim-dev/macvim
`macaction terminate:` (also quit via Cmd-q/logout/reboot) ignores `set confirm`
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
- Run
set confirm - Create a few buffers with unsaved changes (doesn't matter if the buffers are backed by files or not).
- 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
opencommand) - by running mvim/gvim in the terminal
Issue has been tested with clean configuration
- by running
mvim --clean(orgvim, 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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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