mirror of
https://github.com/ratatui/ratatui.git
synced 2025-09-29 05:51:57 +00:00
refactor(examples): add vim binding (#688)
This commit is contained in:
parent
4be18aba8b
commit
b82451fb33
@ -59,10 +59,10 @@ impl App {
|
|||||||
if let Event::Key(key) = event::read()? {
|
if let Event::Key(key) = event::read()? {
|
||||||
match key.code {
|
match key.code {
|
||||||
KeyCode::Char('q') => break,
|
KeyCode::Char('q') => break,
|
||||||
KeyCode::Down => app.y += 1.0,
|
KeyCode::Down | KeyCode::Char('j') => app.y += 1.0,
|
||||||
KeyCode::Up => app.y -= 1.0,
|
KeyCode::Up | KeyCode::Char('k') => app.y -= 1.0,
|
||||||
KeyCode::Right => app.x += 1.0,
|
KeyCode::Right | KeyCode::Char('l') => app.x += 1.0,
|
||||||
KeyCode::Left => app.x -= 1.0,
|
KeyCode::Left | KeyCode::Char('h') => app.x -= 1.0,
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -216,12 +216,12 @@ fn handle_key_event(
|
|||||||
) -> ControlFlow<()> {
|
) -> ControlFlow<()> {
|
||||||
match key.code {
|
match key.code {
|
||||||
KeyCode::Char('q') => return ControlFlow::Break(()),
|
KeyCode::Char('q') => return ControlFlow::Break(()),
|
||||||
KeyCode::Left => {
|
KeyCode::Left | KeyCode::Char('h') => {
|
||||||
button_states[*selected_button] = State::Normal;
|
button_states[*selected_button] = State::Normal;
|
||||||
*selected_button = selected_button.saturating_sub(1);
|
*selected_button = selected_button.saturating_sub(1);
|
||||||
button_states[*selected_button] = State::Selected;
|
button_states[*selected_button] = State::Selected;
|
||||||
}
|
}
|
||||||
KeyCode::Right => {
|
KeyCode::Right | KeyCode::Char('l') => {
|
||||||
button_states[*selected_button] = State::Normal;
|
button_states[*selected_button] = State::Normal;
|
||||||
*selected_button = selected_button.saturating_add(1).min(2);
|
*selected_button = selected_button.saturating_add(1).min(2);
|
||||||
button_states[*selected_button] = State::Selected;
|
button_states[*selected_button] = State::Selected;
|
||||||
|
@ -55,11 +55,11 @@ fn run_app<B: Backend>(
|
|||||||
if let Event::Key(key) = event::read()? {
|
if let Event::Key(key) = event::read()? {
|
||||||
if key.kind == KeyEventKind::Press {
|
if key.kind == KeyEventKind::Press {
|
||||||
match key.code {
|
match key.code {
|
||||||
|
KeyCode::Left | KeyCode::Char('h') => app.on_left(),
|
||||||
|
KeyCode::Up | KeyCode::Char('k') => app.on_up(),
|
||||||
|
KeyCode::Right | KeyCode::Char('l') => app.on_right(),
|
||||||
|
KeyCode::Down | KeyCode::Char('j') => app.on_down(),
|
||||||
KeyCode::Char(c) => app.on_key(c),
|
KeyCode::Char(c) => app.on_key(c),
|
||||||
KeyCode::Left => app.on_left(),
|
|
||||||
KeyCode::Up => app.on_up(),
|
|
||||||
KeyCode::Right => app.on_right(),
|
|
||||||
KeyCode::Down => app.on_down(),
|
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,11 +39,11 @@ fn run_app<B: Backend>(
|
|||||||
|
|
||||||
match events.recv()? {
|
match events.recv()? {
|
||||||
Event::Input(key) => match key {
|
Event::Input(key) => match key {
|
||||||
|
Key::Up | Key::Char('k') => app.on_up(),
|
||||||
|
Key::Down | Key::Char('j') => app.on_down(),
|
||||||
|
Key::Left | Key::Char('h') => app.on_left(),
|
||||||
|
Key::Right | Key::Char('l') => app.on_right(),
|
||||||
Key::Char(c) => app.on_key(c),
|
Key::Char(c) => app.on_key(c),
|
||||||
Key::Up => app.on_up(),
|
|
||||||
Key::Down => app.on_down(),
|
|
||||||
Key::Left => app.on_left(),
|
|
||||||
Key::Right => app.on_right(),
|
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
Event::Tick => app.on_tick(),
|
Event::Tick => app.on_tick(),
|
||||||
|
@ -45,10 +45,10 @@ fn run_app(
|
|||||||
{
|
{
|
||||||
match input {
|
match input {
|
||||||
InputEvent::Key(key_code) => match key_code.key {
|
InputEvent::Key(key_code) => match key_code.key {
|
||||||
KeyCode::UpArrow => app.on_up(),
|
KeyCode::UpArrow | KeyCode::Char('k') => app.on_up(),
|
||||||
KeyCode::DownArrow => app.on_down(),
|
KeyCode::DownArrow | KeyCode::Char('j') => app.on_down(),
|
||||||
KeyCode::LeftArrow => app.on_left(),
|
KeyCode::LeftArrow | KeyCode::Char('h') => app.on_left(),
|
||||||
KeyCode::RightArrow => app.on_right(),
|
KeyCode::RightArrow | KeyCode::Char('l') => app.on_right(),
|
||||||
KeyCode::Char(c) => app.on_key(c),
|
KeyCode::Char(c) => app.on_key(c),
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
|
@ -181,9 +181,9 @@ fn run_app<B: Backend>(
|
|||||||
if key.kind == KeyEventKind::Press {
|
if key.kind == KeyEventKind::Press {
|
||||||
match key.code {
|
match key.code {
|
||||||
KeyCode::Char('q') => return Ok(()),
|
KeyCode::Char('q') => return Ok(()),
|
||||||
KeyCode::Left => app.items.unselect(),
|
KeyCode::Left | KeyCode::Char('h') => app.items.unselect(),
|
||||||
KeyCode::Down => app.items.next(),
|
KeyCode::Down | KeyCode::Char('j') => app.items.next(),
|
||||||
KeyCode::Up => app.items.previous(),
|
KeyCode::Up | KeyCode::Char('k') => app.items.previous(),
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,8 +104,8 @@ fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<(
|
|||||||
if key.kind == KeyEventKind::Press {
|
if key.kind == KeyEventKind::Press {
|
||||||
match key.code {
|
match key.code {
|
||||||
KeyCode::Char('q') => return Ok(()),
|
KeyCode::Char('q') => return Ok(()),
|
||||||
KeyCode::Down => app.next(),
|
KeyCode::Down | KeyCode::Char('j') => app.next(),
|
||||||
KeyCode::Up => app.previous(),
|
KeyCode::Up | KeyCode::Char('k') => app.previous(),
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,8 +69,8 @@ fn run_app<B: Backend>(terminal: &mut Terminal<B>, mut app: App) -> io::Result<(
|
|||||||
if key.kind == KeyEventKind::Press {
|
if key.kind == KeyEventKind::Press {
|
||||||
match key.code {
|
match key.code {
|
||||||
KeyCode::Char('q') => return Ok(()),
|
KeyCode::Char('q') => return Ok(()),
|
||||||
KeyCode::Right => app.next(),
|
KeyCode::Right | KeyCode::Char('l') => app.next(),
|
||||||
KeyCode::Left => app.previous(),
|
KeyCode::Left | KeyCode::Char('h') => app.previous(),
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user