ターミナル環境紹介

2025/02/13 15:01

技術

導入

あまり他人にターミナルの環境を紹介することがないので、最近の開発で自分が使っているターミナルやらツールを紹介します(あとコードブロックや画像の表示をテストしたい)

WezTerm

Rust製のターミナルエミュレーターです。軽い・安定している・拡張性がある最高のターミナルです。

基本機能に加えて自前でluaで設定を書き加えることが可能です(このへんのAPIドキュメントもしっかりしている)

こんな感じで画面分割のショートカットを設定したりしています。

keys = {
    {
      key = '|',
      mods = 'LEADER',
      action = act.SplitHorizontal { domain = 'CurrentPaneDomain' },
    },
    {
      key = '%',
      mods = 'LEADER',
      action = act.SplitVertical { domain = 'CurrentPaneDomain' },
    },
    {
      key = 'LeftArrow',
      mods = 'LEADER',
      action = act.ActivatePaneDirection 'Left',
    },
    {
      key = 'RightArrow',
      mods = 'LEADER',
      action = act.ActivatePaneDirection 'Right',
    },
    {
      key = 'UpArrow',
      mods = 'LEADER',
      action = act.ActivatePaneDirection 'Up',
    },
    {
      key = 'DownArrow',
      mods = 'LEADER',
      action = act.ActivatePaneDirection 'Down',
    },
  },

Neovim

そこまで大した設定は加えていないです。プラグイン管理はPacker、設定ファイルはluaで記述、ファイル検索はfzf、ファイルツリーはfernでした。一度Helixに移行しようかと試みましたが、copilot非対応なのとモードの切り替えが独特で慣れなかったので断念。

require'packer'.startup(function()
  use 'wbthomason/packer.nvim'
  use {
    'nvim-lualine/lualine.nvim',
    requires = { 'kyazdani42/nvim-web-devicons', opt = true }
  }
  use { 'windwp/nvim-autopairs' }
  use 'j-hui/fidget.nvim'
  use 'tpope/vim-fugitive'
  use 'obaland/vfiler.vim'
  use 'obaland/vfiler-fzf'
  use {
    'lewis6991/gitsigns.nvim',
    config = function()
      require('gitsigns').setup({
         current_line_blame = true,
         current_line_blame_opts = {
           virt_text = true,
           virt_text_pos = 'eol',
           delay = 1000,
           ignore_whitespace = false,
       },
         current_line_blame_formatter = '<author>, <author_time:%Y-%m-%d> - <summary>',
      })
    end
  }
  use 'ibhagwan/fzf-lua'
  use 'tpope/vim-rails'
  use 'lambdalisue/fern.vim'
  use 'lambdalisue/fern-git-status.vim'
  use 'norcalli/nvim-colorizer.lua'
  use "lukas-reineke/indent-blankline.nvim"
  use 'nvim-treesitter/nvim-treesitter'
  use { 'petertriho/nvim-scrollbar' }
  use {'akinsho/bufferline.nvim', requires = 'nvim-tree/nvim-web-devicons'}
  use { 'projekt0n/github-nvim-theme', tag = 'v0.0.7' }
  use { 'junegunn/fzf', run = ":call fzf#install()" }
  use { 'junegunn/fzf.vim' }
  use 'rust-lang/rust.vim'
  use {'neoclide/coc.nvim', branch = 'release'}
  use 'vim-denops/denops.vim'
end)

Starship

Rust製のプロンプトです。gitのステータスやら言語バージョンやらAWSのプロファイルを表示してくれます。

starship.tomlを編集することでカスタマイズ可能です。

自分の場合は言語バージョンをアイコンではなく文字にして、横に現在時刻を表示させています。

add_newline = false

[aws.region_aliases]
ap-northeast-1 = "jp"

[directory]
truncation_length = 100
truncate_to_repo = false

[package]
disabled = true

[time]
disabled = false

[ruby]
format = "| ruby [$version ]($style)"

[python]
format = "| python [$version ]($style)"

[nodejs]
format = "| node [$version ]($style)"

[golang]
format = "| golang [$version ]($style)"

[rust]
format = "| rust [$version ]($style)"

[lua]
format = "| lua [$version ]($style)"

[elixir]
format = "| elixir [$version ]($style)"

[docker_context]
format = "on [$context]($style) "

Unixコマンドの代替みたいなやつ

zoxide

cdコマンドに履歴補完とインクリメンタル検索をつけたみたいなやつ。よく移動するディレクトリならこれで一発で移動可能。

delta

diffコマンドの強化版。オプションでgitみたいな+/-マークの表示だったり行番号を出したり出来る。

ripgrep

grepコマンドのめちゃくちゃ早いやつ。早い上にオプションが色々つけられる(大文字小文字の区別、ディレクトリの再帰的な検索など)

← Back to Articles