@@ -1683,8 +1683,7 @@ fn search_next_or_prev_impl(cx: &mut Context, movement: Movement, direction: Dir
16831683 let scrolloff = config.scrolloff;
16841684 let (view, doc) = current!(cx.editor);
16851685 let registers = &cx.editor.registers;
1686− if let Some(query) = registers.read('/') {
1687− let query = query.last().unwrap();
1686+ if let Some(query) = registers.read('/').and_then(|query| query.last()) {
16881687 let contents = doc.text().slice(..).to_string();
16891688 let search_config = &config.search;
16901689 let case_insensitive = if search_config.smart_case {
@@ -2124,7 +2123,11 @@ fn append_mode(cx: &mut Context) {
21242123 // Make sure there's room at the end of the document if the last
21252124 // selection butts up against it.
21262125 let end = text.len_chars();
2127− let last_range = doc.selection(view.id).iter().last().unwrap();
2126+ let last_range = doc
2127+ .selection(view.id)
2128+ .iter()
2129+ .last()
2130+ .expect("selection should always have at least one range");
21282131 if !last_range.is_empty() && last_range.head == end {
21292132 let transaction = Transaction::change(
21302133 doc.text(),