mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 07:16:05 +02:00
[MVP][WIP] less
like pager (#6984)
Run it as `explore`. #### example ```nu ls | explore ``` Configuration points in `config.nu` file. ``` # A 'explore' utility config explore_config: { highlight: { bg: 'yellow', fg: 'black' } status_bar: { bg: '#C4C9C6', fg: '#1D1F21' } command_bar: { fg: '#C4C9C6' } split_line: '#404040' cursor: true # selected_column: 'blue' # selected_row: { fg: 'yellow', bg: '#C1C2A3' } # selected_cell: { fg: 'white', bg: '#777777' } # line_shift: false, # line_index: false, # line_head_top: false, # line_head_bottom: false, } ``` You can start without a pipeline and type `explore` and it'll give you a few tips.  If you type `:help` you an see the help screen with some information on what tui keybindings are available.  From the `:help` screen you can now hit `i` and that puts you in `cursor` aka `inspection` mode and you can move the cursor left right up down and it you put it on an area such as `[table 5 rows]` and hit the enter key, you'll see something like this, which shows all the `:` commands. If you hit `esc` it will take you to the previous screen.  If you then type `:try` you'll get this type of window where you can type in the top portion and see results in the bottom.  The `:nu` command is interesting because you can type pipelines like `:nu ls | sort-by type size` or another pipeline of your choosing such as `:nu sys` and that will show the table that looks like this, which we're calling "table mode".  If you hit the `t` key it will now transpose the view to look like this.  In table mode or transposed table mode you can use the `i` key to inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`, `[list x]`, etc. One of the original benefits was that when you're in a view that has a lot of columns, `explore` gives you the ability to scroll left, right, up, and down. `explore` is also smart enough to know when you're in table mode versus preview mode. If you do `open Cargo.toml | explore` you get this.  If you type `open --raw Cargo.toml | explore` you get this where you can scroll left, right, up, down. This is called preview mode.  When you're in table mode, you can also type `:preview`. So, with `open --raw Cargo.toml | explore`, if you type `:preview`, it will look like this.  Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com> Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
This commit is contained in:
@ -87,6 +87,7 @@ pub struct Config {
|
||||
pub show_banner: bool,
|
||||
pub show_clickable_links_in_ls: bool,
|
||||
pub render_right_prompt_on_last_line: bool,
|
||||
pub explore_config: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
@ -125,6 +126,7 @@ impl Default for Config {
|
||||
show_banner: true,
|
||||
show_clickable_links_in_ls: true,
|
||||
render_right_prompt_on_last_line: false,
|
||||
explore_config: HashMap::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -183,6 +185,11 @@ pub enum TrimStrategy {
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Clone, Debug)]
|
||||
pub struct ExploreConfig {
|
||||
pub color_config: HashMap<String, Value>,
|
||||
}
|
||||
|
||||
impl Value {
|
||||
pub fn into_config(self) -> Result<Config, ShellError> {
|
||||
let v = self.as_record();
|
||||
@ -806,6 +813,13 @@ impl Value {
|
||||
eprintln!("$env.config.filesize_format is not a string")
|
||||
}
|
||||
}
|
||||
"explore_config" => {
|
||||
if let Ok(map) = create_map(value, &config) {
|
||||
config.explore_config = map;
|
||||
} else {
|
||||
eprintln!("$env.config.explore_config is not a map")
|
||||
}
|
||||
}
|
||||
// End legacy options
|
||||
x => {
|
||||
eprintln!("$env.config.{} is an unknown config setting", x)
|
||||
|
Reference in New Issue
Block a user