🎉

Nushellの設定について

2022/12/03に公開

設定

各種設定が~/.config/nushell/config.nuにありますが、簡単にまとめてみました。わかりにくい設定は補足に追記しています。
Ver0.72からは設定にgroupでグルーピングするようになってきました。banner以外は変更しなくていいかもしれません。

グループ名 オプション名 説明 初期値
ls use_ls_colors 環境変数LS_COLORS[1]に従って色付きでlsコマンドの結果を表示する true
lsl clickable_links URLリンクをクリックしたときの振る舞いを有効にするか true
rm always_trash rmコマンド使用時ゴミ箱に移動する false
cd abbreviations ディレクトリ名に省略形[^cd s/o/fcd some/other/folderに展開]を許すか true
table mode 表の表示形式[2]を選択 rounded
table index_mode 表にインデックス番号を表示するか[3] always
table trim methodology 画面端を超える場合折り返す(wrapping),切り詰める(truncating)か選択します wrapping
table trim wrapping_try_keep_words 折返しする場合、単語をそのまま表示します true
table trim truncating_suffix 切り詰め指定している場合、のサフィックスを指定します ...
history max_size ヒストリの保持数を指定します 10000
history sync_on_enter 複数のセッションで履歴を共有するか決めます true
history file_format ヒストリの保存形式を決めます(plaintext:テキスト,sqlite:SQlite3のDB形式) plaintext
completions case_sensitive 補完時に大文字・小文字の無視するか決定します true
completions quick 補完候補が1つの場合、選択状態にするか決定します(選択:true,非選択:false) true
completions partial プロンプトの部分的な入力を防ぐには、これを false に設定します true
completions algorithm 補完アルゴリズムを選択します(prefix[4],fuzzy[5]) prefix
completions external enable 外部のプログラム[6]による補完に関する設定です。trueで有効です。補足参照 true
completions external max_results 最大候補数を設定します.小さくすることでパフォーマンス向上が見込まれます 100
completions external completer 外部プログラムを実行するための関数を指定します null
filesize metric ファイルサイズの単位をISO準拠の2のべき乗とする(true)か、Windows同様キビバイト[7](false)にします true
filesize format 表示単位を決めます(自動:auto,それ以外のb/kb/kib/mbなどの単位) auto
color_config 色付けのテーマを指定します $dark_theme
use_grid_icons grid使用時にnameがあれば、対応するiconをファイル名先頭に付与(補足参照) true
footer_mode テーブルのフッター(カラム名)を表示します(常に:"always", 指定行以上:数値文字, 自動:"auto", 表示しない:"never").補足参照 "25"
float_precision 表示する小数点の桁数を決めます 2
buffer_editor [TODO]
use_ansi_coloring ANSI Escapeシーケンスによる色付けを行うか決めます(色つけ:true,色つけしない:false) true
edit_mode 編集モードをemacsかviから選択します emacs
shell_integration VS Code ターミナルでコマンドの開始を示す丸い青/赤/灰色の装飾を表示します。 true
show_banner Nushell起動時にバナー表示するか決めます(表示する:tue,表示しない:false) true
render_right_prompt_on_last_line 最下行で右側にプロンプトを表示するか false

補足

  • use_grid_icons = true
    grid使用時にnameがあれば、対応するiconをファイル名先頭に付与

  • footer_mode
    footer_mode = 25:
❯ ls
╭───┬───────────────────┬──────┬────────┬────────────╮
│ # │       name        │ type │  size  │  modified  │
├───┼───────────────────┼──────┼────────┼────────────┤
│ 1 │ README.md         │ file │   78 B │ a week ago │
│ 2 │ articles          │ dir  │ 4.1 KB │ a day ago  │
│ 3 │ books             │ dir  │ 4.1 KB │ a week ago │
│ 4 │ images            │ dir  │ 4.1 KB │ a week ago │
│ 5 │ node_modules      │ dir  │ 4.1 KB │ a day ago  │
│ 6 │ package-lock.json │ file │  657 B │ a day ago  │
│ 7 │ package.json      │ file │  526 B │ a day ago  │
╰───┴───────────────────┴──────┴────────┴────────────╯

footer_mode = "always"

❯ ls
╭───┬───────────────────┬──────┬────────┬────────────╮
│ # │       name        │ type │  size  │  modified  │
├───┼───────────────────┼──────┼────────┼────────────┤
│ 1 │ README.md         │ file │   78 B │ a week ago │
│ 2 │ articles          │ dir  │ 4.1 KB │ a day ago  │
│ 3 │ books             │ dir  │ 4.1 KB │ a week ago │
│ 4 │ images            │ dir  │ 4.1 KB │ a week ago │
│ 5 │ node_modules      │ dir  │ 4.1 KB │ a day ago  │
│ 6 │ package-lock.json │ file │  657 B │ a day ago  │
│ 7 │ package.json      │ file │  526 B │ a day ago  │
├───┼───────────────────┼──────┼────────┼────────────┤
│ # │       name        │ type │  size  │  modified  │
╰───┴───────────────────┴──────┴────────┴────────────╯

footer_mode = 5:

❯ ls
╭───┬───────────────────┬──────┬────────┬────────────╮
│ # │       name        │ type │  size  │  modified  │
├───┼───────────────────┼──────┼────────┼────────────┤
│ 1 │ README.md         │ file │   78 B │ a week ago │
│ 2 │ articles          │ dir  │ 4.1 KB │ a day ago  │
│ 3 │ books             │ dir  │ 4.1 KB │ a week ago │
│ 4 │ images            │ dir  │ 4.1 KB │ a week ago │
│ 5 │ node_modules      │ dir  │ 4.1 KB │ a day ago  │
│ 6 │ package-lock.json │ file │  657 B │ a day ago  │
│ 7 │ package.json      │ file │  526 B │ a day ago  │
├───┼───────────────────┼──────┼────────┼────────────┤
│ # │       name        │ type │  size  │  modified  │
╰───┴───────────────────┴──────┴────────┴────────────╯
  • External Completions
    Nushll Ver0.68より外部プログラム[8]による補完と統合できるようになりました。この機能はまだ完全には洗練されておらず、場合によっては外部コンプリーターが正しくトリガーされないことに注意してください (External completions command issue · Issue #6378 · nushell/nushell)。

Config.nu設定内容:

let carapace_completer = {|spans| 
     carapace $spans.0 nushell $spans | from json
}

  completions: {
    ・・・
    external: {
      enable: true
      max_results: 100
      completer: $carapace_completer
    }


  • banner(ver. 0.72)
     __  ,
 .--()°'.' Welcome to Nushell,
'|, . ,'   based on the nu language,
 !_-(_\    where all data is structured!

Please join our Discord community at https://discord.gg/NtAbbGn
Our GitHub repository is at https://github.com/nushell/nushell
Our Documentation is located at http://nushell.sh
Tweet us at @nu_shell

It's been this long since Nushell's first commit:
3yr 6month 3wk 6day 17hr 51min 33sec 593ms 587µs 565ns

You can disable this banner using the config nu command
to modify the config.nu file and setting show_banner to false.

let-env config = {
    show_banner: false
    ...
}
脚注
  1. LS_COLORSの各項目の意味 - Qiita参照 ↩︎

  2. basic,compact,compact_double,light,thin,with_love,rounded,reinforced,heavy,none ↩︎

  3. always,never,auto ↩︎

  4. prefixでは、単語の先頭から始まる同一の部分文字列に対してのみ照合 ↩︎

  5. fuzzyではスペル チェック機能に類似したアルゴリズムを使用して、類似しているが同一ではない一致を検出するため、最も可能性の高い一致が検出 ↩︎

  6. 例えばrsteube/carapace: command argument completion generator for spf13/cobra ↩︎

  7. キビバイト参照 ↩︎

  8. rsteube/carapace: command argument completion generator for spf13/cobra ↩︎

Discussion