diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs index bf87f446..2c1535b6 100644 --- a/helix-term/src/commands.rs +++ b/helix-term/src/commands.rs @@ -2090,6 +2090,7 @@ pub mod cmd { return Ok(()); } + let mut nonexistent_buffers = vec![]; for arg in args { let doc_id = editor.documents().find_map(|doc| { let arg_path = Some(Path::new(arg.as_ref())); @@ -2104,12 +2105,19 @@ pub mod cmd { match doc_id { Some(doc_id) => editor.close_document(doc_id, force)?, - None => { - editor.set_error(format!("couldn't close buffer '{}': does not exist", arg)); - } + None => nonexistent_buffers.push(arg), } } + let nonexistent_buffers: Vec<_> = nonexistent_buffers + .into_iter() + .map(|str| format!("'{}'", str)) + .collect(); + editor.set_error(format!( + "couldn't close buffer(s) {}: does not exist", + nonexistent_buffers.join(", ") + )); + Ok(()) }