summaryrefslogtreecommitdiffstats
path: root/src/commands/command_line.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/command_line.rs')
-rw-r--r--src/commands/command_line.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/commands/command_line.rs b/src/commands/command_line.rs
index d423835..5f9d0de 100644
--- a/src/commands/command_line.rs
+++ b/src/commands/command_line.rs
@@ -22,12 +22,20 @@ pub fn read_and_execute(
.suffix(suffix)
.get_input(backend, context, &mut listener);
- if let Some(s) = user_input {
+ if let Some(mut s) = user_input {
let mut trimmed = s.trim_start();
let _ = context.commandline_context_mut().history_mut().add(trimmed);
+ let (command, arg) = match trimmed.find(' ') {
+ Some(i) => (&trimmed[..i], &trimmed[i..]),
+ None => (trimmed, ""),
+ };
+
if let Some(alias) = context.config_ref().cmd_aliases.get(trimmed) {
trimmed = alias;
+ } else if let Some(alias) = context.config_ref().cmd_aliases.get(command) {
+ s.replace_range(..s.len() - arg.len(), alias);
+ trimmed = &s;
}
let command = Command::from_str(trimmed)?;