diff --git a/ui/src/components/utilities.rs b/ui/src/components/utilities.rs index 14834b8ba..5c66c8955 100644 --- a/ui/src/components/utilities.rs +++ b/ui/src/components/utilities.rs @@ -26,6 +26,7 @@ use super::*; mod widgets; pub use self::widgets::*; +use fnv::FnvHashSet; /// A horizontally split in half container. #[derive(Debug)] @@ -745,11 +746,15 @@ impl Component for StatusBar { if self.ex_buffer.as_str().split_graphemes().len() <= 2 { return; } + + let mut unique_suggestions: FnvHashSet<&str> = FnvHashSet::default(); let mut suggestions: Vec = self .cmd_history .iter() .filter_map(|h| { - if h.starts_with(self.ex_buffer.as_str()) { + let sug = self.ex_buffer.as_str(); + if h.starts_with(sug) && !unique_suggestions.contains(sug) { + unique_suggestions.insert(sug); Some(h.clone().into()) } else { None